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-comma...

67 lines
5.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": "c527ce85d69b1a3875366ec61cbed8aa",
"translation_date": "2025-08-28T13:52:26+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md",
"language_code": "sr"
}
-->
# Контролишите своје ноћно светло преко интернета - Виртуелни IoT хардвер и Raspberry Pi
У овом делу лекције, претплатићете се на команде које се шаљу са MQTT брокера на ваш Raspberry Pi или виртуелни IoT уређај.
## Претплата на команде
Следећи корак је претплата на команде које се шаљу са MQTT брокера и одговарање на њих.
### Задатак
Претплатите се на команде.
1. Отворите пројекат ноћног светла у VS Code-у.
1. Ако користите виртуелни IoT уређај, уверите се да је терминал покренуо виртуелно окружење. Ако користите Raspberry Pi, нећете користити виртуелно окружење.
1. Додајте следећи код након дефиниција `client_telemetry_topic`:
```python
server_command_topic = id + '/commands'
```
`server_command_topic` је MQTT тема на коју ће се уређај претплатити како би примао команде за LED.
1. Додајте следећи код непосредно изнад главне петље, након линије `mqtt_client.loop_start()`:
```python
def handle_command(client, userdata, message):
payload = json.loads(message.payload.decode())
print("Message received:", payload)
if payload['led_on']:
led.on()
else:
led.off()
mqtt_client.subscribe(server_command_topic)
mqtt_client.on_message = handle_command
```
Овај код дефинише функцију `handle_command`, која чита поруку као JSON документ и тражи вредност својства `led_on`. Ако је постављено на `True`, LED се укључује, у супротном се искључује.
MQTT клијент се претплаћује на тему на којој ће сервер слати поруке и поставља функцију `handle_command` да се позове када се прими порука.
> 💁 Обрађивач `on_message` се позива за све теме на које сте претплаћени. Ако касније напишете код који слуша више тема, можете добити тему на коју је порука послата из објекта `message` који се прослеђује функцији обрађивача.
1. Покрените код на исти начин као што сте покренули код из претходног дела задатка. Ако користите виртуелни IoT уређај, уверите се да је CounterFit апликација покренута и да су сензор светла и LED креирани на одговарајућим пиновима.
1. Подесите нивое светлости које детектује ваш физички или виртуелни уређај. Поруке које се примају и команде које се шаљу биће исписане у терминалу. LED ће се такође укључивати и искључивати у зависности од нивоа светлости.
> 💁 Овај код можете пронаћи у фолдеру [code-commands/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/virtual-device) или у фолдеру [code-commands/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/pi).
😀 Успешно сте програмирали свој уређај да одговара на команде са MQTT брокера.
---
**Одрицање од одговорности**:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.