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. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.