6.2 KiB
Контролишите своје ноћно светло преко интернета - Виртуелни IoT уређај и Raspberry Pi
IoT уређај треба да буде програмиран да комуницира са test.mosquitto.org користећи MQTT за слање телеметријских вредности са очитавањем сензора светлости и примање команди за контролу LED диоде.
У овом делу лекције, повезаћете свој Raspberry Pi или виртуелни IoT уређај са MQTT брокером.
Инсталирајте MQTT клијент пакет
Да бисте комуницирали са MQTT брокером, потребно је да инсталирате MQTT библиотеку преко pip пакета, било на вашем Raspberry Pi-ју или у виртуелном окружењу ако користите виртуелни уређај.
Задатак
Инсталирајте pip пакет
-
Отворите пројекат ноћног светла у VS Code-у.
-
Ако користите виртуелни IoT уређај, уверите се да је терминал покренут у виртуелном окружењу. Ако користите Raspberry Pi, нећете користити виртуелно окружење.
-
Покрените следећу команду за инсталацију MQTT pip пакета:
pip3 install paho-mqtt
Програмирајте уређај
Уређај је спреман за програмирање.
Задатак
Напишите код за уређај.
-
Додајте следећи импорт на врх
app.py
датотеке:import paho.mqtt.client as mqtt
Библиотека
paho.mqtt.client
омогућава вашој апликацији да комуницира преко MQTT-а. -
Додајте следећи код након дефиниција сензора светлости и LED диоде:
id = '<ID>' client_name = id + 'nightlight_client'
Замените
<ID>
јединственим ID-јем који ће се користити као име овог клијента уређаја, а касније и за теме које овај уређај објављује и на које се претплаћује. Брокер test.mosquitto.org је јавни и користи га много људи, укључујући и друге студенте који раде на овом задатку. Имање јединственог MQTT имена клијента и имена тема осигурава да ваш код неће бити у сукобу са кодом других. Такође ће вам бити потребан овај ID када будете креирали серверски код касније у овом задатку.💁 Можете користити веб-сајт као што је GUIDGen за генерисање јединственог ID-ја.
client_name
је јединствено име за овај MQTT клијент на брокеру. -
Додајте следећи код испод овог новог кода за креирање MQTT клијент објекта и повезивање са MQTT брокером:
mqtt_client = mqtt.Client(client_name) mqtt_client.connect('test.mosquitto.org') mqtt_client.loop_start() print("MQTT connected!")
Овај код креира објекат клијента, повезује се са јавним MQTT брокером и покреће процесни циклус који ради у позадинском thread-у, слушајући поруке на свим претплаћеним темама.
-
Покрените код на исти начин као што сте покренули код из претходног дела задатка. Ако користите виртуелни IoT уређај, уверите се да је CounterFit апликација покренута и да су сензор светлости и LED диода креирани на исправним пиновима.
(.venv) ➜ nightlight python app.py MQTT connected! Light level: 0 Light level: 0
💁 Овај код можете пронаћи у code-mqtt/virtual-device фолдеру или code-mqtt/pi фолдеру.
😀 Успешно сте повезали свој уређај са MQTT брокером.
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.