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

4.5 KiB

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

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

Публікація телеметрії

Наступний крок — створити JSON-документ із телеметрією та надіслати його до брокера MQTT.

Завдання

Опублікуйте телеметрію до брокера MQTT.

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

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

  3. Додайте наступний імпорт на початок файлу app.py:

    import json
    

    Бібліотека json використовується для кодування телеметрії у форматі JSON-документа.

  4. Додайте наступне після оголошення client_name:

    client_telemetry_topic = id + '/telemetry'
    

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

  5. Замініть вміст циклу while True: у кінці файлу наступним:

    while True:
        light = light_sensor.light
        telemetry = json.dumps({'light' : light})
    
        print("Sending telemetry ", telemetry)
    
        mqtt_client.publish(client_telemetry_topic, telemetry)
    
        time.sleep(5)
    

    Цей код упаковує рівень освітлення у JSON-документ і публікує його до брокера MQTT. Потім він робить паузу, щоб зменшити частоту надсилання повідомлень.

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

    (.venv) ➜  nightlight python app.py 
    MQTT connected!
    Sending telemetry  {"light": 0}
    Sending telemetry  {"light": 0}
    

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

😀 Ви успішно надіслали телеметрію з вашого пристрою.


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