netcoast.chprojekte aus der echten welt in der virtuellen welt |
||||||||||||||||||||||||||||||||||||||
homearduino / raspberry piWeb Developmentabout | ||||||||||||||||||||||||||||||||||||||
EinleitungIch teile dieses Thema in 3 Abschnitte auf:1. Abschnitt: ESP8266-01 über den Serial Monitor der Arduino IDE direkt mit AT-Befehlen ansprechen, konfigurieren und Daten verarbeiten. 2. Abschnitt: ESP8266-01 über SoftwareSerial mit dem Arduino verbinden und Daten verarbeiten. 3. Abschnitt: Firmware vom ESP flashen (wenn nötig). Es empfiehlt sich jewils die Anweisungen genau durchzulesen, wenn man etwas weglässt, sucht man dann stundenlang nach Fehler die keine sind... Schema direkte Verbindung ESP8266-01 (ESP-01) und Arduino / andere Hersteller ohne SoftwareSerial mit AT BefehlenDieses Beispiel zeigt eine Test-Basiskonfiguration, in der wir einfach mit dem ESP8266-01 über die Arduino IDE kommunizieren möchten.Hier fungiert der Arduino lediglich als Adapter, deshalb ist der Reset mit Ground verbunden und RX mit RX und TX mit TX (normalerweise wären diese ja gekreuzt): ![]() Ich verzichte hier absichtlich auf einen Logic-Level-Shifter, trotz der 3.3V / 5V Problematik. Alternativ kann auch der Programmer CH340G oder ein FTDI Programmer wie der YP-05 (Achtung hier würden RX und TX gekreuzt werden) verwendet werden. ESP8266-01 mit AT Befehle über den Seriellen Monitor betreibenVerbindung mit dem ESP-01 über den Seriellen Monitor herstellen und über AT Befehle einrichten (Einführung)Bei diesem Vorgehen wird auf dem Arduino noch kein Sketch ausgeführt, er wird lediglich als Adapter für die Verbindung vom PC zum ESP8266-01 genutzt.Voraussetzung dazu: 1. Das Bare-Minimum (leeres Sketch) ist auf dem Arduino geladen. 2. Reset und GND vom Arduino sind verbunden. Alternativ funktionieren diese Beispiele auch mit einem CH340G Programmer oder YP-05 FTDI Programmer. Die Verkablung gemäss oben (bei dem YP-05 FTDI Programmer wären aber TX und RX gekreuzt).
Zum Beispiel: AT+CWMODE=1 AT+CWMODE - Einstellen ob der ESP als Client, Access Point oder beides arbeiten soll Gesetzter Modus abfragen: AT+CWMODE?
Modus setzen:
AT+CWMODE=1
AT+CWJAP="<SSID>","<Passwort>"
AT+CIFSR - IP-Adresse vom ESP anzeigen.AT+CIFSR
Hier wird dann die IP-Adresse(n) vom ESP ausgegeben.Je nach gewähltem CWMODE eine oder zwei. Grundsätzlich ist hier die Basiskonfiguration eingerichtet und der ESP8266-01 kann verwendet werden. Basis AT Befehle
Mit dem ESP-01 über den Seriellen Monitor mithilfe der AT Befehle Daten von einer Webseite einholenWichtig Bei dieser Variante über den Seriellen Monitor arbeiten wir ohne mitgeben von den "\r\n", aber es muss im Seriellen Monitor bei Zeilenende "Sowohl NL als auch CR" angewählt sein.
AT+CIPSTART="TCP","217.26.54.196",80
oder:
AT+CIPSEND=74 GET /ResponseTest/Antwort.html HTTP/1.0 Host: www.esp8266.netcoast.ch Leere Zeile senden
AT+CIPSTART="TCP","www.esp8266.netcoast.ch",80
AT+CIPSEND=74 GET /ResponseTest/Antwort.html HTTP/1.0 Host: www.esp8266.netcoast.ch Leere Zeile senden
AT+CIPSTART -> Verbindung zum Server, kann eine IP oder DNS sein. AT+CIPSEND=-> Anzahl sendender Zeichen (Eine Leerzeile wird mit 4 Zeichen gezählt, da \r\n). (Zeile 1 = 40)+(Zeile 2 = 30)+(Zeile 3 = 4)=74 GET ... -> Der GET nach der Adresse. HOST -> Hostname Leere Zeile -> Diese muss gesendet werden, geht diese vergessen erhält man Fehlermeldungen. Mit dem ESP-01 über den Seriellen Monitor mithilfe der AT Befehle Daten an eine Webseite senden (GET + POST)GET-Variante
AT+CIPSTART="TCP","217.26.54.196",80
->Leerzeile zählt als 4 (\r\n)AT+CIPSEND=87 (->GET + HOST Zeichen + 4) GET /ResponseTest/AntwortAktiv.php?NAME=Max HTTP/1.0 Host: www.esp8266.netcoast.ch Leere Zeile senden Antwort: OK Bei ERROR / CLOSED sollte die Verbindung zum AP kontrolliert werden. Erklärung der Befehle: AT+CIPSTART -> Verbindung zum Server, kann eine IP oder DNS sein. AT+CIPSEND=-> Anzahl sendender Zeichen (Eine Leerzeile wird mit 4 Zeichen gezählt, da \r\n). (Zeile 1 = 53)+(Zeile 2 = 30)+(Zeile 3 = 4)=87 GET ... -> Der GET nach der Adresse mit den Variablen. HOST -> Hostname Leere Zeile -> Diese muss gesendet werden, geht diese vergessen erhält man Fehlermeldungen. POST-Variante
AT+CIPSTART="TCP","217.26.54.196",80
->Leerzeile zählt als 4 (\r\n)AT+CIPSEND=165 POST /ResponseTest/AntwortAktiv.php HTTP/1.1 Host: www.esp8266.netcoast.ch Content-Type: application/x-www-form-urlencoded Content-Length: 14 Leere Zeile senden VORNAME=Muster Leere Zeile senden Erklärung der Befehle: AT+CIPSTART -> Verbindung zum Server, kann eine IP oder DNS sein. AT+CIPSEND=-> Anzahl sendender Zeichen (Eine Leerzeile wird mit 4 Zeichen gezählt, da \r\n). (Zeile 1 = 45)+(Zeile 2 = 30)+(Zeile 3 = 48)+(Zeile 4 = 19)+(Zeile 5 = 4)+(Zeile 6 = 15)+(Zeile 7 = 4)=165 POST ... -> Der POST nach der Adresse. HOST -> Hostname Content-Type -> Was für eine Art von Daten wir senden. Content-Length -> Bezieht sich auf die zu sendenden Variablen und deren Inhalt (hier VORNAME). Leere Zeile -> Diese muss gesendet werden, geht diese vergessen erhält man Fehlermeldungen. VORNAME=Muster -> die Übermittelte(n) Variable(n). Leere Zeile -> Diese muss gesendet werden, geht diese vergessen erhält man Fehlermeldungen. ESP8266-01 mit aktueller Firmware flashenESP8266-01 mit aktueller Firmware flashen über den Programmer CH340GDas flashen der Firmware mit dem Programmer CH340G ziemlich einfach.Wichtig ist dabei, dass die im Bild markierten Pins für das flashen überbrückt werden. Dies habe ich einfach mit einem Reststück eines Widerstandbeins bewerkstelligt: ![]() 1. Tool herunterladen -> Flash Download Tools (ESP8266 & ESP32 & ESP32-S2) (Quelle: espressif.com -> Tools) 2. BIN herunterladen aktuelle Version ESP8266 NONOS SDK (Quelle espressif.com -> SDKs) 3. alles entpacken 4. Tool starten -> Developer Mode -> ESP8266 DownloadTool ![]() ![]() 5. Settings setzen ![]() 6. Readme unter ESP8266_NONOS_SDK-x.x.x\bin\at öffnen, Einträge könnten sich zu dieser Abbildung unterscheiden. boot_v1.2+.bin (oder aktueller) - 0x00000 user1.1024.new.2.bin - 0x01000 esp_init_data_default.bin - 0xfc000 blank.bin - 0x7e000 & 0xfe000 ![]() 7. Einträge übertragen ![]() 8. Board einstecken -> COM-Port wählen ![]() 9. Start und warten bis "FINISH" erscheint. ![]() ![]() ESP8266-01 mit aktueller Firmware flashen über Arduino / MEGA![]() 1. Tool herunterladen -> Flash Download Tools (ESP8266 & ESP32 & ESP32-S2) (Quelle: espressif.com -> Tools) 2. BIN herunterladen aktuelle Version ESP8266 NONOS SDK (Quelle espressif.com -> SDKs) 3. alles entpacken 4. Tool starten -> Developer Mode -> ESP8266 DownloadTool ![]() ![]() 5. Settings setzen ![]() 6. Readme unter ESP8266_NONOS_SDK-x.x.x\bin\at öffnen, Einträge könnten sich zu dieser Abbildung unterscheiden. boot_v1.2+.bin (oder aktueller) - 0x00000 user1.1024.new.2.bin - 0x01000 esp_init_data_default.bin - 0xfc000 blank.bin - 0x7e000 & 0xfe000 ![]() 7. Einträge übertragen ![]() 8. Board einstecken -> COM-Port wählen ![]() 9. Reset von ESP kurz auf LOW 10. Start und warten bis "FINISH" erscheint. ![]() ![]() ESP8266-01 mit aktueller Firmware flashen über den Programmer YP-05 (FTDI)Bei mir funktioniert das Flashen der Firmware, ich erhalte aber regelmässig beim Donwload-Prozess den Fehler "8-download data fail". Darauf gehe ich in der Beschreibung genauer ein.![]() ![]() Tipp: Einen Elektrolytkondensator mit 330 - 1000 µF zwischen VCC und GND. 1. Tool herunterladen -> Flash Download Tools (ESP8266 & ESP32 & ESP32-S2) (Quelle: espressif.com -> Tools) 2. BIN herunterladen aktuelle Version ESP8266 NONOS SDK (Quelle espressif.com -> SDKs) 3. alles entpacken 4. Tool starten -> Developer Mode -> ESP8266 DownloadTool ![]() ![]() 5. Settings setzen ![]() 6. Readme unter ESP8266_NONOS_SDK-x.x.x\bin\at öffnen, Einträge könnten sich zu dieser Abbildung unterscheiden. boot_v1.2+.bin (oder aktueller) - 0x00000 user1.1024.new.2.bin - 0x01000 esp_init_data_default.bin - 0xfc000 blank.bin - 0x7e000 & 0xfe000 ![]() 7. Einträge übertragen 8. RST auf GND (LOW) stecken ![]() 9. Board einstecken -> COM-Port wählen ![]() 10. Start -> Reset von ESP vom GND abziehen 11. ...warten bis "FINISH" erscheint. Möglicherweise erscheint der Fehler "8-download data fail": ![]() Dieser kommt bei mir regelmässig, meistens hat es dann im zweiten Durchlauf mit folgendem Vorgehen geklappt: a) RST -> GND, b) RST wieder weg, c) RST -> GND d) Start e) nach 10 Sekunden im SYNC, RST wieder von GND weg ... ![]() ![]() |
||||||||||||||||||||||||||||||||||||||
Diese Webseite verwendet keine Cookies. | ||||||||||||||||||||||||||||||||||||||
Designed & styled by slaps313 | ||||||||||||||||||||||||||||||||||||||