Как отправить данные из словаря через брокера mqtt

В основном у меня есть два Raspberry Pi, и я хочу, чтобы один публиковал данные, полученные из словаря, в файле Python, а другой подписывался на эти словарные данные. Извиняюсь, если это очень мягкий вопрос, но я не могу найти в интернете никакой информации по этому поводу.

2 ответа

Я бы порекомендовал вам прочитать базовый учебник по MQTT, если вы этого еще не сделали. Это поможет вам решить, какими должны быть ваши темы и данные.

Чтобы начать, вот пример того, как вы можете опубликовать и подписаться на ваш вариант использования. Издатель может перебирать ключи в словаре и публиковать данные в теме "keys/$key_name", причем сообщением является значение этого ключа в словаре.

Подписчик может подписаться на тему "keys/#". Таким образом, подписчик получит все ключи и соответствующие данные и восстановит словарь.

Существует много других способов публикации данных в зависимости от характера данных в вашем словаре.

Если вы хотите отправить словарь напрямую из сценария python на узле A в сценарий python на узле B, есть способ.

  1. Преобразуйте свой словарь в строку.
  2. Отправьте строку в качестве полезной нагрузки от хоста A к брокеру.
  3. Подпишитесь на брокера с Host B и получите полезную нагрузку.
  4. Оцените строку с помощью ast.literal_eval(), которая преобразует ее обратно в словарь.

Если это объяснение неясно, я мог бы опубликовать пример кода.

Я бы, вероятно, использовал вместо этого JSON или несколько тем, но описанная выше процедура будет работать.

Другие вопросы по тегам