4.4 KiB
Steuern Sie Ihr Nachtlicht über das Internet - Virtuelle IoT-Hardware und Raspberry Pi
Das IoT-Gerät muss so programmiert werden, dass es über MQTT mit test.mosquitto.org kommuniziert, um Telemetriedaten mit den Lichtsensorwerten zu senden und Befehle zum Steuern der LED zu empfangen.
In diesem Teil der Lektion verbinden Sie Ihren Raspberry Pi oder Ihr virtuelles IoT-Gerät mit einem MQTT-Broker.
Installieren Sie das MQTT-Client-Paket
Um mit dem MQTT-Broker zu kommunizieren, müssen Sie ein MQTT-Bibliothek-Pip-Paket entweder auf Ihrem Pi oder in Ihrer virtuellen Umgebung installieren, falls Sie ein virtuelles Gerät verwenden.
Aufgabe
Installieren Sie das Pip-Paket.
-
Öffnen Sie das Nachtlicht-Projekt in VS Code.
-
Falls Sie ein virtuelles IoT-Gerät verwenden, stellen Sie sicher, dass das Terminal die virtuelle Umgebung ausführt. Wenn Sie einen Raspberry Pi verwenden, arbeiten Sie nicht mit einer virtuellen Umgebung.
-
Führen Sie den folgenden Befehl aus, um das MQTT-Pip-Paket zu installieren:
pip3 install paho-mqtt
Programmieren Sie das Gerät
Das Gerät ist bereit für die Programmierung.
Aufgabe
Schreiben Sie den Code für das Gerät.
-
Fügen Sie die folgende Import-Anweisung oben in die Datei
app.py
ein:import paho.mqtt.client as mqtt
Die Bibliothek
paho.mqtt.client
ermöglicht Ihrer App die Kommunikation über MQTT. -
Fügen Sie den folgenden Code nach den Definitionen des Lichtensors und der LED ein:
id = '<ID>' client_name = id + 'nightlight_client'
Ersetzen Sie
<ID>
durch eine eindeutige ID, die als Name dieses Geräte-Clients verwendet wird und später für die Themen, die dieses Gerät veröffentlicht und abonniert. Der Broker test.mosquitto.org ist öffentlich und wird von vielen Menschen genutzt, einschließlich anderer Schüler, die diese Aufgabe bearbeiten. Eine eindeutige MQTT-Client-ID und eindeutige Themen-Namen stellen sicher, dass Ihr Code nicht mit dem anderer kollidiert. Sie benötigen diese ID auch, wenn Sie später den Server-Code für diese Aufgabe erstellen.💁 Sie können eine Website wie GUIDGen verwenden, um eine eindeutige ID zu generieren.
Der
client_name
ist ein eindeutiger Name für diesen MQTT-Client auf dem Broker. -
Fügen Sie den folgenden Code unterhalb dieses neuen Codes ein, um ein MQTT-Client-Objekt zu erstellen und sich mit dem MQTT-Broker zu verbinden:
mqtt_client = mqtt.Client(client_name) mqtt_client.connect('test.mosquitto.org') mqtt_client.loop_start() print("MQTT connected!")
Dieser Code erstellt das Client-Objekt, verbindet sich mit dem öffentlichen MQTT-Broker und startet eine Verarbeitungsschleife, die in einem Hintergrund-Thread läuft und Nachrichten auf abonnierten Themen empfängt.
-
Führen Sie den Code auf die gleiche Weise aus wie den Code aus dem vorherigen Teil der Aufgabe. Falls Sie ein virtuelles IoT-Gerät verwenden, stellen Sie sicher, dass die CounterFit-App läuft und der Lichtsensor sowie die LED auf den richtigen Pins erstellt wurden.
(.venv) ➜ nightlight python app.py MQTT connected! Light level: 0 Light level: 0
💁 Sie finden diesen Code im Ordner code-mqtt/virtual-device oder im Ordner code-mqtt/pi.
😀 Sie haben Ihr Gerät erfolgreich mit einem MQTT-Broker verbunden.
Haftungsausschluss:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst Co-op Translator übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.