3.0 KiB
Juhi oma öölampi Interneti kaudu - Wio Terminal
Selles õppetunni osas saadad telemeetriat Wio Terminali valguse tasemetega MQTT brokerile.
Paigalda JSON Arduino teegid
Populaarne viis sõnumite saatmiseks MQTT kaudu on kasutada JSON-i. Arduino jaoks on olemas JSON-teek, mis muudab JSON-dokumentide lugemise ja kirjutamise lihtsamaks.
Ülesanne
Paigalda Arduino JSON teek.
-
Ava öölambi projekt VS Code'is.
-
Lisa järgmine rida
lib_depsloendisseplatformio.inifailis:bblanchon/ArduinoJson @ 6.17.3See impordib ArduinoJson, Arduino JSON teegi.
Telemeetria avaldamine
Järgmine samm on luua telemeetria jaoks JSON-dokument ja saata see MQTT brokerile.
Ülesanne - telemeetria avaldamine
Avalda telemeetria MQTT brokerile.
-
Lisa järgmine kood
config.hfaili lõppu, et määratleda telemeetria teema nimi MQTT brokeri jaoks:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";CLIENT_TELEMETRY_TOPICon teema, kuhu seade avaldab valguse tasemed. -
Ava
main.cppfail. -
Lisa järgmine
#includedirektiiv faili algusesse:#include <ArduinoJSON.h> -
Lisa järgmine kood
loopfunktsiooni sisse, vahetult ennedelay: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());See kood loeb valguse taseme, loob ArduinoJson-i abil JSON-dokumendi, mis sisaldab seda taset. Seejärel serialiseeritakse see stringiks ja avaldatakse telemeetria MQTT teemas MQTT kliendi poolt.
-
Laadi kood oma Wio Terminali ja kasuta Serial Monitori, et näha, kuidas valguse tasemed saadetakse MQTT brokerile.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 Selle koodi leiad code-telemetry/wio-terminal kaustast.
😀 Sa oled edukalt saatnud telemeetria oma seadmest.
Lahtiütlus:
See dokument on tõlgitud AI tõlketeenuse Co-op Translator abil. Kuigi püüame tagada täpsust, palume arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitame kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti tõlgenduste eest.