3.3 KiB
Steuern Sie Ihr Nachtlicht über das Internet - Virtuelle IoT-Hardware und Raspberry Pi
In diesem Teil der Lektion senden Sie Telemetriedaten mit Lichtwerten von Ihrem Raspberry Pi oder virtuellen IoT-Gerät an einen MQTT-Broker.
Telemetrie veröffentlichen
Der nächste Schritt besteht darin, ein JSON-Dokument mit Telemetriedaten zu erstellen und an den MQTT-Broker zu senden.
Aufgabe
Veröffentlichen Sie Telemetriedaten auf dem MQTT-Broker.
-
Öffnen Sie das Nachtlicht-Projekt in VS Code.
-
Wenn Sie ein virtuelles IoT-Gerät verwenden, stellen Sie sicher, dass das Terminal die virtuelle Umgebung ausführt. Wenn Sie einen Raspberry Pi verwenden, benötigen Sie keine virtuelle Umgebung.
-
Fügen Sie die folgende Import-Anweisung am Anfang der Datei
app.py
hinzu:import json
Die Bibliothek
json
wird verwendet, um die Telemetriedaten als JSON-Dokument zu kodieren. -
Fügen Sie das Folgende nach der Deklaration von
client_name
hinzu:client_telemetry_topic = id + '/telemetry'
Das
client_telemetry_topic
ist das MQTT-Topic, auf dem das Gerät die Lichtwerte veröffentlichen wird. -
Ersetzen Sie den Inhalt der Schleife
while True:
am Ende der Datei durch Folgendes:while True: light = light_sensor.light telemetry = json.dumps({'light' : light}) print("Sending telemetry ", telemetry) mqtt_client.publish(client_telemetry_topic, telemetry) time.sleep(5)
Dieser Code verpackt den Lichtwert in ein JSON-Dokument und veröffentlicht ihn auf dem MQTT-Broker. Anschließend wird eine Pause eingelegt, um die Häufigkeit der gesendeten Nachrichten zu reduzieren.
-
Führen Sie den Code auf die gleiche Weise aus wie den Code aus dem vorherigen Teil der Aufgabe. Wenn Sie ein virtuelles IoT-Gerät verwenden, stellen Sie sicher, dass die CounterFit-App läuft und der Lichtsensor sowie die LED an den richtigen Pins erstellt wurden.
(.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}
💁 Sie finden diesen Code im Ordner code-telemetry/virtual-device oder im Ordner code-telemetry/pi.
😀 Sie haben erfolgreich Telemetriedaten von Ihrem Gerät gesendet.
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.