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/sr/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-28T13:53:42+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md",
"language_code": "sr"
}
-->
# Контролишите своје ноћно светло преко интернета - Виртуелни IoT уређај и Raspberry Pi
IoT уређај треба да буде програмиран да комуницира са *test.mosquitto.org* користећи MQTT за слање телеметријских вредности са очитавањем сензора светлости и примање команди за контролу LED диоде.
У овом делу лекције, повезаћете свој Raspberry Pi или виртуелни IoT уређај са MQTT брокером.
## Инсталирајте MQTT клијент пакет
Да бисте комуницирали са MQTT брокером, потребно је да инсталирате MQTT библиотеку преко pip пакета, било на вашем Raspberry 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>` јединственим ID-јем који ће се користити као име овог клијента уређаја, а касније и за теме које овај уређај објављује и на које се претплаћује. Брокер *test.mosquitto.org* је јавни и користи га много људи, укључујући и друге студенте који раде на овом задатку. Имање јединственог MQTT имена клијента и имена тема осигурава да ваш код неће бити у сукобу са кодом других. Такође ће вам бити потребан овај ID када будете креирали серверски код касније у овом задатку.
> 💁 Можете користити веб-сајт као што је [GUIDGen](https://www.guidgen.com) за генерисање јединственог ID-ја.
`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 брокером и покреће процесни циклус који ради у позадинском thread-у, слушајући поруке на свим претплаћеним темама.
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 брокером.
---
**Одрицање од одговорности**:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.