3.4 KiB
Controle a sua luz noturna pela Internet - Wio Terminal
Nesta parte da lição, irá enviar telemetria com os níveis de luz do seu Wio Terminal para o broker MQTT.
Instalar as bibliotecas JSON para Arduino
Uma forma popular de enviar mensagens através do MQTT é utilizando JSON. Existe uma biblioteca Arduino para JSON que facilita a leitura e escrita de documentos JSON.
Tarefa
Instale a biblioteca Arduino JSON.
-
Abra o projeto da luz noturna no VS Code.
-
Adicione a seguinte linha adicional à lista
lib_deps
no ficheiroplatformio.ini
:bblanchon/ArduinoJson @ 6.17.3
Isto importa a ArduinoJson, uma biblioteca JSON para Arduino.
Publicar telemetria
O próximo passo é criar um documento JSON com a telemetria e enviá-lo para o broker MQTT.
Tarefa - publicar telemetria
Publique telemetria no broker MQTT.
-
Adicione o seguinte código ao final do ficheiro
config.h
para definir o nome do tópico de telemetria para o broker MQTT:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
O
CLIENT_TELEMETRY_TOPIC
é o tópico onde o dispositivo irá publicar os níveis de luz. -
Abra o ficheiro
main.cpp
. -
Adicione a seguinte diretiva
#include
ao início do ficheiro:#include <ArduinoJSON.h>
-
Adicione o seguinte código dentro da função
loop
, mesmo antes dodelay
: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());
Este código lê o nível de luz e cria um documento JSON utilizando a ArduinoJson com este nível. Depois, este é serializado para uma string e publicado no tópico de telemetria MQTT pelo cliente MQTT.
-
Carregue o código para o seu Wio Terminal e utilize o Monitor Serial para ver os níveis de luz a serem enviados para o broker MQTT.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 Pode encontrar este código na pasta code-telemetry/wio-terminal.
😀 Conseguiu enviar telemetria com sucesso a partir do seu dispositivo.
Aviso Legal:
Este documento foi traduzido utilizando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos para garantir a precisão, tenha em atenção que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autoritária. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes da utilização desta tradução.