3.5 KiB
Controlează lumina de noapte prin Internet - Wio Terminal
În această parte a lecției, vei trimite telemetrie cu nivelurile de lumină de la Wio Terminal către brokerul MQTT.
Instalează bibliotecile JSON pentru Arduino
O metodă populară de a trimite mesaje prin MQTT este utilizarea JSON. Există o bibliotecă Arduino pentru JSON care face mai ușoară citirea și scrierea documentelor JSON.
Sarcină
Instalează biblioteca Arduino JSON.
-
Deschide proiectul pentru lumina de noapte în VS Code.
-
Adaugă următoarea linie suplimentară în lista
lib_deps
din fișierulplatformio.ini
:bblanchon/ArduinoJson @ 6.17.3
Aceasta importă ArduinoJson, o bibliotecă JSON pentru Arduino.
Publică telemetria
Următorul pas este să creezi un document JSON cu telemetria și să-l trimiți către brokerul MQTT.
Sarcină - publică telemetria
Publică telemetria către brokerul MQTT.
-
Adaugă următorul cod la sfârșitul fișierului
config.h
pentru a defini numele subiectului de telemetrie pentru brokerul MQTT:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
CLIENT_TELEMETRY_TOPIC
este subiectul pe care dispozitivul va publica nivelurile de lumină. -
Deschide fișierul
main.cpp
. -
Adaugă următoarea directivă
#include
în partea de sus a fișierului:#include <ArduinoJSON.h>
-
Adaugă următorul cod în interiorul funcției
loop
, chiar înainte dedelay
: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());
Acest cod citește nivelul de lumină și creează un document JSON folosind ArduinoJson care conține acest nivel. Documentul este apoi serializat într-un șir și publicat pe subiectul de telemetrie MQTT de către clientul MQTT.
-
Încarcă codul pe Wio Terminal și folosește Serial Monitor pentru a vedea nivelurile de lumină trimise către brokerul MQTT.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 Poți găsi acest cod în folderul code-telemetry/wio-terminal.
😀 Ai trimis cu succes telemetria de pe dispozitivul tău.
Declinarea responsabilității:
Acest document a fost tradus folosind serviciul de traducere AI Co-op Translator. Deși depunem eforturi pentru a asigura acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.