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/1-getting-started/lessons/4-connect-internet/single-board-computer-telem...

74 lines
4.5 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": "1226517aae5f5b6f904434670394c688",
"translation_date": "2025-08-26T23:10:03+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md",
"language_code": "ru"
}
-->
# Управляйте ночником через Интернет - Виртуальное IoT-устройство и Raspberry Pi
В этой части урока вы будете отправлять телеметрию с уровнями освещенности с вашего Raspberry Pi или виртуального IoT-устройства на MQTT-брокер.
## Отправка телеметрии
Следующий шаг — создать JSON-документ с телеметрией и отправить его на MQTT-брокер.
### Задание
Отправьте телеметрию на MQTT-брокер.
1. Откройте проект ночника в VS Code.
1. Если вы используете виртуальное IoT-устройство, убедитесь, что терминал работает в виртуальной среде. Если вы используете Raspberry Pi, виртуальная среда не потребуется.
1. Добавьте следующий импорт в начало файла `app.py`:
```python
import json
```
Библиотека `json` используется для кодирования телеметрии в формате JSON-документа.
1. Добавьте следующий код после объявления `client_name`:
```python
client_telemetry_topic = id + '/telemetry'
```
`client_telemetry_topic` — это MQTT-тема, в которую устройство будет публиковать уровни освещенности.
1. Замените содержимое цикла `while True:` в конце файла следующим:
```python
while True:
light = light_sensor.light
telemetry = json.dumps({'light' : light})
print("Sending telemetry ", telemetry)
mqtt_client.publish(client_telemetry_topic, telemetry)
time.sleep(5)
```
Этот код упаковывает уровень освещенности в JSON-документ и публикует его на MQTT-брокер. Затем он делает паузу, чтобы уменьшить частоту отправки сообщений.
1. Запустите код так же, как вы запускали код из предыдущей части задания. Если вы используете виртуальное IoT-устройство, убедитесь, что приложение CounterFit запущено, а датчик освещенности и светодиод созданы на правильных пинах.
```output
(.venv) ➜ nightlight python app.py
MQTT connected!
Sending telemetry {"light": 0}
Sending telemetry {"light": 0}
```
> 💁 Этот код можно найти в папке [code-telemetry/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-telemetry/virtual-device) или [code-telemetry/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-telemetry/pi).
😀 Вы успешно отправили телеметрию с вашего устройства.
---
**Отказ от ответственности**:
Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, учитывайте, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.