
beeloggger Universal Platine bestückt in der Variante mit HX711 und WLAN Modul, DS3231 nicht aufgesteckt
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!!! |
Beschaltung und Aufbau:
Für die Verwendung des ESP-Moduls sind die Buchsenleisten und der Kondensator 100uF einzubauen, im Bild gelb markiert.
Der 1000uF Kondensator und die Zenerdiode entfällt.
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.
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:
1 |
#define ESP_Setup 1 // 0 oder 1; 0 = Test only, 1 = set ESP factory reset and baudrate set to 9600 Baud, followed by Test |
Die Ausgabe des Sketch kann im Monitor angesehen werden:
Hier gezeigt die Ausgabe der Baudratenumstellung und des Funktionstest.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
ESP Konfig 08.04.2020 ESP Setup to 9600Bd ESP Baudrate für Setup: 115200 Sende an ESP: AT+RESTORE AT+UART_DEF=9600,8,1,0,0 ESP Test Begin Baudrate: 9600Bd Sende Abfrage Firmware/Version an ESP8266: 'AT+GMR' AT+GMR AT version:1.1.0.0(May 11 2016 18:09:56) SDK version:1.5.4(baaeaebb) compile time:May 20 2016 15:06:44 OK Setze Betriebsart 'Station' in ESP8266 AT+CWMODE_DEF=1 OK Sende suche Access Points an ESP8266: 'AT+CWLAP' AT+CWLAP +CWLAP:(3,"FRITZ!Box 7590 IE",-85,"dc:39:6f:33:7b:0f",1,25,0) +CWLAP:(0,"Vodafone Hotspot",-90,"04:53:7c:0e:00:17",1,45,0) +CWLAP:(0,"Vodafone Homespot",-91,"06:53:7c:0e:00:18",1,45,0) +CWLAP:(3,"KDG-E0010",-90,"dc:53:7c:0e:00:15",1,45,0) +CWLAP:(4,"Weltenbummler",-92,"ec:08:6b:78:82:4c",2,25,0) +CWLAP:(3,"Spinnernetz",-95,"e0:60:66:85:07:d3",1,25,0) +CWLAP:(0,"Telekom_FON",-89,"94:6a:b0:c5:0c:30",6,21,0) +CWLAP:(3,"Vodafone-8816",-83,"4c:12:65:05:a9:41",6,38,0) +CWLAP:(3,"Summ_summ",-50,"36:31:c4:f6:5a:86",13,8,0) OK ... end ... |
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 USB-Seriell-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 USB-Seriell-Adapter , RX vom ESP wird mit dem TX vom USB-Seriell-Adapter verbunden- dazu noch die Masse zwischen Board und USB-Seriell-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 USB-Seriell-Adapter stellen eine 3,3V Ausgang zur Verfügung. Dieser liefert meist nicht ausreichend Strom um den ESP zu betreiben.
ESP-8266 | USB-Seriell-Adapter |
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:
1 2 3 4 5 |
AT+GMR AT version:1.1.0.0(May 11 2016 18:09:56) SDK version:1.5.4(baaeaebb) compile time:May 20 2016 15:06:44 OK |
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)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// Name des WLAN-Zugangspunkts const char Access_Point[] PROGMEM = "WLAN-AccessPoint"; // Passwort des Zugangspunktes const char AP_Passwort[] PROGMEM = "WLAN-dasPasswort"; // Domainname zum Webserver mit beelogger-Skript, Bsp:"meineDomain.de"; const char serverName[] PROGMEM = "community.beelogger.de"; // GET mit Verzeichnis Webserver-Skript und das PHP Skript für den jeweiligen beelogger // Bsp: "GET /mein_ordner/beelogger6/beelogger_log.php?" // Achtung: Stringlänge muss zur Variable "parameter" in send_data_via_wlan() passen // Anzahl Byte: 10 20 30 40 50 const char pfad[] PROGMEM = "GET /der_name/beelogger1/beelogger_log.php?"; // Passwort vom Webserver-Skript const char Passwort[] PROGMEM = "php_passwort"; |
Außerdem kann die Baudrate der seriellen Schnittstelle definiert werden und sollte natürlich mit der Baudrate im seriellen Monitorfenster der Arduino-Shell übereinstimmen.
1 2 |
//------------------------------------- #define Seriell_Baudrate 9600 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
ESP 8266-01 Test Sketch 19.01.2021... Abfrage Modul ... i.O. ESP Firmware: AT version:1.3.0.0(Jul 14 2016 18:54:01) SDK version:2.0.0(5a875ba) v1.0.0.3 Mar 13 2018 09:35:47 OK WLAN Information: +CWLAP:("DIRECT-F4-HP OfficeJet 4650",-57) +CWLAP:("beelogger",-69) +CWLAP:("WLAN-510191",-91) +CWLAP:("cisco",-91) +CWLAP:("HP-Print-A6-Officejet Pro 8610",-93) +CWLAP:("Unitymedia WifiSpot",-93) OK Verbinde zum WLAN: beelogger ... WLAN Verbindung OK Verbinde mit Server ... beelogger.de ... connect: OK Uebertrage Daten zum Webserver ... Quittung OK Intervallvorgabe vom Server: 15 Minuten Restart OK ... .. . 26.00 Uebertrage Daten zum Webserver ... GET /der_name/beelogger1/beelogger_log.php? Quittung OK Intervallvorgabe vom Server: 15 Minuten Restart OK . . . . 30.00 Test erfolgreich beendet Verbindungen werden getrennt |
ESP8266-Test-Sketch downloaden:
ESP-beelogger-Testprogramm 19.01.2021