You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/ru/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp-publish.md

6.6 KiB

Публикация температуры - Wio Terminal

В этой части урока вы будете публиковать значения температуры, зафиксированные Wio Terminal, через MQTT, чтобы их можно было использовать позже для расчета GDD.

Публикация температуры

После того как температура была считана, ее можно опубликовать через MQTT в некоторый "серверный" код, который будет считывать значения и сохранять их для последующего использования в расчете GDD. Микроконтроллеры не получают время из Интернета и не отслеживают его с помощью встроенных часов реального времени по умолчанию, устройство должно быть запрограммировано для этого, если у него есть необходимое оборудование.

Чтобы упростить задачу в рамках этого урока, время не будет отправляться вместе с данными датчика. Вместо этого оно может быть добавлено серверным кодом позже, когда сообщения будут получены.

Задание

Запрограммируйте устройство для публикации данных о температуре.

  1. Откройте проект temperature-sensor для Wio Terminal.

  2. Повторите шаги, которые вы выполняли в уроке 4, чтобы подключиться к MQTT и отправить телеметрию. Вы будете использовать тот же публичный брокер Mosquitto.

    Шаги для этого следующие:

    • Добавьте библиотеки Seeed WiFi и MQTT в файл .ini
    • Добавьте файл конфигурации и код для подключения к WiFi
    • Добавьте код для подключения к MQTT-брокеру
    • Добавьте код для публикации телеметрии

    ⚠️ Обратитесь к инструкциям по подключению к MQTT и инструкциям по отправке телеметрии из урока 4, если это необходимо.

  3. Убедитесь, что CLIENT_NAME в заголовочном файле config.h соответствует этому проекту:

    const string CLIENT_NAME = ID + "temperature_sensor_client";
    
  4. Для телеметрии вместо отправки значения освещенности отправьте значение температуры, считанное с датчика DHT, в свойстве JSON-документа под названием temperature, изменив функцию loop в main.cpp:

    float temp_hum_val[2] = {0};
    dht.readTempAndHumidity(temp_hum_val);
    
    DynamicJsonDocument doc(1024);
    doc["temperature"] = temp_hum_val[1];
    
  5. Значение температуры не нужно считывать слишком часто — оно не будет сильно меняться за короткий промежуток времени, поэтому установите delay в функции loop на 10 минут:

    delay(10 * 60 * 1000);
    

    💁 Функция delay принимает время в миллисекундах, поэтому для удобства чтения значение передается как результат вычисления. 1 000 мс в секунде, 60 секунд в минуте, поэтому 10 x (60 секунд в минуте) x (1 000 мс в секунде) дает задержку в 10 минут.

  6. Загрузите это на ваш Wio Terminal и используйте монитор порта, чтобы увидеть, как температура отправляется в MQTT-брокер.

    --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time
    --- More details at http://bit.ly/pio-monitor-filters
    --- Miniterm on /dev/cu.usbmodem1201  9600,8,N,1 ---
    --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
    Connecting to WiFi..
    Connected!
    Attempting MQTT connection...connected
    Sending telemetry {"temperature":25}
    Sending telemetry {"temperature":25}
    

💁 Этот код можно найти в папке code-publish-temperature/wio-terminal.

😀 Вы успешно опубликовали температуру в качестве телеметрии с вашего устройства.


Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода.