3.4 KiB
Controlla la tua luce notturna tramite Internet - Wio Terminal
In questa parte della lezione, invierai telemetria con i livelli di luce dal tuo Wio Terminal al broker MQTT.
Installa le librerie JSON per Arduino
Un modo popolare per inviare messaggi tramite MQTT è utilizzare JSON. Esiste una libreria Arduino per JSON che semplifica la lettura e la scrittura di documenti JSON.
Attività
Installa la libreria JSON per Arduino.
-
Apri il progetto della luce notturna in VS Code.
-
Aggiungi la seguente riga aggiuntiva alla lista
lib_deps
nel fileplatformio.ini
:bblanchon/ArduinoJson @ 6.17.3
Questo importa ArduinoJson, una libreria JSON per Arduino.
Pubblica la telemetria
Il passo successivo è creare un documento JSON con la telemetria e inviarlo al broker MQTT.
Attività - pubblica la telemetria
Pubblica la telemetria sul broker MQTT.
-
Aggiungi il seguente codice alla fine del file
config.h
per definire il nome del topic di telemetria per il broker MQTT:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
Il
CLIENT_TELEMETRY_TOPIC
è il topic su cui il dispositivo pubblicherà i livelli di luce. -
Apri il file
main.cpp
. -
Aggiungi la seguente direttiva
#include
all'inizio del file:#include <ArduinoJSON.h>
-
Aggiungi il seguente codice all'interno della funzione
loop
, appena prima deldelay
: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());
Questo codice legge il livello di luce e crea un documento JSON utilizzando ArduinoJson che contiene questo livello. Successivamente, viene serializzato in una stringa e pubblicato sul topic MQTT di telemetria dal client MQTT.
-
Carica il codice sul tuo Wio Terminal e utilizza il Serial Monitor per vedere i livelli di luce inviati al broker MQTT.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 Puoi trovare questo codice nella cartella code-telemetry/wio-terminal.
😀 Hai inviato con successo la telemetria dal tuo dispositivo.
Disclaimer:
Questo documento è stato tradotto utilizzando il servizio di traduzione automatica Co-op Translator. Sebbene ci impegniamo per garantire l'accuratezza, si prega di notare che le traduzioni automatiche potrebbero contenere errori o imprecisioni. Il documento originale nella sua lingua nativa dovrebbe essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un traduttore umano. Non siamo responsabili per eventuali incomprensioni o interpretazioni errate derivanti dall'uso di questa traduzione.