ESP8266-01 mit Relais – AT Firmware und eigene
Nachdem ich erfolgreich einen Raspberry Pi mit einer 8-fach Relaiskarte zur Steuerung der Nachtspeicheröfen eingesetzt hatte, wollte ich das Thema Relais-Ansteuerung nochmal vertiefen und vor Allem verkleinern.
Bisher habe ich mit NodeMCUs gearbeitet und dabei ESP8266 oder ESP32 verwendet. Nun sollte es die kleinste Bauform, der ESP01 sein.
Es gibt hierbei einige Hürden zu überwinden. Erstmal lässt er sich nicht so einfach über eine USB-Schnittstelle programmieren, braucht meist 3.3 Volt und ich habe ihn als widerspenstig erlebt.
Die ESP01 Module bringen eine Firmware mit, die einen AT-Befehlssatz unterstützt. Was damit sonst noch so passiert weiss keiner so genau. Also USB2TTL-Adapter dran, RX,TX,5V und GND anschliessen. Dann mit einem Terminal-Programm Befehle senden:
Sobald die Verbindung steht können die AT-Kommandos gesendet werden. Die Referenz dazu: https://room-15.github.io/blog/2015/03/26/esp8266-at-command-reference/
Ihr gebt einmal die Zugangsdaten zum Heimnetz ein.
Die Kommunikation läuft dann so ab:
AT+CWMODE=1
OK
AT+RST
OK
WIFI DISCONNECT
\0x0c!\0x88\0xc8\0x081'\0x8c\0xa61\0xbc\0x9e\0xad\0x95\0xce\0xc4\0x86\0xd7\0x18!\0x0c\0x89\0x80\0x8c\0x08\0x98
\0xc0l$<\0xe48\0xb4$\0xb0\0x1c\0x8e\0xd2`$L:\0x9aY\0xf0
ready
WIFI CONNECTED
WIFI GOT IP
AT+CIPMUX=1
OK
AT+CIPSERVER=1,8080
OK
AT+CIFSR
+CIFSR:STAIP,"192.168.20.146"
+CIFSR:STAMAC,"a4:cf:12:ed:5e:5b"
OK
Ab jetzt könnt ihr im Terminal-Fenster mit dem Netcat Kommando das Relais ein- und ausschalten:
echo -e '\xA0\x01\x01\xA2' | nc 192.168.20.146 8080
0,CONNECT
+IPD,0,5:\0xa0\0x01\0x01\0xa2
0,CLOSED
echo -e '\xA0\x01\x00\xA1' | nc 192.168.20.146 8080
0,CONNECT
+IPD,0,5:\0xa0\0x01\0x00\0xa1
0,CLOSED
Dazu habe ich die übrigen USB2TTL FTDI Adapter verwendet die ich von der Feinstaubbastelei übrig hatte. Jeder Feinstaubsensor kam mit einem FTDI Adapter mit CH340 Chip. Der funktioniert unter Linux out of the box.
Um die Stiftleiste am Relaisboard einstecken zu können, habe ich diese auf einer Seite gekürzt, die Leitungen umsortiert und am FTDI die 5V eingeleitet.
Aber ich wollte die Firmware ja selber schreiben !
Danach habe ich platformio gestartet und versucht den esp01 mit einem Einfachstprogramm zu flashen. Keine Verbindung möglich, obwohl der USB-Port erkannt wurde.
Ich habe mich eingelesen und rausgefunden, dass ich vor der Spannungsversorgung des ESP01 eine Brücke setzen muss, um ihn in den Flash-Modus zu bringen. Dieses Kabel habe ich am anderen Ende an den Pin gehalten und eingesteckt.
Nach gefühlt 20 Versuchen war mir klar, das ist es auch nicht. Es muss andere Ursachen haben. Insgesamt fand ich die Dokumentation sehr spärlich und im Internet habe ich widersprüchliches gefunden. Also habe ich den Aufbau verbessert, dachte ich:
Sieht toll aus, macht auch was, hat aber nicht zum Erfolg geführt.
Nun fing das wilde probieren an. Einmal Spannungsversorgung über die Pins, dann über den Klemmenblock, RX-TX getauscht und immer wieder den ESP01 ausgesteckt, in das Breadboard eingesteckt und versucht zu flashen.
Das Bild mit dem Breadboard-Aufbau habe ich mit einer kurzen Beschreibung meines Leids getwittert und @tstoegi hatte den richtigen Hinweis:
Gleich bestellt und da er auch verfügbar war, war er bald da. So hat er aber noch nicht funktioniert, auch er braucht eine Brücke um den ESP01 in den Flash-Modus zu bringen. Statt Brücke habe ich einen Mikrotaster angelötet den ich vor dem Einstecken in den USB-Port dann drücke und 2s gedrückt halte.
Schreibe einen Kommentar