3.2 KiB
Dhibiti taa yako ya usiku kupitia Mtandao - Wio Terminal
Katika sehemu hii ya somo, utatuma data ya telemetry yenye viwango vya mwanga kutoka kwa Wio Terminal yako kwenda kwa MQTT broker.
Sakinisha maktaba za JSON za Arduino
Njia maarufu ya kutuma ujumbe kupitia MQTT ni kutumia JSON. Kuna maktaba ya Arduino kwa JSON ambayo inarahisisha kusoma na kuandika hati za JSON.
Kazi
Sakinisha maktaba ya Arduino JSON.
-
Fungua mradi wa nightlight katika VS Code.
-
Ongeza mstari ufuatao kama mstari wa ziada kwenye orodha ya
lib_deps
katika faili yaplatformio.ini
:bblanchon/ArduinoJson @ 6.17.3
Hii inaingiza ArduinoJson, maktaba ya JSON ya Arduino.
Tuma telemetry
Hatua inayofuata ni kuunda hati ya JSON yenye telemetry na kuituma kwa MQTT broker.
Kazi - tuma telemetry
Tuma telemetry kwa MQTT broker.
-
Ongeza msimbo ufuatao chini ya faili ya
config.h
ili kufafanua jina la mada ya telemetry kwa MQTT broker:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
CLIENT_TELEMETRY_TOPIC
ni mada ambayo kifaa kitachapisha viwango vya mwanga. -
Fungua faili ya
main.cpp
-
Ongeza agizo la
#include
lifuatalo juu ya faili:#include <ArduinoJSON.h>
-
Ongeza msimbo ufuatao ndani ya kazi ya
loop
, kabla tu yadelay
: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());
Msimbo huu unasoma kiwango cha mwanga, na kuunda hati ya JSON kwa kutumia ArduinoJson inayojumuisha kiwango hiki. Hati hii kisha inabadilishwa kuwa kamba na kuchapishwa kwenye mada ya telemetry ya MQTT na mteja wa MQTT.
-
Pakia msimbo kwenye Wio Terminal yako, na tumia Serial Monitor kuona viwango vya mwanga vinavyotumwa kwa MQTT broker.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 Unaweza kupata msimbo huu katika folda ya code-telemetry/wio-terminal.
😀 Umefanikiwa kutuma telemetry kutoka kwa kifaa chako.
Kanusho:
Hati hii imetafsiriwa kwa kutumia huduma ya kutafsiri ya AI Co-op Translator. Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuzingatiwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu ya binadamu inapendekezwa. Hatutawajibika kwa kutoelewana au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.