3.0 KiB
Kontrolirajte svoju noćnu lampu putem Interneta - Virtualni IoT uređaj i Raspberry Pi
U ovom dijelu lekcije, poslat ćete telemetriju s razinama svjetlosti s vašeg Raspberry Pi uređaja ili virtualnog IoT uređaja na MQTT broker.
Slanje telemetrije
Sljedeći korak je kreiranje JSON dokumenta s telemetrijom i njegovo slanje na MQTT broker.
Zadatak
Pošaljite telemetriju na MQTT broker.
-
Otvorite projekt noćne lampe u VS Code-u.
-
Ako koristite virtualni IoT uređaj, provjerite je li terminal pokrenut u virtualnom okruženju. Ako koristite Raspberry Pi, nećete koristiti virtualno okruženje.
-
Dodajte sljedeći import na vrh datoteke
app.py
:import json
Biblioteka
json
koristi se za kodiranje telemetrije u JSON dokument. -
Dodajte sljedeće nakon deklaracije
client_name
:client_telemetry_topic = id + '/telemetry'
client_telemetry_topic
je MQTT tema na koju će uređaj objavljivati razine svjetlosti. -
Zamijenite sadržaj petlje
while True:
na kraju datoteke sa sljedećim: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)
Ovaj kod pakira razinu svjetlosti u JSON dokument i objavljuje ga na MQTT broker. Zatim se program pauzira kako bi se smanjila učestalost slanja poruka.
-
Pokrenite kod na isti način kao što ste pokrenuli kod iz prethodnog dijela zadatka. Ako koristite virtualni IoT uređaj, provjerite je li aplikacija CounterFit pokrenuta i jesu li senzor svjetlosti i LED kreirani na odgovarajućim pinovima.
(.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}
💁 Ovaj kod možete pronaći u mapi code-telemetry/virtual-device ili mapi code-telemetry/pi.
😀 Uspješno ste poslali telemetriju s vašeg uređaja.
Odricanje od odgovornosti:
Ovaj dokument je preveden pomoću AI usluge za prevođenje Co-op Translator. Iako nastojimo osigurati točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za ključne informacije preporučuje se profesionalni prijevod od strane čovjeka. Ne preuzimamo odgovornost za bilo kakve nesporazume ili pogrešne interpretacije koje proizlaze iz korištenja ovog prijevoda.