3.3 KiB
Kontrolirajte svoju noćnu lampu putem Interneta - Wio Terminal
U ovom dijelu lekcije, slat ćete telemetriju s razinama svjetlosti s vašeg Wio Terminala na MQTT posrednika.
Instalirajte JSON Arduino biblioteke
Popularan način za slanje poruka putem MQTT-a je korištenje JSON-a. Postoji Arduino biblioteka za JSON koja olakšava čitanje i pisanje JSON dokumenata.
Zadatak
Instalirajte Arduino JSON biblioteku.
-
Otvorite projekt noćne lampe u VS Code-u.
-
Dodajte sljedeći redak kao dodatnu stavku u popis
lib_deps
u datoteciplatformio.ini
:bblanchon/ArduinoJson @ 6.17.3
Ovo uvozi ArduinoJson, Arduino biblioteku za JSON.
Objavite telemetriju
Sljedeći korak je kreiranje JSON dokumenta s telemetrijom i slanje istog na MQTT posrednika.
Zadatak - objavite telemetriju
Objavite telemetriju na MQTT posrednika.
-
Dodajte sljedeći kod na dno datoteke
config.h
kako biste definirali naziv teme za telemetriju za MQTT posrednika:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
CLIENT_TELEMETRY_TOPIC
je tema na koju će uređaj objavljivati razine svjetlosti. -
Otvorite datoteku
main.cpp
. -
Dodajte sljedeću
#include
direktivu na vrh datoteke:#include <ArduinoJSON.h>
-
Dodajte sljedeći kod unutar funkcije
loop
, neposredno prijedelay
: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());
Ovaj kod očitava razinu svjetlosti i kreira JSON dokument koristeći ArduinoJson koji sadrži tu razinu. Zatim se taj dokument serijalizira u string i objavljuje na MQTT temi za telemetriju putem MQTT klijenta.
-
Prenesite kod na svoj Wio Terminal i koristite Serijski Monitor kako biste vidjeli razine svjetlosti koje se šalju na MQTT posrednika.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 Ovaj kod možete pronaći u mapi code-telemetry/wio-terminal.
😀 Uspješno ste poslali telemetriju s vašeg uređaja.
Odricanje od odgovornosti:
Ovaj dokument je preveden pomoću AI usluge za prevođenje Co-op Translator. Iako nastojimo osigurati točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za kritične informacije preporučuje se profesionalni prijevod od strane ljudskog prevoditelja. Ne preuzimamo odgovornost za bilo kakve nesporazume ili pogrešne interpretacije koje proizlaze iz korištenja ovog prijevoda.