|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "df28cd649cd892bcce034e064913b2f3",
|
|
|
"translation_date": "2025-08-26T22:18:27+00:00",
|
|
|
"source_file": "2-farm/lessons/1-predict-plant-growth/wio-terminal-temp-publish.md",
|
|
|
"language_code": "ru"
|
|
|
}
|
|
|
-->
|
|
|
# Публикация температуры - Wio Terminal
|
|
|
|
|
|
В этой части урока вы будете публиковать значения температуры, зафиксированные Wio Terminal, через MQTT, чтобы их можно было использовать позже для расчета GDD.
|
|
|
|
|
|
## Публикация температуры
|
|
|
|
|
|
После того как температура была считана, ее можно опубликовать через MQTT в некоторый "серверный" код, который будет считывать значения и сохранять их для последующего использования в расчете GDD. Микроконтроллеры не получают время из Интернета и не отслеживают его с помощью встроенных часов реального времени по умолчанию, устройство должно быть запрограммировано для этого, если у него есть необходимое оборудование.
|
|
|
|
|
|
Чтобы упростить задачу в рамках этого урока, время не будет отправляться вместе с данными датчика. Вместо этого оно может быть добавлено серверным кодом позже, когда сообщения будут получены.
|
|
|
|
|
|
### Задание
|
|
|
|
|
|
Запрограммируйте устройство для публикации данных о температуре.
|
|
|
|
|
|
1. Откройте проект `temperature-sensor` для Wio Terminal.
|
|
|
|
|
|
1. Повторите шаги, которые вы выполняли в уроке 4, чтобы подключиться к MQTT и отправить телеметрию. Вы будете использовать тот же публичный брокер Mosquitto.
|
|
|
|
|
|
Шаги для этого следующие:
|
|
|
|
|
|
- Добавьте библиотеки Seeed WiFi и MQTT в файл `.ini`
|
|
|
- Добавьте файл конфигурации и код для подключения к WiFi
|
|
|
- Добавьте код для подключения к MQTT-брокеру
|
|
|
- Добавьте код для публикации телеметрии
|
|
|
|
|
|
> ⚠️ Обратитесь к [инструкциям по подключению к MQTT](../../../1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md) и [инструкциям по отправке телеметрии](../../../1-getting-started/lessons/4-connect-internet/wio-terminal-telemetry.md) из урока 4, если это необходимо.
|
|
|
|
|
|
1. Убедитесь, что `CLIENT_NAME` в заголовочном файле `config.h` соответствует этому проекту:
|
|
|
|
|
|
```cpp
|
|
|
const string CLIENT_NAME = ID + "temperature_sensor_client";
|
|
|
```
|
|
|
|
|
|
1. Для телеметрии вместо отправки значения освещенности отправьте значение температуры, считанное с датчика DHT, в свойстве JSON-документа под названием `temperature`, изменив функцию `loop` в `main.cpp`:
|
|
|
|
|
|
```cpp
|
|
|
float temp_hum_val[2] = {0};
|
|
|
dht.readTempAndHumidity(temp_hum_val);
|
|
|
|
|
|
DynamicJsonDocument doc(1024);
|
|
|
doc["temperature"] = temp_hum_val[1];
|
|
|
```
|
|
|
|
|
|
1. Значение температуры не нужно считывать слишком часто — оно не будет сильно меняться за короткий промежуток времени, поэтому установите `delay` в функции `loop` на 10 минут:
|
|
|
|
|
|
```cpp
|
|
|
delay(10 * 60 * 1000);
|
|
|
```
|
|
|
|
|
|
> 💁 Функция `delay` принимает время в миллисекундах, поэтому для удобства чтения значение передается как результат вычисления. 1 000 мс в секунде, 60 секунд в минуте, поэтому 10 x (60 секунд в минуте) x (1 000 мс в секунде) дает задержку в 10 минут.
|
|
|
|
|
|
1. Загрузите это на ваш Wio Terminal и используйте монитор порта, чтобы увидеть, как температура отправляется в MQTT-брокер.
|
|
|
|
|
|
```output
|
|
|
--- 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](../../../../../2-farm/lessons/1-predict-plant-growth/code-publish-temperature/wio-terminal).
|
|
|
|
|
|
😀 Вы успешно опубликовали температуру в качестве телеметрии с вашего устройства.
|
|
|
|
|
|
---
|
|
|
|
|
|
**Отказ от ответственности**:
|
|
|
Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода. |