3.0 KiB
Nadzorujte svojo nočno lučko prek interneta - Virtualna IoT strojna oprema in Raspberry Pi
V tem delu lekcije boste poslali telemetrijo z ravnmi svetlobe iz svojega Raspberry Pi ali virtualne IoT naprave na MQTT posrednik.
Pošiljanje telemetrije
Naslednji korak je ustvariti JSON dokument s telemetrijo in ga poslati na MQTT posrednik.
Naloga
Pošljite telemetrijo na MQTT posrednik.
-
Odprite projekt nočne lučke v VS Code.
-
Če uporabljate virtualno IoT napravo, poskrbite, da terminal izvaja virtualno okolje. Če uporabljate Raspberry Pi, ne boste uporabljali virtualnega okolja.
-
Na vrh datoteke
app.py
dodajte naslednji uvoz:import json
Knjižnica
json
se uporablja za kodiranje telemetrije kot JSON dokumenta. -
Dodajte naslednje za deklaracijo
client_name
:client_telemetry_topic = id + '/telemetry'
client_telemetry_topic
je MQTT tema, na katero bo naprava objavljala ravni svetlobe. -
Zamenjajte vsebino zanke
while True:
na koncu datoteke z naslednjim: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)
Ta koda zapakira raven svetlobe v JSON dokument in ga objavi na MQTT posrednik. Nato naredi premor, da zmanjša pogostost pošiljanja sporočil.
-
Zaženite kodo na enak način, kot ste zagnali kodo iz prejšnjega dela naloge. Če uporabljate virtualno IoT napravo, poskrbite, da je aplikacija CounterFit zagnana in da sta senzor svetlobe ter LED ustvarjena na ustreznih pinih.
(.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}
💁 To kodo lahko najdete v mapi code-telemetry/virtual-device ali v mapi code-telemetry/pi.
😀 Uspešno ste poslali telemetrijo iz svoje naprave.
Omejitev odgovornosti:
Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco Co-op Translator. Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.