ESP8266 - MQTT
In diesem Tutorial werden wir untersuchen, wie man den ESP8266 nutzt, um Daten mit einem MQTT-Broker unter Verwendung des MQTT-Protokolls zu senden und zu empfangen. Genauer gesagt werden wir Folgendes behandeln:
- Herstellung einer Verbindung zwischen dem ESP8266 und einem MQTT-Broker.
- Programmierung des ESP8266 zur Übertragung von Daten an einen MQTT-Broker durch das Veröffentlichen auf einem MQTT-Thema.
- Programmierung des ESP8266 zum Empfangen von Daten durch Abonnieren eines MQTT-Themas.

Wir werden zwei verschiedene Szenarien eingehend betrachten:
- ESP8266 mit einem Online-MQTT-Broker verwenden.
- ESP8266 mit einem MQTT-Broker verwenden, der auf Ihrem PC installiert ist.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über ESP8266 und MQTT
Wenn Sie mit dem MQTT-Protokoll noch nicht vertraut sind, können Sie online Informationen dazu finden. Dieses Tutorial konzentriert sich auf die Verwendung des ESP8266 zum Senden und Empfangen von Daten über MQTT.
Hier sind einige Möglichkeiten, wie der ESP8266 mit MQTT verwendet werden kann:
- Sie können den ESP8266 mit einem Online-MQTT-Broker wie Mosquitto oder AWS IoT verbinden.
- Alternativ können Sie den ESP8266 mit einem MQTT-Broker verbinden, der auf Ihrem Computer installiert ist, wie Mosquitto oder HiveMQ.
- Wenn Sie einen Raspberry Pi haben, kann der ESP8266 eine Verbindung zu einem MQTT-Broker herstellen, der darauf läuft, zum Beispiel Mosquitto.
- Zusätzlich kann der ESP8266 mit einem cloud-basierten MQTT-Broker verbunden werden, z. B. Mosquitto oder HiveMQ auf AWS EC2.
In diesem Tutorial beginnen wir damit zu testen, ob der ESP8266 eine Verbindung zu einem Online-Mosquitto-Broker herstellen kann. Wir demonstrieren die Fähigkeit des ESP8266, über diesen Broker Daten zu senden und über das Internet zu empfangen.
Als Nächstes führen wir Sie durch die Einrichtung des Mosquitto-Brokers auf Ihrem Computer. Der ESP8266 wird sich dann mit diesem lokalen Broker verbinden, sodass Sie weiterhin Daten senden und empfangen können.
Nachdem Sie dieses Tutorial abgeschlossen haben, können Sie tiefer einsteigen, indem Sie diese zusätzlichen Tutorials erkunden:
Diese Ressourcen bieten weitere Einblicke in verwandte Themen.
Verbinde ESP8266 mit einem Online-MQTT-Broker
In diesem Abschnitt lernen wir, wie man den ESP8266 mit test.mosquitto.org verbindet, einem Online-MQTT-Broker, der von Mosquitto erstellt wurde. Bitte beachten Sie, dass dieser Broker nur zu Testzwecken verwendet werden sollte.
ESP8266-Code
Der untenstehende ESP8266-Code macht Folgendes:
- Mit dem MQTT-Broker verbinden
- Zu einem Topic abonnieren
- Regelmäßig Nachrichten auf demselben Topic veröffentlichen, auf das es abonniert
Schnelle Schritte
Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:
- Schau dir die Anleitung zur Einrichtung der ESP8266-Umgebung in der Arduino IDE an, falls dies dein erster Einsatz mit ESP8266 ist.
- Schließe das ESP8266-Board über ein USB-Kabel an deinen Computer an.
- Öffne die Arduino IDE auf deinem Computer.
- Wähle das richtige ESP8266-Board, z. B. (NodeMCU 1.0 (ESP-12E Module)), und seinen jeweiligen COM-Port.
- Öffne den Bibliotheks-Manager, indem du auf das Bibliotheks-Manager-Symbol in der linken Navigationsleiste der Arduino IDE klickst.
- Gib MQTT in das Suchfeld ein, dann suche nach der MQTT-Bibliothek von Joel Gaehwiler.
- Klicke auf die Installieren-Schaltfläche, um die MQTT-Bibliothek zu installieren.

- Gib ArduinoJson in das Suchfeld ein, suche dann nach der ArduinoJson-Bibliothek von Benoit Blanchon.
- Klicke auf die Installieren-Schaltfläche, um die ArduinoJson-Bibliothek zu installieren.

- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
- Ersetzen Sie die WLAN-Informationen (SSID und Passwort) im Code durch Ihre eigenen.
- Im Code sehen Sie das Wort 'YOUR-NAME' dreimal. Ersetzen Sie dieses Wort durch Ihren Namen oder zufällige Zeichenfolgen (nur Buchstaben, keine Leerzeichen). Dies ist notwendig, weil andernfalls mehrere Personen denselben Code gleichzeitig ausführen könnten, was zu Konflikten führen kann, da die MQTT-Client-IDs und -Themen für alle gleich sind.
- Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um den Code auf den ESP8266 hochzuladen.
- Öffnen Sie den seriellen Monitor
- Sehen Sie das Ergebnis im seriellen Monitor.
Wie Sie sehen können, veröffentlicht der ESP8266 Nachrichten an den MQTT-Broker und erhält dann dieselbe Nachricht zurück. Das liegt daran, dass der obige Code dasselbe Thema abonniert, auf dem er Daten veröffentlicht. Wenn Sie nicht möchten, dass der ESP8266 die von ihm veröffentlichten Nachrichten empfängt, sorgen Sie einfach dafür, dass sich das SUBSCRIBE-Thema vom PUBLISH-Thema unterscheidet.
Verbinde den ESP8266 mit dem MQTT-Broker, der auf deinem PC installiert ist
Installation des Mosquitto MQTT-Brokers
- Lade den Mosquitto MQTT Broker herunter.
- Installiere es auf dem Laufwerk D: statt auf dem Laufwerk C:. Vermeide es, den Mosquitto-Broker auf dem C-Laufwerk zu installieren, um potenzielle Probleme zu verhindern.
Mosquitto MQTT-Broker starten
Nun prüfen wir, ob der MQTT-Broker ordnungsgemäß funktioniert, indem wir diese Schritte befolgen:
- Gehen Sie in das Verzeichnis, in dem Mosquitto installiert wurde. Zum Beispiel: D:\mqtt\mosquitto>
- Erstellen Sie eine neue Datei mit dem Namen test.conf, kopieren Sie den untenstehenden Inhalt und speichern Sie ihn in diesem Verzeichnis:
- Öffnen Sie eine Eingabeaufforderung als Administrator auf Ihrem PC. Nennen wir es Broker Window. Schließen Sie es nicht bis zum Ende des Tutorials.

- Führe die untenstehenden Befehle der Reihe nach aus:
- Du wirst sehen:
- Öffnen Sie eine weitere Eingabeaufforderung als Administrator auf Ihrem PC.
- Ermitteln Sie die IP-Adresse Ihres PCs, indem Sie den untenstehenden Befehl ausführen:
- Schreibe die IP-Adresse für späteren Gebrauch auf. Im obigen Beispiel: 192.168.0.26
Prüfe, ob der Mosquitto-Broker funktioniert
- Öffnen Sie eine weitere Eingabeaufforderung als Administrator auf Ihrem PC. Wir nennen sie Abonnentenfenster.
- Abonnieren Sie ein Thema, indem Sie die untenstehenden Befehle nacheinander ausführen (ersetzen Sie dabei Ihre IP-Adresse):
- Öffnen Sie eine weitere Eingabeaufforderung als Administrator auf Ihrem PC. Nennen wir sie Publisher-Fenster.
- Veröffentlichen Sie eine Nachricht auf dem gleichen Thema, indem Sie die untenstehenden Befehle der Reihe nach ausführen (ersetzen Sie sie durch Ihre IP-Adresse):
- Sie werden sehen:
Sie werden sehen, dass diese Nachricht an das Abonnentenfenster weitergeleitet wird, wie folgt:
Nun haben Sie den Mosquitto-MQTT-Broker auf Ihrem PC erfolgreich installiert. Bitte schließen Sie NICHT drei Fenster: Broker-Fenster, Subscriber-Fenster und Publisher-Fenster. Wir werden sie als Nächstes verwenden.
ESP8266-Code
Der untenstehende ESP8266-Code tut Folgendes:
- Mit dem MQTT-Broker verbinden
- Ein Thema abonnieren
- Periodisch Nachrichten auf ein anderes Thema veröffentlichen
Schnelle Schritte
- Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
- Ersetzen Sie die WLAN-Informationen (SSID und Passwort) im Code durch Ihre eigenen.
- Ersetzen Sie die MQTT-Brokeradresse im Code (Domainname oder IP-Adresse).
- Klicken Sie auf die Upload-Schaltfläche in der Arduino IDE, um den Code auf den ESP8266 hochzuladen.
Nachricht vom ESP8266 an den PC über MQTT senden
ESP8266-Code veröffentlicht Daten zum MQTT-Thema esp8266-001/send; Abonnentenfenster auf dem PC abonniert dieses Thema, um die Daten zu empfangen.
- Öffnen Sie den seriellen Monitor; Sie werden sehen, dass der ESP8266 periodisch eine Nachricht an ein Topic veröffentlicht.
- Überprüfen Sie das Abonnentenfenster, Sie werden sehen, dass es die von ESP8266 veröffentlichte Nachricht, wie unten gezeigt, empfängt:
Nachricht vom PC zum ESP8266 über MQTT senden
ESP8266 abonniert das Thema esp8266-001/receive; Publisher-Fenster auf dem PC veröffentlicht eine Nachricht an dieses Thema, um sie an den ESP8266 zu senden.
- Veröffentliche eine Nachricht zu dem Thema, auf das der ESP8266 abonniert hat, indem du den folgenden Befehl im Publisher Window ausführst:
- Sie werden sehen, dass diese Nachricht vom ESP8266 im Serial Monitor wie unten zu sehen ist:
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.