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/uk/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp-publish.md

6.4 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 (1000 мс у секунді) дає затримку в 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. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.