Arduino - MQTT
In diesem Tutorial lernen wir, wie man Arduino verwendet, um Daten an einen MQTT-Broker zu senden und von diesem zu empfangen, wobei das MQTT-Protokoll verwendet wird. Im Detail werden wir Folgendes lernen:
- Wie verbindet man Arduino mit dem MQTT-Broker
- Wie programmiert man Arduino, um Daten an den MQTT-Broker zu senden, indem man Daten an ein MQTT-Thema veröffentlicht
- Wie programmiert man Arduino, um Daten zu empfangen, indem man ein MQTT-Thema abonniert

Wir werden zwei verschiedene Anwendungsfälle untersuchen:
- Arduino mit einem Online-MQTT-Broker verwenden.
- Arduino mit dem auf Ihrem PC installierten MQTT-Broker verwenden.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables STEM V4 IoT Starter-Kit (Arduino enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über Arduino und MQTT
Angenommen, Sie sind bereits mit dem MQTT-Protokoll vertraut. Falls nicht, recherchieren Sie bitte im Internet. Dieses Tutorial konzentriert sich darauf, Arduino so zu programmieren, dass es Daten mithilfe des MQTT-Protokolls senden und empfangen kann.
Die folgenden Anwendungsfälle von Arduino mit MQTT:
- Arduino verbindet sich mit einem Online-MQTT-Broker, z. B.: Online-Mosquitto-Broker, AWS IoT...
- Arduino verbindet sich mit einem MQTT-Broker, der auf Ihrem PC installiert ist, z. B.: Mosquitto-Broker, HiveMQ-Broker
- Arduino verbindet sich mit einem MQTT-Broker, der auf Ihrem Raspberry Pi installiert ist, z. B.: Mosquitto-Broker
- Arduino verbindet sich mit einem MQTT-Broker, der in der Cloud installiert ist: z. B. Mosquitto- oder HiveMQ-Broker auf AWS EC2
In diesem Tutorial beginnen wir damit, schnell zu prüfen, ob Arduino eine Verbindung zu einem Online-Mosquitto-Broker herstellen kann. Arduino wird über das Internet Daten an diesen Broker veröffentlichen und sich dort auf Themen abonnieren.
Als Nächstes installieren wir den Mosquitto-Broker auf unserem PC. Anschließend verbinden wir Arduino mit dem MQTT-Broker, der auf unserem PC installiert ist, und setzen das Veröffentlichen und Abonnieren von Daten über diesen lokalen Broker fort.
Sobald Sie dieses Tutorial abgeschlossen haben, können Sie sich weiter umsehen, indem Sie in den folgenden Tutorials mehr über Arduino mit MQTT lernen:
Verbinde Arduino mit einem Online-MQTT-Broker
In diesem Abschnitt lernen wir, wie man Arduino 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.
Arduino-Code
Der unten gezeigte Arduino-Code macht Folgendes:
- Mit dem MQTT-Broker verbinden
- Auf ein Thema abonnieren
- Periodisch Nachrichten auf demselben Thema veröffentlichen, das es abonniert
Schnelle Schritte
- Falls dies das erste Mal ist, dass Sie Arduino Uno R4 verwenden, sehen Sie wie man die Umgebung für Arduino Uno R4 in der Arduino IDE einrichtet.
- Öffnen Sie die Arduino IDE auf Ihrem PC.
- Öffnen Sie den Bibliotheksverwalter, indem Sie auf das Bibliotheksverwalter-Symbol in der linken Navigationsleiste der Arduino IDE klicken.
- Geben Sie MQTT in das Suchfeld ein, und suchen Sie dann nach der MQTT-Bibliothek von Joel Gaehwiler.
- Klicken Sie auf die Install-Schaltfläche, um die MQTT-Bibliothek zu installieren.

- Geben Sie ArduinoJson in das Suchfeld ein, und suchen Sie dann nach der ArduinoJson-Bibliothek von Benoit Blanchon.
- Klicken Sie 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 WiFi-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 des Alphabets, keine Leerzeichen). Dies ist notwendig, weil sonst mehrere Personen denselben Code gleichzeitig ausführen könnten, was zu Konflikten führen könnte, da die MQTT-Client-IDs und Topics für alle gleich sind.
- Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den Arduino hochzuladen.
- Öffnen Sie den seriellen Monitor.
- Sehen Sie das Ergebnis im seriellen Monitor.
Wie Sie sehen können, veröffentlicht Arduino Nachrichten an den MQTT-Broker und erhält dann dieselbe Nachricht zurück. Das liegt daran, dass der obige Code dasselbe Thema abonniert, über das er Daten veröffentlicht. Wenn Sie nicht möchten, dass Arduino die Nachricht empfängt, die es veröffentlicht, machen Sie einfach das SUBSCRIBE-Thema unterschiedlich vom PUBLISH-Thema.
Verbinden Sie Arduino mit dem MQTT-Broker, der auf Ihrem PC installiert ist
Mosquitto MQTT-Broker installieren
- Lade den Mosquitto MQTT Broker herunter
- Installiere es auf dem Laufwerk D: statt auf dem Laufwerk C:. Vermeide es, den Mosquitto MQTT 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:
- Gehen Sie in das Verzeichnis, in dem Mosquitto installiert wurde. Zum Beispiel: D:\Draft\mosquitto>
- Erstellen Sie eine neue Datei mit dem Namen test.conf, kopieren Sie den folgenden Inhalt und speichern Sie ihn in diesem Verzeichnis:
- Führen Sie eine Eingabeaufforderung als Administrator auf Ihrem PC aus. Nennen wir es Broker Window. Schließen Sie es nicht bis zum Ende der Anleitung.

