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/single-board-computer-temp-...

71 lines
5.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "4efc74299e19f5d08f2f3f34451a11ba",
"translation_date": "2025-08-26T22:15:51+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-publish.md",
"language_code": "ru"
}
-->
# Публикация температуры - Виртуальное IoT-устройство и Raspberry Pi
В этой части урока вы будете публиковать значения температуры, обнаруженные Raspberry Pi или виртуальным IoT-устройством через MQTT, чтобы их можно было использовать позже для расчета GDD.
## Публикация температуры
После того как температура была считана, ее можно опубликовать через MQTT в некоторый "серверный" код, который будет считывать значения и сохранять их для последующего использования в расчете GDD.
### Задача - публикация температуры
Программируйте устройство для публикации данных о температуре.
1. Откройте проект приложения `temperature-sensor`, если он еще не открыт.
1. Повторите шаги, которые вы выполняли в уроке 4, чтобы подключиться к MQTT и отправить телеметрию. Вы будете использовать тот же публичный брокер Mosquitto.
Шаги для этого:
- Добавьте пакет pip для MQTT
- Добавьте код для подключения к брокеру MQTT
- Добавьте код для публикации телеметрии
> ⚠️ Обратитесь к [инструкциям по подключению к MQTT](../../../1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md) и [инструкциям по отправке телеметрии](../../../1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md) из урока 4, если потребуется.
1. Убедитесь, что `client_name` отражает название этого проекта:
```python
client_name = id + 'temperature_sensor_client'
```
1. Для телеметрии вместо отправки значения освещенности отправьте значение температуры, считанное с датчика DHT, в свойстве JSON-документа под названием `temperature`:
```python
_, temp = sensor.read()
telemetry = json.dumps({'temperature' : temp})
```
1. Значение температуры не нужно считывать слишком часто — оно не будет сильно меняться за короткий промежуток времени, поэтому установите `time.sleep` на 10 минут:
```cpp
time.sleep(10 * 60);
```
> 💁 Функция `sleep` принимает время в секундах, поэтому для удобства чтения значение передается как результат вычисления. 60 секунд в минуте, поэтому 10 x (60 секунд в минуте) дает задержку в 10 минут.
1. Запустите код так же, как вы запускали код из предыдущей части задания. Если вы используете виртуальное IoT-устройство, убедитесь, что приложение CounterFit запущено, а датчики влажности и температуры созданы на правильных пинах.
```output
pi@raspberrypi:~/temperature-sensor $ python3 app.py
MQTT connected!
Sending telemetry {"temperature": 25}
Sending telemetry {"temperature": 25}
```
> 💁 Вы можете найти этот код в папке [code-publish-temperature/virtual-device](../../../../../2-farm/lessons/1-predict-plant-growth/code-publish-temperature/virtual-device) или в папке [code-publish-temperature/pi](../../../../../2-farm/lessons/1-predict-plant-growth/code-publish-temperature/pi).
😀 Вы успешно опубликовали температуру как телеметрию с вашего устройства.
---
**Отказ от ответственности**:
Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода.