In dem heutigen Projekt werden zum ersten Mal Daten zwischen Board und PC über das WLAN ausgetauscht. Voraussetzung dafür ist, dass Ihr Rechner über einen WLAN-Adapter verfügt. Es wird das sogenannte UDP (User Datagram Protocol) verwendet. Ein weiteres Programm auf der PC Seite sorgt für das erfolgreiche Empfangen der Nachrichten.

Hinter dem dritten Türchen des Kalenders finden Sie ein isoliertes Kabel das für den Aufbau von Schaltungen unerlässlich ist. Als Vorbereitung für spätere Versuche können Sie die Versorgungsleitungen Masse und VCC auf die äußeren Bahnen legen.

Die Versorgungsleitungen auf den äußeren Bahnen
Die Versorgungsleitungen auf den äußeren Bahnen

Das Programm:****Day3_UPDBasics

Wenn Sie das Programm auf den Controller laden, wird der Controller als AccesPoint konfiguriert und Sie sollten ein offenes Netzwerk mit dem Namen NanoESP sehen. Bevor Sie sich allerdings mit dem Netzwerk verbinden, sollten Sie zunächst noch ein Programm aus dem Internet downloaden. Bei meinen Versuchen habe ich das Programm Packet Sender von Dan Nagle verwendet, welches Sie unter diesem Link downloaden können:

https://packetsender.com/

Nach dem Laden und Installieren des Programms können Sie nun Ihren PC mit dem offenen Netzwerk des NanoESP verbinden. Achten Sie darauf, dass die Firewall das Netzwerk als Heimnetzwerk erkennt, damit keine Daten geblockt werden. Ihr Rechner sollte nun die IP 192.168.4.2 bekommen haben. Sie können dies überprüfen, indem Sie den AT-Befehl

AT+CWLIF

über den Seriellen Monitor an das Modul senden. Dieser Befehl zeigt alle mit dem AccesPoint verbundenen Rechner mit IP und MAC-Adresse an.

Nun starten Sie das Packet Sender Programm und stellen unter Settings->Network den UDP Server Port auf 90 und klicken die Checkbox “Enable UDP Server” an. In der Regel sollte unten links dann UDP:90 stehen. Falls nicht müssen Sie die Software einmal neu starten.

Einstellungen im Packet Sender
Einstellungen im Packet Sender

! Achtung: Einige MAC-Nutzer berichten von einem Bug in dem PackerSender-Programm, welcher nicht erlaubt, die Ports umzustellen. Es gibt allerings auch die Möglichkeit die Ports in dem Arduino Programm zu verändern. Falls das Problem auftritt, müssen Sie für den heutigen Versuch die Zeile 55 von
succes &= sendCom(“AT+CIPSTART="UDP","192.168.4.2",90”, “OK”); //UDP-Server
in
succes &= sendCom(“AT+CIPSTART="UDP","192.168.4.2",55005”, “OK”); //UDP-Server
umändern.

Das Programm auf dem Rechner dient nun als UDP Server, während der Controller als UDP Client eingestellt ist. Im UDP-Protokoll ist die Unterscheidung Client Server nicht eindeutig, aber in diesem Fall bedeute dies, dass Sie mit dem Controller Daten an Ihren Rechner schicken.

Um Daten zu senden verwenden Sie den Befehl

AT+CIPSEND=7

Wobei die 7 für die Anzahl der zu sendenden Zeichen steht. Es erscheint das Zeichen > als Rückgabewert. Dies bedeutet, Sie können nun Ihre Nachricht übermitteln. Tippen Sie hello ein und bestätigen Sie wieder mit Enter. Als Rückgabewert sendet das Modul SEND OK, und das obwohl Sie nur 5 Zeichen eingegeben haben. Das liegt daran, dass nach Ihrer Eingabe noch Carriage Return und New Line mit gesendet werden, also zwei Zeichen mehr, die Sie in Ihre Nachrichtenlänge mit einkalkulieren müssen.

Verwendung des CIPSEND-Befehls
Verwendung des CIPSEND-Befehls

Wenn Sie nun wieder zum Paket Sender wechseln und dort unter Traffic Log schauen, können Sie den Eingang der Nachricht sehen. In der ASCII-Ansicht sehen Sie sogar die beiden mitgesendet Zeichen repräsentiert durch \r und \n. Die erste Kommunikation zwischen Board und PC über das WLAN war also ein Erfolg.

Die Nachricht wurde vom Packet Sender Programm empfangen
Die Nachricht wurde vom Packet Sender Programm empfangen