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/ru/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. Хотя мы стремимся к точности, пожалуйста, учитывайте, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.