beelogger

beelogger-solar – 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. Der ESP8266 wird dazu auf ein Shield aufgesteckt.

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 ESP-01 ist kompatibel mit beelogger-EasyPlug und beelogger-Solar!

Bild Bezugsquelle Preis ab Suchbegriffe*  Bemerkungen
  eBay 1,80€ ESP8266-01S auf 01S-Version achten!!!
 beelogger Solar Shield Platine eBay 6,00€
(5 Stück)

Lochrasterplatine 5×7 doppelseitig

oder

Lochrasterplatine 4×6 doppelseitig

Lochrasterplatine 5×7, Lötpads auf beiden Seiten

oder

Lochrasterplatine 4×6, Lötpads auf beiden Seiten

  eBay 1,10€
(10 Stück)
pin header long Lange Pinleiste
  eBay 1,00€
(10 Stück)
adapter SO-8 optionale Adapterplatine für den MOSFET auf 2,54 mm Rastermaß

 

*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. Beim beelogger-solar wird der Strom vom TPS62260 geliefert.

 

Grundsätzlich sind folgende Verbindungen vorzunehmen.

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

Beschaltung und Aufbau für den Beelogger-Solar

Es gibt 2 Möglichkeiten (auf 5×7 oder 4×6 Lochrasterplatine) das WLAN-Shield für den beelogger-Solar aufzubauen.  Die Anschlüsse sind selbstverständlich gleich.
Der ESP8266 sollte so auf dem Shield positioniert werden, dass seine Antenne soweit möglich über das Shield hinaus ragt, damit der Empfang nicht durch das Lochraster der Platine des Shields beeinträchtigt wird.

Die Verbindungen können einfach mit einem (verzinnten) Kupferdraht angelegt werden.

Um ohne Probleme trotz aufgestecktem GSM-Shield den FTDI-Adapter verbinden zu können, sollten bei einer 5×7-Platine die Buchsen für ‘Reset’ und ‘D2’ (‘Taster’) des beelogger-Solar nicht durch das Shield belegt werden. Hierdurch bleibt der FTDI-Header zugänglich und wird nicht von der Lochrasterplatine verdeckt.

beelogger Solar GSM Pinleiste

Vor dem Verlöten der Pinleisten ist bei der Ausrichtung der Lochrasterplatine darauf zu achten, dass die Schraubklemmen möglichst auf beiden Seiten zugänglich bleiben. Dies erleichtert die Arbeiten am beelogger-Solar.

Auf einer doppelseitigen Platine können die Verbindungen sehr schnell mit Kupferdraht vorgenommen werden. Wichtig dabei ist, dass die Leitungen mit zusätzlichen Lötpunkten fixiert werden, damit es zu keinem Kurzschluss kommen kann.  

WLAN-Shield (4×6-Platine):

 

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!

Beim beelogger-solar zuerst über den FTDI den beeloger-Test-ESP Sketch laden. Dieser schaltet den TPS ein und damit stehen die 3.3V für den nächsten Schritt zur Verfügung.

 

Für die Verbindung zum FTDI werden die beiden Jumper gezogen und Masse, RX und TX mit 3 Dupont/Jumper Female-Female-Kabeln mit dem FTDI verbunden.

 

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 im Monitor geändert 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. Auch muss der beelogger-solar-Akku noch mindestens eine Spannung von 3.7V zur Verfügung stellen.

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 2 Jahre 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 ist das Testprogrammcode für den beelogger-Solar (0) zu konfigurieren.

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

 

Beelogger-Solar-Sketch:

Für den Beelogger-Solar-Sketch 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).
Achtung: Die Debug-Funktion in einem Live-System nicht dauerhaft einsetzen, weil unnötig Strom verbraucht wird.

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

 

Version Release Notes
1.0
  • Initiale Version
Download