3.1 KiB
Hallitse yövaloa Internetin kautta - Virtuaalinen IoT-laitteisto ja Raspberry Pi
Tässä oppitunnin osassa lähetät telemetriatietoja valotasoista Raspberry Pi -laitteeltasi tai virtuaaliselta IoT-laitteeltasi MQTT-välityspalvelimelle.
Telemetrian julkaiseminen
Seuraava vaihe on luoda JSON-dokumentti telemetriatiedoista ja lähettää se MQTT-välityspalvelimelle.
Tehtävä
Julkaise telemetria MQTT-välityspalvelimelle.
-
Avaa yövaloprojekti VS Code -sovelluksessa.
-
Jos käytät virtuaalista IoT-laitetta, varmista, että terminaali käyttää virtuaaliympäristöä. Jos käytät Raspberry Pi:tä, et käytä virtuaaliympäristöä.
-
Lisää seuraava tuonti
app.py
-tiedoston alkuun:import json
json
-kirjastoa käytetään telemetriatietojen koodaamiseen JSON-dokumentiksi. -
Lisää seuraava
client_name
-määrittelyn jälkeen:client_telemetry_topic = id + '/telemetry'
client_telemetry_topic
on MQTT-aihe, johon laite julkaisee valotasot. -
Korvaa tiedoston lopussa olevan
while True:
-silmukan sisältö seuraavalla: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)
Tämä koodi pakkaa valotason JSON-dokumentiksi ja julkaisee sen MQTT-välityspalvelimelle. Sen jälkeen se odottaa hetken vähentääkseen viestien lähetysfrekvenssiä.
-
Suorita koodi samalla tavalla kuin edellisen tehtävän osan koodi. Jos käytät virtuaalista IoT-laitetta, varmista, että CounterFit-sovellus on käynnissä ja että valosensori ja LED on luotu oikeille pinneille.
(.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}
💁 Löydät tämän koodin code-telemetry/virtual-device -kansiosta tai code-telemetry/pi -kansiosta.
😀 Olet onnistuneesti lähettänyt telemetriatietoja laitteeltasi.
Vastuuvapauslauseke:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäisellä kielellä tulisi pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa väärinkäsityksistä tai virhetulkinnoista, jotka johtuvat tämän käännöksen käytöstä.