3.1 KiB
Ovládajte svoje nočné svetlo cez internet - Virtuálny IoT hardvér a Raspberry Pi
V tejto časti lekcie budete odosielať telemetriu s úrovňami svetla z vášho Raspberry Pi alebo virtuálneho IoT zariadenia do MQTT brokera.
Publikovanie telemetrie
Ďalším krokom je vytvoriť JSON dokument s telemetriou a odoslať ho do MQTT brokera.
Úloha
Publikujte telemetriu do MQTT brokera.
-
Otvorte projekt nočného svetla vo VS Code.
-
Ak používate virtuálne IoT zariadenie, uistite sa, že terminál beží vo virtuálnom prostredí. Ak používate Raspberry Pi, virtuálne prostredie nebudete používať.
-
Pridajte nasledujúci import na začiatok súboru
app.py
:import json
Knižnica
json
sa používa na zakódovanie telemetrie ako JSON dokumentu. -
Pridajte nasledujúci kód za deklaráciu
client_name
:client_telemetry_topic = id + '/telemetry'
Premenná
client_telemetry_topic
je MQTT téma, do ktorej zariadenie bude publikovať úrovne svetla. -
Nahraďte obsah cyklu
while True:
na konci súboru nasledujúcim kódom: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)
Tento kód zabalí úroveň svetla do JSON dokumentu a publikuje ho do MQTT brokera. Potom sa program uspí, aby sa znížila frekvencia odosielania správ.
-
Spustite kód rovnakým spôsobom, ako ste spúšťali kód z predchádzajúcej časti zadania. Ak používate virtuálne IoT zariadenie, uistite sa, že aplikácia CounterFit beží a že svetelný senzor a LED boli vytvorené na správnych pinoch.
(.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}
💁 Tento kód nájdete v priečinku code-telemetry/virtual-device alebo v priečinku code-telemetry/pi.
😀 Úspešne ste odoslali telemetriu zo svojho zariadenia.
Upozornenie:
Tento dokument bol preložený pomocou služby AI prekladu Co-op Translator. Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.