3.3 KiB
Ovládejte svůj noční světelný zdroj přes internet - Wio Terminal
V této části lekce budete odesílat telemetrii s úrovněmi světla z vašeho Wio Terminalu na MQTT broker.
Instalace knihoven JSON pro Arduino
Oblíbeným způsobem odesílání zpráv přes MQTT je použití JSON. Existuje knihovna pro Arduino, která usnadňuje čtení a zápis JSON dokumentů.
Úkol
Nainstalujte knihovnu Arduino JSON.
-
Otevřete projekt nočního světla ve VS Code.
-
Přidejte následující jako další řádek do seznamu
lib_deps
v souboruplatformio.ini
:bblanchon/ArduinoJson @ 6.17.3
Tímto importujete ArduinoJson, knihovnu JSON pro Arduino.
Publikování telemetrie
Dalším krokem je vytvoření JSON dokumentu s telemetrií a jeho odeslání na MQTT broker.
Úkol - publikování telemetrie
Publikujte telemetrii na MQTT broker.
-
Přidejte následující kód na konec souboru
config.h
, abyste definovali název tématu telemetrie pro MQTT broker:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
CLIENT_TELEMETRY_TOPIC
je téma, na které zařízení bude publikovat úrovně světla. -
Otevřete soubor
main.cpp
. -
Přidejte následující direktivu
#include
na začátek souboru:#include <ArduinoJSON.h>
-
Přidejte následující kód do funkce
loop
, těsně předdelay
: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());
Tento kód čte úroveň světla, vytvoří JSON dokument pomocí ArduinoJson obsahující tuto úroveň. Poté je serializován do řetězce a publikován na telemetrické MQTT téma pomocí MQTT klienta.
-
Nahrajte kód do svého Wio Terminalu a použijte Serial Monitor k zobrazení úrovní světla odesílaných na MQTT broker.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 Tento kód najdete ve složce code-telemetry/wio-terminal.
😀 Úspěšně jste odeslali telemetrii ze svého zařízení.
Prohlášení:
Tento dokument byl přeložen pomocí služby pro automatický překlad Co-op Translator. Ačkoli se snažíme o přesnost, mějte na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.