3.6 KiB
Vezéreld az éjszakai fényedet az interneten keresztül - Wio Terminal
Ebben a leckében a Wio Terminal fényerősségi adatait fogod elküldeni az MQTT brokerhez.
Telepítsd a JSON Arduino könyvtárakat
Az MQTT-n keresztüli üzenetküldés egyik népszerű módja a JSON használata. Van egy Arduino könyvtár a JSON-hoz, amely megkönnyíti a JSON dokumentumok olvasását és írását.
Feladat
Telepítsd az Arduino JSON könyvtárat.
-
Nyisd meg a nightlight projektet a VS Code-ban.
-
Add hozzá a következő sort a
lib_deps
listához aplatformio.ini
fájlban:bblanchon/ArduinoJson @ 6.17.3
Ez importálja az ArduinoJson könyvtárat, amely egy Arduino JSON könyvtár.
Telemetria küldése
A következő lépés egy JSON dokumentum létrehozása a telemetria adatokkal, majd ezek elküldése az MQTT brokerhez.
Feladat - telemetria küldése
Küldj telemetria adatokat az MQTT brokerhez.
-
Add hozzá a következő kódot a
config.h
fájl aljára, hogy meghatározd a telemetria témájának nevét az MQTT broker számára:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
A
CLIENT_TELEMETRY_TOPIC
az a téma, amelyre az eszköz a fényerősségi adatokat fogja küldeni. -
Nyisd meg a
main.cpp
fájlt. -
Add hozzá a következő
#include
direktívát a fájl tetejére:#include <ArduinoJSON.h>
-
Add hozzá a következő kódot a
loop
függvénybe, közvetlenül adelay
előtt: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());
Ez a kód beolvassa a fényerősséget, és létrehoz egy JSON dokumentumot az ArduinoJson segítségével, amely tartalmazza ezt az értéket. Ezután a dokumentumot sztringgé alakítja, és elküldi az MQTT kliens által a telemetria MQTT témára.
-
Töltsd fel a kódot a Wio Terminal eszközödre, és használd a Serial Monitor-t, hogy lásd, hogyan küldi el az eszköz a fényerősségi adatokat az MQTT brokerhez.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 Ezt a kódot megtalálod a code-telemetry/wio-terminal mappában.
😀 Sikeresen elküldted a telemetria adatokat az eszközödről.
Felelősség kizárása:
Ez a dokumentum az AI fordítási szolgáltatás, a Co-op Translator segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.