ESP8266-01 mit Relais – AT Firmware und eigene

ESP8266-01 mit Relais – AT Firmware und eigene
RX/TX getauscht, Spannungsversorgung über Klemmblock etc.

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. 

so sieht das Versprechen aus.

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:

Die Settings von CuteCom

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

USB2TTL an die Platine

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. 

Flash-Modus über Kabelbrücke

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:

Monster-Aufbau zum flashen und resetten mit Tastern und Widerständen

Sieht toll aus, macht auch was, hat aber nicht zum Erfolg geführt.

RX/TX getauscht, Spannungsversorgung über Klemmblock etc.

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:

AZDelivery ⭐⭐⭐⭐⭐ USB-zu-ESP8266 01 Serial Wireless Wifi Module für ESP-01

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.

Mikrotaster angelötet
Lage des Tasters zum flashen
ESP01-Modul eingesteckt

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.