ESP8266 / WLAN Test-Programmcode
Nach erfolgter Konfiguration des ESP8266 Modul kann das Testprogramm verwendet werden.
Die Konfiguration findet sich unter beelogger Universal-WLan und Solar-WLan.
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
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 mehreren Ü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),
und das Verzeichnis der Webserverskripte sowie Passwort eintragen. DUO,Triple,Quad wird vom Sketch nicht unterstützt.
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 51 52 53 54 55 56 57 58 |
ESP 8266-01 Test Sketch 09.02.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 beelogger Signalstaerke: -38 dBm Verbinde zum WLAN: beelogger ... WLAN Verbindung OK Verbinde mit Server ... community.beelogger.de ... connect: OK Uebertrage Daten zum Webserver ... GET /*Test*/beelogger1/beelogger_log.php? 5Bok * Intervallvorgabe vom Server: 5 Minuten Vorgabe Sendezyklus vom Server: zwei Stunde(n) Übertragung erfolgreich . ESP ... o.k. .. . Uebertrage Daten zum Webserver ... GET /*Test*/beelogger1/beelogger_log.php? 5Bok * Intervallvorgabe vom Server: 5 Minuten Vorgabe Sendezyklus vom Server: zwei Stunde(n) Übertragung erfolgreich . Test beendet. |
Hinweis:
Der ESP8266 benötigt für eine stabile Verbindung Pegel von -80dBm und größer. Pegel von -70 bis -50 sind für gute Verbindungen normalerweise ausreichend.
Der verfügbare Pegel am vorgesehenen Aufstellort des beelogger kann auch über eine Smartphone-App (z.B. Fritz!App WLAN, Wifi Analyser) gemessen werden.
ESP8266-Test-Sketch downloaden:
ESP-beelogger-Testprogramm 09.02.2021
Der komplette Programmcode für den Arduino Datenlogger mit Stockwaage für Imker ist unter Programmcode zu finden.