4.6 KiB
Контролишите своје ноћно светло преко интернета - Wio Terminal
У овом делу лекције, слаћете телеметрију са нивоима светлости са вашег Wio Terminal-а на MQTT брокер.
Инсталирајте JSON Arduino библиотеке
Популаран начин за слање порука преко MQTT-а је коришћење JSON-а. Постоји Arduino библиотека за JSON која олакшава читање и писање JSON докумената.
Задатак
Инсталирајте Arduino JSON библиотеку.
-
Отворите пројекат ноћног светла у VS Code-у.
-
Додајте следећу линију у
lib_depsлисту уplatformio.iniфајлу:bblanchon/ArduinoJson @ 6.17.3Ово увози ArduinoJson, Arduino JSON библиотеку.
Објавите телеметрију
Следећи корак је креирање JSON документа са телеметријом и његово слање на MQTT брокер.
Задатак - објавите телеметрију
Објавите телеметрију на MQTT брокер.
-
Додајте следећи код на крај
config.hфајла да дефинишете назив теме за телеметрију на MQTT брокеру:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";CLIENT_TELEMETRY_TOPICје тема на коју ће уређај објављивати нивое светлости. -
Отворите
main.cppфајл. -
Додајте следећу
#includeдирективу на врх фајла:#include <ArduinoJSON.h> -
Додајте следећи код унутар
loopфункције, непосредно преdelay:int light = analogRead(WIO_LIGHT); DynamicJsonDocument doc(1024); doc["light"] = light; string telemetry; serializeJson(doc, telemetry); Serial.print("Sending telemetry "); Serial.println(telemetry.c_str()); client.publish(CLIENT_TELEMETRY_TOPIC.c_str(), telemetry.c_str());Овај код чита ниво светлости и креира JSON документ користећи ArduinoJson који садржи овај ниво. Затим се овај документ серијализује у стринг и објављује на телеметријској MQTT теми преко MQTT клијента.
-
Отпремите код на ваш Wio Terminal и користите Serial Monitor да видите нивое светлости који се шаљу на MQTT брокер.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 Овај код можете пронаћи у code-telemetry/wio-terminal фасцикли.
😀 Успешно сте послали телеметрију са вашег уређаја.
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.