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

5.4 KiB

Керуйте нічним світлом через Інтернет - Віртуальне IoT обладнання та Raspberry Pi

У цій частині уроку ви будете підписуватися на команди, які надсилаються з MQTT брокера на ваш Raspberry Pi або віртуальний IoT пристрій.

Підписка на команди

Наступний крок — підписатися на команди, які надсилаються з MQTT брокера, і реагувати на них.

Завдання

Підпишіться на команди.

  1. Відкрийте проєкт нічного світла у VS Code.

  2. Якщо ви використовуєте віртуальний IoT пристрій, переконайтеся, що термінал працює у віртуальному середовищі. Якщо ви використовуєте Raspberry Pi, віртуальне середовище не потрібне.

  3. Додайте наступний код після визначення client_telemetry_topic:

    server_command_topic = id + '/commands'
    

    server_command_topic — це MQTT-тема, на яку пристрій буде підписуватися для отримання команд для LED.

  4. Додайте наступний код прямо над основним циклом, після рядка mqtt_client.loop_start():

    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, переданого до функції-обробника.

  5. Запустіть код так само, як ви запускали код з попередньої частини завдання. Якщо ви використовуєте віртуальний IoT пристрій, переконайтеся, що додаток CounterFit працює, а датчик світла та LED створені на правильних пинах.

  6. Відрегулюйте рівні освітлення, які виявляє ваш фізичний або віртуальний пристрій. Повідомлення, які отримуються, і команди, які надсилаються, будуть записані в термінал. LED також буде вмикатися та вимикатися залежно від рівня освітлення.

💁 Ви можете знайти цей код у папці code-commands/virtual-device або code-commands/pi.

😀 Ви успішно запрограмували ваш пристрій на реагування на команди від MQTT брокера.


Відмова від відповідальності:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.