3.3 KiB
Styr din nattlampa över Internet - Wio Terminal
I denna del av lektionen kommer du att skicka telemetri med ljusnivåer från din Wio Terminal till MQTT-brokern.
Installera JSON Arduino-bibliotek
Ett populärt sätt att skicka meddelanden över MQTT är att använda JSON. Det finns ett Arduino-bibliotek för JSON som gör det enklare att läsa och skriva JSON-dokument.
Uppgift
Installera Arduino JSON-biblioteket.
-
Öppna nattlampa-projektet i VS Code.
-
Lägg till följande som en extra rad i listan
lib_deps
i filenplatformio.ini
:bblanchon/ArduinoJson @ 6.17.3
Detta importerar ArduinoJson, ett Arduino JSON-bibliotek.
Publicera telemetri
Nästa steg är att skapa ett JSON-dokument med telemetri och skicka det till MQTT-brokern.
Uppgift - publicera telemetri
Publicera telemetri till MQTT-brokern.
-
Lägg till följande kod längst ner i filen
config.h
för att definiera telemetriämnets namn för MQTT-brokern:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
CLIENT_TELEMETRY_TOPIC
är ämnet som enheten kommer att publicera ljusnivåer till. -
Öppna filen
main.cpp
-
Lägg till följande
#include
-direktiv högst upp i filen:#include <ArduinoJSON.h>
-
Lägg till följande kod inuti funktionen
loop
, precis föredelay
: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());
Denna kod läser ljusnivån och skapar ett JSON-dokument med ArduinoJson som innehåller denna nivå. Detta serialiseras sedan till en sträng och publiceras på telemetri-MQTT-ämnet av MQTT-klienten.
-
Ladda upp koden till din Wio Terminal och använd Serial Monitor för att se ljusnivåerna som skickas till MQTT-brokern.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 Du kan hitta denna kod i mappen code-telemetry/wio-terminal.
😀 Du har framgångsrikt skickat telemetri från din enhet.
Ansvarsfriskrivning:
Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, bör det noteras att automatiska översättningar kan innehålla fel eller inexaktheter. Det ursprungliga dokumentet på dess originalspråk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.