ESP32 - MQTT
In diesem Tutorial werden wir untersuchen, wie man den ESP32 verwendet, um Daten an einen MQTT-Broker zu senden und von diesem zu empfangen, wobei das MQTT-Protokoll verwendet wird. Genauer gesagt werden wir Folgendes behandeln:
- Herstellung einer Verbindung zwischen dem ESP32 und einem MQTT-Broker.
- Programmieren des ESP32, Daten an einen MQTT-Broker zu senden, indem Daten auf einem MQTT-Thema veröffentlicht werden.
- Programmieren des ESP32, Daten zu empfangen, indem es sich auf ein MQTT-Thema abonniert.

Wir werden uns mit zwei unterschiedlichen Szenarien befassen:
- ESP32 mit einem Online-MQTT-Broker.
- ESP32 mit einem MQTT-Broker, der auf deinem PC installiert ist.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über ESP32 und MQTT
Wenn Sie bereits mit dem MQTT-Protokoll vertraut sind, großartig! Wenn nicht, können Sie online nachschlagen. Dieses Tutorial dreht sich ganz darum, den ESP32 zu verwenden, um Daten mit MQTT zu senden und zu empfangen.
Hier sind einige Möglichkeiten, wie der ESP32 mit MQTT arbeiten kann:
- Verbinde den ESP32 mit einem Online-MQTT-Broker wie Mosquitto oder AWS IoT.
- Verbinde den ESP32 mit einem MQTT-Broker, der auf deinem Computer installiert ist, z. B. Mosquitto oder HiveMQ.
- Verbinde den ESP32 mit einem MQTT-Broker, der auf deinem Raspberry Pi läuft, zum Beispiel Mosquitto.
- Verbinde den ESP32 mit einem cloud-basierten MQTT-Broker, wie Mosquitto oder HiveMQ auf AWS EC2.
In diesem Tutorial beginnen wir damit zu prüfen, ob der ESP32 eine Verbindung zu einem Online-Mosquitto-Broker herstellen kann. Wir ermöglichen dem ESP32, Daten über diesen Broker über das Internet zu senden und zu empfangen.
Danach richten wir den Mosquitto-Broker auf unserem Computer ein. Wir verbinden den ESP32 mit diesem lokalen Broker und setzen das Senden und Empfangen von Daten fort.
Sobald du dieses Tutorial abgeschlossen hast, kannst du mehr entdecken, indem du dir diese anderen Tutorials anschaust:
Diese Links geben Ihnen weitere Hinweise zu verwandten Themen.
Verbinde den ESP32 mit einem Online-MQTT-Broker
In diesem Teil lernen wir, wie man den ESP32 mit test.mosquitto.org verbindet, einem Online-MQTT-Broker, der von Mosquitto betrieben wird. Bitte beachten Sie, dass dieser Broker nur zu Testzwecken verwendet werden sollte.
ESP32-Code
Der untenstehende ESP32-Code führt Folgendes aus:
- Mit dem MQTT-Broker verbinden
- Ein Thema abonnieren
- Periodisch Nachrichten auf demselben Thema veröffentlichen, das es abonniert
Schnelle Schritte
- Falls du ESP32 zum ersten Mal verwendest, siehe wie man die Umgebung für ESP32 in der Arduino-IDE einrichtet.
- Schließe die Verkabelung wie im obigen Bild an.
- Schließe das ESP32-Board über ein USB-Kabel an deinen PC an.
- Öffne die Arduino-IDE auf deinem PC.
- Wähle das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
- Öffne die Arduino-IDE auf deinem PC.
- Öffne den Library Manager, indem du auf das Library Manager-Symbol in der linken Navigationsleiste der Arduino-IDE klickst.
- Gib MQTT in das Suchfeld ein, und suche dann nach der MQTT-Bibliothek von Joel Gaehwiler.
- Klicke auf den Install-Button, um die MQTT-Bibliothek zu installieren.

- Geben Sie ArduinoJson in das Suchfeld ein, und suchen Sie danach nach der ArduinoJson-Bibliothek von Benoit Blanchon.
- Klicken Sie auf die Schaltfläche Installieren, um die ArduinoJson-Bibliothek zu installieren.

