beelogger

beelogger-EasyPlug – 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 oder Funk auszustatten. Da diese Möglichkeit erst als letzte Entwicklung dazugekommen ist, muss man für den beelogger-EasyPlug einige Verbindungen von Hand nachverdrahten.

 

 

 

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-EasyPlug und beelogger-Solar!

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

 

ebay wenige Cent

6 x 1k Widerstand

 

oder (2x 1k und 2 x 2k)

 

*Einkaufstipps

Beschaltung:

 

 

Zuerst muss man bedenken, dass der ESP8266-01(S) zwingend mit 3.3V versorgt werden muss und RX/TX-Pins ebenfalls maximal 3,3V vertragen. Laut seinem Datenblatt variiert die Stromstärke des ESP8266 abhängig vom Betriebszustand (Empfangen, Tiefschlaf, etc.) und erreicht seinen Höchstwert bei etwa 215 mA, während der Strom des Arduino für 3.3V Pin nur 50mA liefert. Deshalb kommt auf der beelogger-EasyPlug der LF33CV zum Einsatz und sorgt für eine  ausreichende Stromversorgung.

 

 

 

Grundsätzlich sind folgende Verbindungen vorzunehmen.

beelogger-EasyPlug
ESP8266-01(S)
3,3V VCC
GND GND
A2 RST
D8 RX
D9 TX
3,3V CH_PD
  GPIO 0
  GPIO 2

 

Beschaltung und Aufbau:

Der ESP8266 kan problemlos im Lochrasterbereich der EASY-PLUG-Platine aufgebaut werden. Dabei ist zu beachten, dass die Antenne aus empfangs- und sendetechnischen Gründen idealerweise nicht über dem Lochraster liegt. Relativ bequem kann man die Schaltung (abgesehen von den Spannungsteilern und eventuellen Jumpern) mit Dupont-Jumper-Kabeln aufbauen. Für einen reibungslosen Dauerbetrieb wird empfohlen, dass die dargestellten Steckbrücken mit dünnen isolierten Drähten verlötet ausgeführt werden.

 

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.

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!

Den EasyPlug vorher von der Spannungsversorgung trennen.

 

 

Um den ESP8266 am beelogger-EasyPlug (Bild links) zu programmieren, entnimmt man am besten den ESP und verkabelt ihn mit 6 Dupont/Jumpoer Female-Female-Kabeln. TX und RX vom ESP mit dem RX und TX des 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 vom EasyPlug und der ESP8266-Masse-Pin mit Masse vom EasyPlug versorgt werden.

Alternativ kann man im Aufbau im Lochrasterbereich der EASY-Plug-Platine mit Jumpern arbeiten und diese für die einmalige Programmierung ziehen (siehe dazu Beschaltung EASY-PLUG) damit der NANO vom FTDI abgetrennt wird.

 

Shield 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 für den beelogger herstellen. Wenn das ESP8266-Modul mit Strom versorgt wird, blinkt die blaue LED einmal kurz auf.

Nach dem Einschalten bzw. einem Reset des beelogger 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 oder 9600…

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

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)

Dann muss im Testprogrammcode noch angegeben werden, dass man einen beeloger-EasyPlug (1)  zum testen benutzt.

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 Testsystems ermöglicht. Nach dem Anlegen eines kostenlosen und annonymen 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

 

Arduino Easy-Plug-Sketch:

Für den Arduinosketch gelten die gleichen Einstellungen wie für den ESP8266-Testsketch.

Im Bereich Allgemeine Konfiguration werden wie allen beelogger-Sketchen die Sensoren konfiguriert.

Im Bereich WLAN Konfiguration werden anschließend wieder die Daten für die Kommunikation eingegeben.

Im Bereich Konfiguration DebugInformation via Serielle Schnittstelle gibt man an, ob man die Debugfunktion nutzen möchte. Diese gibt für einen Testlauf wichtige Informationen über die serielle Schnittstelle aus. Dazu kann man noch die Geschwindigkeit für die serielle Schnittstelle ändern (default 9600).

Lädt man den Sketch im Debug-Modus auf den EasyPlug bekommt man beispielhaft diese Ausgabe:

Version Release Notes
1.0
  • Initiale Version
Download