Der Einstieg :-)
Nun liegt das Modul auf meinem Tisch, und es kann losgehen, sobald ich etwas Zeit habe ......
1 Funktionstest
1.1 Aufbau
Auf einer kleinen Lochrasterplatine habe ich das Modul mit +3,3 V versorgt und die Pins "PD" und "Reset" auf +3,3V gelegt und die TxD und RxD Leitungen mit meinem seriellen Adapter (RS232-Modul ) verbunden.
Pinbeelgung vom Modul:
1.2 Funktionstest mit dem Terminal
Beim Anlegen der Versorgungsspannung ging die rote LED ( Power LED) an und die blaue LED (Aktivitä LED) hat kurz geflackert. Beim ersten Start hat das Modul die Daten mit einer Baudrate von 9600 kBaud gesendet. Mit dem Befehl:
- AT+CIOBAUD=115200\r\n
und einem anschließenden Reset:
- AT+RST\r\n
Habe ich erstmal die die Baudrate auf 115200 kBits umgestellt.
Ich habe wohl ein ESP-01 Modul ergatter mit einer neuen Firmware:
- AT+GMR\r\n
001800902
Noch ein kleiner Hinweis am Rande: Sollte eine geänderte Konfiguration nicht direkt übernommen werden, so muss explizit ein Reset durchgeführt werden damit die neue Einstellung übernommen wird.
Grundsätzlich sind alle Befehle mit einem "\r\n" abzuschließen damit der Befehl korrekt erkannt wird.
Nun habe ich diverse Befehle ausgeführt:
- AT+CWMODE=3 ==> Wifi Bertriebsmodus auf Client und AP gesetzt
- AT+CIPMUX=1 ==> mehrere Verbindungen
- AT+CIPMODE=1 ==> Datenmodus
- AT+CWSAP="<ssid>","<pass>"[,<chan>,<enc>]
Achtung: Das Passwort muss aus mindestens 8 Zeichen bestehen und nicht vergessen den Reset Befehl im Anschluss zu senden.
<chan> = Kanal 1...14
<enc> 3 : WPA2_PSK
Das Einrichten eines verschlüsselten Access-Points hat problemlos geklappt und das Verbinden des PCs mit dem WLAN Modul hat sofort funktioniert. Ebenso hat auch der umgekehrte Weg, das sich das ESP-Modul am heimischen WLAN-Netz (Fritz-Box) angemeldet hat problemlos geklappt.
1.3 TCP-Server starten z.B. Port 80
Bis auf CIPMUX und CIPMODE bleiben die Einstellungen im Modul gespeichert. Somit muss nach einem Spannungsreset nur noch folgendes ausgeführt werden:
- AT+CIPMUX=1
- AT+CIPMODE=1
- AT+CIPSERVER=1,80 ==> startet nun den TCP-Server auf den Port 80 mit AT+CIPCLOSE=0 wird der Server wieder beendet.
- Nun kann z.B. mit dem Browser eine Anfrage an das Modul gesendet werden:
http://192.168.4.1/Testanfrage
Das Modul quittiert dies Anfrage dann mit:
Link
+IPD,1,400:GET /Testanfrage HTTP/1.1
Host: 192.168.4.1
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; GT-N7100 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.109 Mobile Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
OK
Sobald sich ein Client mit dem Modul verbindet, wird dies mit "Link\r\n" bestätgt.
Empfangene Daten werden dann mit:
\r\n+IPD,x,y:Datenbytes\r\nOK\r\n
angezeigt.
- +IPD: ist die Startkennung
- x: Verbindungsnummer (also welcher Client die Daten angefragt hat)
- y : Anzahl der Datenbytes - AT+CIFSR : Zeigt die aktuelle IP-Adresse vom ESP-Modul an. Die Antwort auf die Anfrag sieht folgendermaßen aus:
AT+CIFSR
192.168.4.1
0.0.0.0OK
2 Firmware Update
2.1 serielle Schnittstelle
..... muss ich mal probieren
2.2 WLAN
Da ich ein aktuelles Modul habe wollte ich mal diese Variante probieren:
- AT+CWMODE=3\r\n
- AT+RST\r\n
- AT+CWJAP="ssid","yourpasswd"\r\n ==> Modul mit dem heimischen WLAN verbunden
- AT+CIFSR\r\n ==> zugewiesene IP-Adresse vom Router kontrolliert
- AT+CIUPDATE\r\n ==> Update Vorgang gesartet
Die Update Prozedur wurde gestartet und der Ablauf sah auch erst gut aus, aber dann wurde bloß noch Müll im Terminal Fenster ausgegeben. Nach ca. 15. Minuten habe ich dann die Spannung abgeschaltet. Nach dem erneuten Einschalten kommt jetzt auch nur noch Müll im Terminal an.
Ich habe absolut keine Ahnung was da schief gelaufen ist, auf jeden Fall habe ich wohl mein erstes Modul gekillt. Zum Glück habe ich noch ein paar :-)