3.1 KiB
Valdykite savo naktinę lempą internetu – virtuali IoT įranga ir Raspberry Pi
Šioje pamokos dalyje siųsite telemetrijos duomenis apie šviesos lygį iš savo Raspberry Pi arba virtualaus IoT įrenginio į MQTT brokerį.
Telemetrijos publikavimas
Kitas žingsnis – sukurti JSON dokumentą su telemetrijos duomenimis ir išsiųsti jį į MQTT brokerį.
Užduotis
Publikuokite telemetriją MQTT brokeriui.
-
Atidarykite naktinės lempos projektą VS Code programoje.
-
Jei naudojate virtualų IoT įrenginį, įsitikinkite, kad terminale veikia virtuali aplinka. Jei naudojate Raspberry Pi, virtualios aplinkos naudoti nereikės.
-
Pridėkite šį importą į
app.py
failo viršų:import json
Biblioteka
json
naudojama telemetrijos duomenims užkoduoti kaip JSON dokumentą. -
Pridėkite šį kodą po
client_name
deklaracijos:client_telemetry_topic = id + '/telemetry'
client_telemetry_topic
yra MQTT tema, į kurią įrenginys publikuos šviesos lygius. -
Pakeiskite
while True:
ciklo turinį failo pabaigoje šiuo kodu: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)
Šis kodas supakuoja šviesos lygį į JSON dokumentą ir publikuoja jį MQTT brokeriui. Po to programa padaro pauzę, kad sumažintų siunčiamų pranešimų dažnį.
-
Paleiskite kodą taip pat, kaip paleidote kodą iš ankstesnės užduoties dalies. Jei naudojate virtualų IoT įrenginį, įsitikinkite, kad CounterFit programa veikia ir šviesos jutiklis bei LED yra sukurti tinkamuose kaiščiuose.
(.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}
💁 Šį kodą galite rasti code-telemetry/virtual-device aplanke arba code-telemetry/pi aplanke.
😀 Jūs sėkmingai išsiuntėte telemetrijos duomenis iš savo įrenginio.
Atsakomybės apribojimas:
Šis dokumentas buvo išverstas naudojant AI vertimo paslaugą Co-op Translator. Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama naudoti profesionalų žmogaus vertimą. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus interpretavimus, atsiradusius dėl šio vertimo naudojimo.