- 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.
- Im Code sehen Sie dreimal das Wort 'YOUR-NAME'. Ersetzen Sie dieses Wort durch Ihren Namen oder zufällige Zeichen (nur Buchstaben, keine Leerzeichen). Dies ist notwendig, denn wenn Sie die Änderung nicht vornehmen, kann es mehrere Personen geben, die denselben Code gleichzeitig ausführen, was zu Konflikten führen könnte, da die MQTT-Client-IDs und -Themen für alle gleich sind.
- Klicken Sie auf den Upload-Button in der Arduino IDE, um den Code auf den ESP32 hochzuladen.
- Öffnen Sie den seriellen Monitor.
- Sehen Sie das Ergebnis im seriellen Monitor.
Wie Sie beobachten können, veröffentlicht der ESP32 Nachrichten an den MQTT-Broker und erhält anschließend dieselbe Nachricht zurück. Dies geschieht, weil der bereitgestellte Code dasselbe Thema abonniert, auf das er Daten veröffentlicht. Wenn Sie nicht möchten, dass der ESP32 die von ihm veröffentlichten Nachrichten empfängt, können Sie dies einfach erreichen, indem Sie das Abonnement-Thema vom Veröffentlichungs-Thema unterscheiden.
Verbinde den ESP32 mit dem MQTT-Broker, der auf deinem PC installiert ist
Mosquitto MQTT-Broker installieren
- Lade den Mosquitto MQTT-Broker herunter (https://mosquitto.org/download/)
- Installiere ihn auf dem Laufwerk D: statt auf dem Laufwerk C:. Vermeide es, den Mosquitto-Broker auf dem Laufwerk C: zu installieren, um potenzielle Probleme zu vermeiden.
Mosquitto MQTT-Broker starten
Nun prüfen wir, ob der MQTT-Broker ordnungsgemäß funktioniert, indem wir diese Schritte befolgen:
- Gehe in das Verzeichnis, in dem Mosquitto installiert wurde. Zum Beispiel: D:\Draft\mosquitto>
- Erstelle eine neue Datei mit dem Namen test.conf, kopiere den untenstehenden Inhalt hinein und speichere sie in diesem Verzeichnis:
- Öffnen Sie die 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 nacheinander aus:
- Sie werden sehen:
- Öffnen Sie eine weitere Eingabeaufforderung als Administrator auf Ihrem PC.
- Finden 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. Nennen wir es Abonnentenfenster
- Abonnieren Sie ein Thema, indem Sie die untenstehenden Befehle nacheinander ausführen (ersetzen Sie sie durch Ihre IP-Adresse):
- Öffnen Sie eine weitere Eingabeaufforderung als Administrator auf Ihrem PC. Nennen wir sie Publisher Window
- Veröffentlichen Sie eine Nachricht auf demselben Thema, indem Sie die untenstehenden Befehle der Reihe nach ausführen (ersetzen Sie es durch Ihre IP-Adresse):
- Sie werden sehen:
Sie werden sehen, dass diese Nachricht an das Abonnentenfenster wie folgt weitergeleitet wird:
Jetzt haben Sie den Mosquitto MQTT-Broker erfolgreich auf Ihrem PC installiert. Bitte schließen Sie NICHT drei Fenster: Broker-Fenster, Abonnent-Fenster und Publisher-Fenster. Wir werden sie als Nächstes verwenden.
ESP32-Quellcode
Der untenstehende ESP32-Code macht Folgendes:
- Verbinde dich mit dem MQTT-Broker
- Abonniere ein Topic
- Veröffentliche periodisch Nachrichten an ein anderes Topic
Schnelle Schritte
- Kopiere den obigen Code und öffne ihn mit der Arduino-IDE
- Ersetze die WiFi-Informationen (SSID und Passwort) im Code durch deine eigenen.
- Ersetze die MQTT-Broker-Adresse im Code (Domänenname oder IP-Adresse).
- Klicke auf die Schaltfläche Hochladen in der Arduino-IDE, um den Code auf den ESP32 hochzuladen
Nachricht vom ESP32 zum PC über MQTT senden
Der ESP32-Code veröffentlicht Daten auf dem MQTT-Thema esp32-001/send, Abonnentenfenster auf dem PC abonniert dieses Thema, um die Daten zu empfangen.
- Öffnen Sie den seriellen Monitor. Sie werden sehen, dass der ESP32 periodisch eine Nachricht an ein Topic veröffentlicht.
- Überprüfen Sie das Abonnentenfenster, dort sehen Sie, dass es die vom ESP32 veröffentlichte Nachricht wie unten zu sehen empfängt:
Nachricht vom PC zum ESP32 über MQTT senden
Der ESP32 abonniert das Thema esp32-001/receive, Publisher Window auf dem PC veröffentlicht eine Nachricht an dieses Thema, um sie an den ESP32 zu senden.
- Veröffentlichen Sie eine Nachricht an das Thema, das der ESP32 abonniert hat, indem Sie den folgenden Befehl im Publisher Window ausführen:
- Sie werden sehen, dass diese Nachricht vom ESP32 im Serial Monitor wie unten gezeigt empfangen wird:
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.