beelogger

beelogger-Universal – WLAN – ESP8266-01

Das ESP8266 WiFi-Modul ist ein extrem günstiger eigenständiger SoC mit integriertem TCP / IP-Protokoll, der jedem Mikrocontroller Zugriff auf ein WiFi-Netzwerk geben kann. Damit ist es möglich das bestehende beelogger-System mit WLAN statt Mobilfunk auszustatten.

 

Bezug

Es gibt einige ESP8266-Module am Markt. Wir haben uns für das einfachste Modell ESP8266-01S entschieden. Die ESP8266-01S-Version hat im Unterschied zum ESP8266-01 1MB Flash-Speicher (statt 500kB), keine Power-LED (spart Strom) und kommt mit schwarzer Platine (statt blau) daher.

Der ESP8266-01 ist kompatibel mit beelogger-Universal und beelogger-Solar!

Bild Bezugsquelle Preis ab Suchbegriffe*  Bemerkungen
  eBay 1,80€ ESP8266-01S am besten auf 01S-Version achten!!!

*Einkaufstipps

 

Beschaltung und Aufbau:

Der ESP8266 wird auf den Steckplatz der beelogger-Universal-Platine aufgesteckt.

Vorbereitung des ESP8266-01(S)

Zunächst muss jeder neue ESP8266-01(S) einmalig für die Verwendung im beelogger vorbereitet werden. Die Baudrate muss dauerhaft auf 9600 Baud eingestellt werden. Dies erfolgt mit dem AT-Kommando: “AT+UART_DEF=9600,8,1,0,0” .

Hierzu steht für den beelogger-Universal ein Konfigurationsprogramm zur Verfügung. Es benötigt die AltSoftSerial-Library. Diese ist im beelogger-Library-Paket enthalten.

ESP Test / Setup 04.11.2020

Die Konfiguration mit diesem Sketch erfolgt in zwei Schritten: Im ersten Schritt werden die Werkseinstellungen geladen und die Baudrate umgestellt, im zweiten werden diverse Abfragen an den ESP gestellt.
Zur Aktivierung der Werkseinstellung und Baudratenumstellung muss diese im Sketch konfiguriert werden:

Die Ausgabe des Sketch kann im Monitor angesehen werden:
Hier gezeigt die Ausgabe der Baudratenumstellung und des Funktionstest.

Hinweis: Die gezeigten Versionsnummern und Datum können abweichen.

Wenn diese Ausgabe erscheint, ist der ESP auf 9600Bd umgestellt und kann verwendet werden.

Nach erfolgreicher Konfiguration kann mit dem Testprogrammcode, siehe Seite unten, die Verbindung zum Server überprüft werden.

Alternativ besteht die Möglichkeit den ESP ohne die beelogger-Universal Platine zu konfigurieren.

Dafür verbindet man den ESP8266-01(S) wie unten gezeigt mit dem FTDI-Adapter. Achtung: Den ESP8266-01(S) nur mit 3,3V betreiben!

Verdrahtung ESP8266 zu FTDI für Konfiguration

Um den ESP8266 zu programmieren, wird der ESP mit 6 Dupont/Jumper Female-Female-Kabeln angeschlossen. TX vom ESP wird mit dem RX des FTDI , RX vom ESP wird mit dem TX vom FTDI verbunden- dazu noch die Masse zwischen Board und FTDI-Adapter. Außerdem muss noch der VCC und CH_PD-Pin mit 3,3 V  und der ESP8266-Masse-Pin mit Masse von einer externen Spannungsquelle (3,3V ca. 200mA) versorgt werden. Einige FTDI-Adapter stellen eine 3,3V Ausgang zur Verfügung. Dieser liefert meist nicht ausreichend Strom um den ESP zu betreiben. 

ESP-8266 FTDI
GND GND
RX TX
TX RX

Dann öffnet man in der Arduino-Software unter Werkzeuge den seriellen Monitor.

Den Wert der Baudraten Einstellung auf “sowohl NL als auch CR” einstellen.

Jetzt die Spannungsversorgung einschalten. Wenn das ESP8266-Modul mit Strom versorgt wird, blinkt die blaue LED einmal kurz auf.

Nach dem Einschalten bzw. einem Reset (Reset-Pin des ESP kurz mit GND verbinden) sollte der ESP mit einer wilden Zeichenfolge und einem “ready” antworten. Ist dies nicht der Fall, muss die Baudrate getauscht werden und erneut ein Reset durchgeführt werden.

Mögliche Baudraten: 115200, 57600 oder 9600…

Ein “AT” senden…der ESP sollte mit “OK” antworten.

Danach ein “AT+GMR” senden. Der ESP8266 zeigt Informationen (Softwareversion) an. Beispiel:

Diese Information bitte kopieren und abspeichern für eventuelle Rückfragen.

Dann muss die Baudrate dauerhaft eingestellt werden: für ältere Firmwareversionen (siehe Beispiel oben): “AT+CIOBAUD=9600” für neuere Firmwareversionen (u.a. ab SDK Version 2.x): “AT+UART_DEF=9600,8,1,0,0

Dieses Kommando wird nicht durch “OK” quittiert, wenn die Baudrate vorher 57600 oder 115200 Bd war. Treten hier Fehler auf, so hat die Firmware des ESP8266 möglicherweise einen Stand vor 2016 und ist für den beelogger nicht geeignet. Ein Update ist möglich und wird von Espressif, Hersteller des ESP, beschrieben.

Nach Eingabe des Befehls ist der ESP8266 dauerhaft auf 9600 Baud eingestellt.

Zur Kontrolle die Baudrate im Monitor auf 9600 Baud stellen und einen Reset am ESP8266 ausführen oder den ESP8266 Aus- und wieder Einschalten.  Die “ready” Meldung muss im Monitor erscheinen. Der ESP8266 muss auf Senden von “AT” mit “OK” antworten. Als nächstes muss der ESP8266 in den Station-Modus umgeschaltet werden. Das Kommando “AT+CWMODE_DEF=1” senden. Es erfolgt die Quittung mit “OK“. Danach ist der ESP8266 für den beelogger einsatzbereit.

Hinweis: Bei einer Baudrate von 74880 zeigt der ESP8266 diverse Statusinformationen an.

Libraries

Um die Kommunikation mit dem ESP8266-01S über AT-Befehle zu vereinfachen, wird auf eine Library zurück gegriffen. Diese ist enthalten im beelogger-Library-Paket

Test-Programmcode

Mit dem Test-Programmcode stellt der beelogger über das WLAN-Shield eine Verbindung ins Internet her und überträgt Test-Messwerte an den Webserver. Nach 5 Übertragungen der Messwerte ist der Test beendet und das Modul schaltet sich ab. Sollte es zu einem Übertragungsfehler kommen, wird der Test beendet und das Modul ebenfalls abgeschaltet.

Die Voraussetzung hierfür ist ein über das Internet erreichbarer Webserver mit installierten Webserver-Skripten für den jeweiligen beelogger-Typ.

Der Vorgang sollte über den Monitor der Arduino-IDE mitverfolgt werden. Zu Anfang des Sketch werden die Firmwareinformationen, verfügbare WLan sowie der Pegel des gewählten Access-Point angezeigt.

Die Kommunikation der beelogger mit dem ESP8266-Modul erfolgt über eine serielle Schnittstelle mittels AT-Befehlen. Da die vom ATmega zur Verfügung gestellte serielle Schnittstelle über D0 und D1 bereits für die Ausgabe des seriellen Monitors benötigt wird, ist eine zusätzliche virtuelle serielle Schnittstelle über die Standard-Library ‘SoftwareSerial’ notwendig. Diese wird über die Lib ‘ESP_beelogger’ über die Pins D8 (RX) und D9 (TX) betrieben.

Die Konfiguration des Programmcodes ist sehr einfach und in wenigen Schritten erledigt:

Zunächst müssen die Daten für das eigene WLAN angegeben werden (bitte in der Routerkonfiguration darauf achten, dass neue Geräte zugelassen sind)

 

Außerdem kann die Baudrate der seriellen Schnittstelle definiert werden und sollte natürlich mit der Baudrate im seriellen Monitorfenster der Arduino-Shell übereinstimmen.

Eine einfache Konfiguration der Daten wird durch die Nutzung unseres communityServers ermöglicht. Nach dem Anlegen eines kostenlosen Accounts können die notwendigen Konfigurationen in den Test-Programmcode übernommen werden.

Nach erfolgreichem Aufladen des Sketches erhält man beispielhaft folgende Ausgabe im seriellen Monitor:

ESP8266-Test-Sketch downloaden:

ESP-beelogger-Testprogramm 01.10.2020