beelogger

beelogger-Funk – WLAN

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 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. “Gegenstelle” für den beelogger-Funk mit WLAN ist ein WLAN-Access-Point, ein zweites beelogger-System ist nicht mehr erforderlich.

 

 

 

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. Die Verwendung des ESP8266-07 mit ext. Antenne ist möglich.

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 bzw. 2 x 2.2k)

 *Einkaufstipps

Aufbau:

Der ESP8266 kann problemlos im Lochrasterbereich der EASY-PLUG-Platine aufgebaut werden. Dabei ist zu beachten, dass die Antenne aus empfangs- und sendetechnischen Gründen aus dem Lochrasterbereich über die Platine hinaus ragt. Relativ bequem kann man die Schaltung, abgesehen von den Spannungsteilern, 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.

Beschaltung:

 

Zuerst ist zu beachten 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 Platine 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

Vorbereitung des ESP8266-01(S)

Die Vorbereitung des ESP8266 für den Betrieb mit dem beelogger erfolgt über den Konfigurationssketch.

 

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:

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)

// 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?"
const char pfad[] PROGMEM = "GET /der_name/beelogger1/beelogger_log.php?";

// Passwort vom Webserver-Skript
const char Passwort[] PROGMEM = "php_passwort";

 

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:

ESP 8266-01 Test Sketch ... 
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 ...
Quittung OK

Intervallvorgabe vom Server:  15 Minuten 
Restart OK
.
.
.
.
30.00
Test erfolgreich beendet
Verbindungen werden getrennt

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.

//---------------------------------------------------------------- 
// WLAN Parameter 
// WLan Daten unbedingt nach Verfügbarkeit und Stärke eintragen (stärkstes in Nr. 1) 
// Hinweis: ESP-Testsketch zeigt alle Feldstärken an //---------------------------------------------------------------- 
define Anzahl_AP 1 // Mögliche Werte: '1','2' 

// Zugangspunkt Nr. 1 Daten = vorrangiger/primärer Zugangspunkt 
const char Access_Point1[] PROGMEM = "WLAN-Name_1"; 
// Passwort des Zugangspunktes Nr. 1 
const char AP_Passwort_1[] PROGMEM = "WLAN-Passwort_1"; 

// Zugangspunkt Nr. 2 Daten 
const char Access_Point2[] PROGMEM = "WLAN-Name_2"; 
// Passwort des Zugangspunktes Nr. 2 
const char AP_Passwort_2[] PROGMEM = "WLAN-Passwort_2";

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

//----------------------------------------------------------------
// Konfiguration DebugInformation via Serielle Schnittstelle
//----------------------------------------------------------------

#define myDEBUG 1 // Debug via Serial Monitor An / Aus = 1 / 0

#define Seriell_Baudrate 9600 // Baudrate für Monitor Ausgaben

 

 

Bitte den Sketch für Bienenzählsysteme verwenden.