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/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-28T17:12:21+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md",
"language_code": "uk"
}
-->
# Керуйте нічним освітленням через Інтернет - Віртуальне 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). Хоча ми прагнемо до точності, зверніть увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ мовою оригіналу слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний переклад людиною. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.