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 GSM 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.

Download

Die Konfiguration mit diesem Sketch erfolgt in zwei Schritten:
Im ersten Schritt kann der Sketch unverändert geladen und die Ausgabe im Monitor angesehen werden:
Wenn diese Ausgabe erscheint, ist der ESP bereits auf 9600Bd umgestellt und kann verwendet werden.

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

 

Im zweiten Schritt wird im Sketch die Einstellung ESP_Setup  auf 1 geändert.

Der Sketch wird geladen, im Monitor erscheint ausschließlich diese Ausgabe:

Danach wird ESP_Setup wieder auf “0” gesetzt und Schritt 1 wiederholt.

 

Nach erfolgreicher Konfiguration kann mit dem Testprogrammcode, siehe Seite unten, die Funkion ü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!

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…

“AT+GMR” zeigt  Informationen (Softwareversion) zum ESP an.

Dieses Kommando wird nicht durch “OK” quitiert, wenn die Baudrate vorher 57600 oder 115200 Bd war.
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 und der ESP8266 muss auf Senden von “AT” mit “OK” antworten.

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. Hierfür steht eine von uns speziell für die beelogger erstellte Library zum Download bereit.

Library downloaden:

ESP_beelogger_library

 

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.
Treten hier Fehler auf, so ist möglicherweise die Firmware des ESP8266 über 2Jahre alt und für den beelogger nicht geeignet. Ein Update ist möglich und wird von Espressif, Hersteller des ESP, beschrieben.

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.

Die Konfiguration der Daten für den Webserver entspricht der gleichen Logik wie der des Ethernet-Adapters. Eine einfache Konfiguration 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. Der Programmcode des beelogger mit WLAN unterstützt zwar nur einen beelogger pro Hauptplatine, da die Platine selbst aber auch als Shield für weitere Sensoren verwendet werden kann, steht eigenen Erweiterungen nichts im Weg.

 

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

ESP8266-Test-Sketch downloaden:

ESP-beelogger-Testprogramm