Hallo Philipp,
es gibt prinzipiell 2 Möglichkeiten
1. über den webbrowser vom PC. Hat den Nachteil, dass man die Daten am PC nicht leicht weiterverarbeiten kann und das Programm hängt gelegentlich, wenn aus irgendwelchen Gründung die Verbindung abbricht. Außerdem braucht man ein längeres Programm im Microcontroller.
2. Besser finde ich es deshalb mit vb.net ein Programm zuschreiben das per UDP-Protokoll die Daten austauscht. Da steht die Verbindung immer. Beispielprogramm (ginge sicher auch anders):
WindowsForm Anwendung erstellen, einen Button, 2 Textfelder und einen Timer hinzufügen und folgenden Quellcode einfügen:
Code:
Imports System.Runtime.InteropServices.MarshalImports System.Drawing, System.Drawing.Imaging
Imports System.Net, System.IO
Imports System.Net.Sockets
Public Class Form1
Inherits System.Windows.Forms.Form
Dim sendbef As Integer, bytes(200) As Byte, udpclient1 As UdpClient, IPPort1 As IPEndPoint
Public Sub New()
InitializeComponent()
udpclient1 = New System.Net.Sockets.UdpClient(23)
IPPort1 = New IPEndPoint(IPAddress.Parse("192.168.1.25"), 80)
Timer1.Interval = 100 : Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Do While udpclient1.Available > 0
Dim receiveBytes As [Byte]() = udpclient1.Receive(IPPort1)
textbox1.text = System.Text.Encoding.UTF8.GetString(receiveBytes)
Loop
If sendbef = 1 Then
sendbef = 0
bytes = System.Text.Encoding.ASCII.GetBytes(TextBox2.Text + Chr(13))
udpclient1.Send(bytes, bytes.Length, IPPort1)
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
sendbef = 1
End Sub
Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
udpclient1.Close()
Timer1.Enabled = False
End
End Sub
End Class
Die Einstellungen vom WiFly sind:
<2.32> get ip
IF=UP
DHCP=OFF
IP=192.168.1.25:80
NM=255.255.255.0
GW=192.168.1.1
HOST=IPRechner:23
PROTO=UDP,TCP,
MTU=1524
FLAGS=0x7
TCPMODE=0x0
BACKUP=0.0.0.0
Im Mikrocontroller zum senden z.B.
Print Hex(sharp2); 'z.B. um werte als Hexadezimalzahlen zu übertragen
Print Message; 'z.B. string übertragen
Print Chr(13); 'gesendet wird erst bei Abschluss mit cr
zum empfangen z.B.
If Ischarwaiting() = 1 Then Inputhex Kurssoll 'falls Wert als HEX übertragen
Sollte so klappen.
Viele Grüße
Christian
Lesezeichen