4.7 KiB
Управляйте ночником через Интернет - Wio Terminal
В этой части урока вы будете отправлять телеметрию с уровнями освещенности с вашего Wio Terminal на MQTT-брокер.
Установите библиотеки JSON для Arduino
Популярный способ отправки сообщений через MQTT — использование JSON. Существует библиотека Arduino для JSON, которая упрощает чтение и запись JSON-документов.
Задание
Установите библиотеку Arduino JSON.
-
Откройте проект ночника в VS Code.
-
Добавьте следующую строку в список
lib_deps
в файлеplatformio.ini
:bblanchon/ArduinoJson @ 6.17.3
Это подключает ArduinoJson, библиотеку JSON для Arduino.
Публикация телеметрии
Следующий шаг — создать JSON-документ с телеметрией и отправить его на MQTT-брокер.
Задание - публикация телеметрии
Опубликуйте телеметрию на MQTT-брокере.
-
Добавьте следующий код в конец файла
config.h
, чтобы определить имя темы телеметрии для MQTT-брокера:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
CLIENT_TELEMETRY_TOPIC
— это тема, в которую устройство будет публиковать данные об уровнях освещенности. -
Откройте файл
main.cpp
. -
Добавьте следующую директиву
#include
в начало файла:#include <ArduinoJSON.h>
-
Добавьте следующий код в функцию
loop
, прямо передdelay
: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());
Этот код считывает уровень освещенности, создает JSON-документ с использованием ArduinoJson, содержащий этот уровень. Затем он сериализуется в строку и публикуется в теме телеметрии MQTT с помощью клиента MQTT.
-
Загрузите код на ваш Wio Terminal и используйте Serial Monitor, чтобы увидеть, как уровни освещенности отправляются на MQTT-брокер.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 Вы можете найти этот код в папке code-telemetry/wio-terminal.
😀 Вы успешно отправили телеметрию с вашего устройства.
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода.