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

93 lines
6.2 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": "90fb93446e03c38f3c0e4009c2471906",
"translation_date": "2025-08-28T10:15:11+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md",
"language_code": "bg"
}
-->
# Контролирайте нощната си лампа през Интернет - Виртуален IoT хардуер и Raspberry Pi
IoT устройството трябва да бъде програмирано да комуникира с *test.mosquitto.org* чрез MQTT, за да изпраща телеметрични стойности с показанията на светлинния сензор и да получава команди за управление на LED.
В тази част от урока ще свържете вашия Raspberry Pi или виртуално IoT устройство към MQTT брокер.
## Инсталирайте MQTT клиентския пакет
За да комуникирате с MQTT брокера, трябва да инсталирате библиотека за MQTT чрез pip пакет, или на вашия Pi, или във виртуалната среда, ако използвате виртуално устройство.
### Задача
Инсталирайте pip пакета
1. Отворете проекта за нощната лампа в VS Code.
1. Ако използвате виртуално IoT устройство, уверете се, че терминалът работи във виртуалната среда. Ако използвате Raspberry Pi, няма да използвате виртуална среда.
1. Изпълнете следната команда, за да инсталирате MQTT pip пакета:
```sh
pip3 install paho-mqtt
```
## Програмирайте устройството
Устройството е готово за програмиране.
### Задача
Напишете кода за устройството.
1. Добавете следния импорт в началото на файла `app.py`:
```python
import paho.mqtt.client as mqtt
```
Библиотеката `paho.mqtt.client` позволява на вашето приложение да комуникира чрез MQTT.
1. Добавете следния код след дефинициите на светлинния сензор и LED:
```python
id = '<ID>'
client_name = id + 'nightlight_client'
```
Заменете `<ID>` с уникален идентификатор, който ще се използва като име на този клиент на устройството, а по-късно и за темите, които устройството публикува и на които се абонира. Брокерът *test.mosquitto.org* е публичен и се използва от много хора, включително други ученици, които работят по това задание. Уникалното име на MQTT клиента и темите гарантират, че вашият код няма да се сблъска с този на другите. Ще ви е необходим този идентификатор и когато създавате сървърния код по-късно в това задание.
> 💁 Можете да използвате уебсайт като [GUIDGen](https://www.guidgen.com), за да генерирате уникален идентификатор.
`client_name` е уникално име за този MQTT клиент на брокера.
1. Добавете следния код под новия код, за да създадете MQTT клиентски обект и да се свържете с MQTT брокера:
```python
mqtt_client = mqtt.Client(client_name)
mqtt_client.connect('test.mosquitto.org')
mqtt_client.loop_start()
print("MQTT connected!")
```
Този код създава клиентския обект, свързва се с публичния MQTT брокер и стартира обработващ цикъл, който работи във фонов поток и слуша за съобщения на всички абонирани теми.
1. Изпълнете кода по същия начин, както изпълнихте кода от предишната част на заданието. Ако използвате виртуално IoT устройство, уверете се, че приложението CounterFit работи и че светлинният сензор и LED са създадени на правилните пинове.
```output
(.venv) ➜ nightlight python app.py
MQTT connected!
Light level: 0
Light level: 0
```
> 💁 Можете да намерите този код в папката [code-mqtt/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/virtual-device) или в папката [code-mqtt/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/pi).
😀 Успешно свързахте вашето устройство към MQTT брокер.
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.