- 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:
- Notieren Sie die IP-Adresse für eine spätere Verwendung. Im obigen Beispiel: 192.168.0.26
Prüfen, ob der Mosquitto-Broker funktioniert
- Öffne eine weitere Eingabeaufforderung als Administrator auf deinem PC. Wir nennen es Abonnentenfenster.
- Abonniere ein Thema, indem du die untenstehenden Befehle nacheinander ausführst (ersetze durch deine IP-Adresse):
- Öffnen Sie eine weitere Eingabeaufforderung mit Administratorrechten auf Ihrem PC. Wir nennen sie Publisher-Fenster.
- Veröffentlichen Sie eine Nachricht im selben Thema, indem Sie die untenstehenden Befehle nacheinander ausführen (ersetzen Sie sie durch Ihre IP-Adresse):
- Du wirst sehen:
Sie werden sehen, dass diese Nachricht an das Abonnentenfenster wie folgt weitergeleitet wird:
Jetzt haben Sie den Mosquitto-MQTT-Broker auf Ihrem PC erfolgreich installiert. Bitte schließen Sie NICHT drei Fenster: Broker-Fenster, Abonnentenfenster und Verlegerfenster. Wir werden sie als Nächstes verwenden.
Arduino-Code
Der unten stehende Arduino-Code bewirkt Folgendes:
- Mit dem MQTT-Broker verbinden
- Zu einem Topic abonnieren
- Periodisch Nachrichten an ein anderes Topic veröffentlichen
Schnelle Schritte
- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino-IDE
- Ersetzen Sie die WiFi-Informationen (SSID und Passwort) im Code durch Ihre eigenen.
- Ersetzen Sie die MQTT-Brokeradresse im Code (Domänenname oder IP-Adresse).
- Klicken Sie in der Arduino-IDE auf die Schaltfläche Hochladen, um den Code auf den Arduino hochzuladen
Nachricht von Arduino an den PC über MQTT senden
Arduino-Codes veröffentlichen Daten zum MQTT-Thema arduino-001/send, Abonnentenfenster auf dem PC, abonnieren Sie dieses Thema, um die Daten zu empfangen.
- Öffne den seriellen Monitor, du wirst sehen, dass Arduino periodisch eine Nachricht auf einem Topic veröffentlicht.
- Überprüfen Sie das Abonnentenfenster. Sie werden sehen, dass es die von Arduino veröffentlichte Nachricht, wie unten gezeigt, empfängt:
Nachricht vom PC an Arduino über MQTT senden
Arduino abonniert das Thema arduino-001/receive; Publisher Window auf dem PC veröffentlicht eine Nachricht an dieses Thema, um sie an den Arduino zu senden.
- Veröffentliche eine Nachricht an das Thema, das Arduino abonniert hat, indem du den folgenden Befehl im Publisher Window ausführst:
- Sie werden sehen, dass diese Nachricht im Serial Monitor vom Arduino empfangen wird, 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.