2.5 KiB
Juhi oma öölampi Interneti kaudu - Virtuaalne IoT-seade ja Raspberry Pi
Selles õppetunni osas saadad telemeetriat valgustasemetega oma Raspberry Pi või virtuaalse IoT-seadme kaudu MQTT brokerile.
Telemeetria avaldamine
Järgmine samm on luua JSON-dokument telemeetriaga ja saata see MQTT brokerile.
Ülesanne
Avalda telemeetria MQTT brokerile.
-
Ava öölambi projekt VS Code'is.
-
Kui kasutad virtuaalset IoT-seadet, veendu, et terminalis töötab virtuaalne keskkond. Kui kasutad Raspberry Pi-d, siis virtuaalset keskkonda ei kasutata.
-
Lisa järgmine import
app.pyfaili algusesse:import jsonjsonteeki kasutatakse telemeetria kodeerimiseks JSON-dokumendina. -
Lisa järgmine pärast
client_namedeklaratsiooni:client_telemetry_topic = id + '/telemetry'client_telemetry_topicon MQTT teema, kuhu seade avaldab valgustasemeid. -
Asenda faili lõpus oleva
while True:tsükli sisu järgmisega: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)See kood pakib valgustaseme JSON-dokumenti ja avaldab selle MQTT brokerile. Seejärel tehakse paus, et vähendada sõnumite saatmise sagedust.
-
Käivita kood samamoodi nagu eelmises ülesande osas. Kui kasutad virtuaalset IoT-seadet, veendu, et CounterFit rakendus töötab ja valgusandur ning LED on õigetele pin'idele loodud.
(.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}
💁 Selle koodi leiad code-telemetry/virtual-device kaustast või code-telemetry/pi kaustast.
😀 Sa oled edukalt saatnud telemeetria oma seadmest.
Lahtiütlus:
See dokument on tõlgitud AI tõlketeenuse Co-op Translator abil. Kuigi püüame tagada täpsust, palume arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitame kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti tõlgenduste eest.