Hintergrund des Vorhabens: 

Um jeden Bierdeckel bestehend aus dem Mikrocontroller ESP8266 mit dem Raspberry Pi im Netzwerk der Gastronomie zu verbinden, wird dieser mit dem MQTT-Protokoll angebunden. Der ausgeführte Sourcecode wird mittels der IDE „Arduino“ auf den ESP8266 übertragen.

Vorgehen: 

Hierzu muss im ersten Schritt der Mikrocontroller und PC mit via USB verbunden und die Arduino IDE gestartet werden. Zusätzlich muss das von uns verwendete “NodeMCU 1.0 (ESP-12E Module)” als Board ausgewählt werden. Danach erfolgt die Auswahl des entsprechenden Anschlusses. 

Auswahl des USB Ports

Um diese Verbindung zu testen, kann ein Beispiel auf den ESP8266 aufgespielt werden. Die Arduino IDE beinhaltet dabei einige Beispiele mit Sourcecode, wobei nachfolgend die integrierte LED zum Blicken gebracht wird. 

Auswahl des Blink-Beispiels

Das Kompilieren und Aufspielen des Sourcecodes erfolgt über diesen Pfeil: 

Der konkrete Anwendungsfall: 

Um das MQTT-Protokoll mit dem ESP8266 verwenden zu können, ist eine WLAN-Verbindung notwendig. Um sich mit diesem verbinden zu können, muss die entsprechende SSID und Passwort des WLANs im Code hinterlegt werden.  

Um die Verbindung testen zu können, kann ein beispielhafter, öffentlich zugänglicher MQTT-Server verwendet werden. Bei diesem Test sollte darauf geachtet werden, dass diese Informationen für jeden lesbar ist. Sensible Daten sind also zu vermeiden 😊. 

Zum Verbinden, Versenden (=“Publish“) und Abonnieren (=“Subscribe“) über das MQTT-Protokoll sind Bibliotheken einzubinden. Dies erfolgt über ein „#import Bibliothek“ zu Beginn des Sourcecodes und ermöglicht es, ohne eigene Programmierung viele Funktionalitäten auf dem ESP8266 auszuführen. Dieses Vorgehen ist vergleichbar zu anderen Programmiersprachen wie Java oder Python, wobei z.B. in Python via der QR-Library mit wenigen Zeilen Code ein QR-Code erstellt werden kann. Im gewünschten Einsatzszenario sind hierfür die Bibliotheken „PubSubClient“, „ESP8266WIFI“ und „ESP8266WiFiMulti“ nötig. 

Im nachfolgenden Bild wird die Installation einer Bibliothek gezeigt. Zunächst muss hierbei eine zusätzliche Boardverwalter-URL definiert werden, worüber die Bibliotheken von der Arduino IDE bezogen werden. 

Beschreibung des Sourcecodes: 

Der ESP8266 verbindet sich in der einmalig ausgeführten setup()-Funktion mit dem WLAN und gibt den Status der Verbindung über den seriellen Monitor aus. Der serielle Monitor beschreibt eine Art von Terminal, welche in der IDE über den Menüpunkt „Werkzeuge“ aufgerufen kann. 

In der Funktion loop(), welche schleifenartig ausgeführt wird, befindet sich die Logik des ESPs. Hierbei wird die Masse des Getränks ermittelt und an das entsprechende Topic „massBeverage“ gesendet. 

Wie im vorliegenden Screenshot ersichtlich ist, werden die Testnachrichten versendet und können über die Weboberfläche ausgelesen werden. In einem weiteren Blogeintrag wird die Gegenseite betrachtet, wobei der ESP8266 als Subscriber Nachrichten erhält und basierend darauf Aktionen ausführt. 

Versenden von MQTT-Nachrichten mit dem ESP8266

2 Kommentare zu „Versenden von MQTT-Nachrichten mit dem ESP8266

Schreibe einen Kommentar