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-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 брокер.


Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да било недоразумения или погрешни интерпретации, произтичащи от използването на този превод.