Подпишитесь и опубликуйте сообщение через mqtt, используя Python

В этой статье я покажу вам, как использовать MQTT для публикации/подписки с использованием кода Python.

1. Настройте свой сервер MQTT



2. Установите клиентскую библиотеку MQTT для Python.

pip install paho-mqtt

2.1. Что такое пахо-mqtt

Этот код предоставляет класс, который позволяет приложениям подключаться к брокеру mqtt для публикации сообщений, подписки на темы и получения опубликованных сообщений. — пахо-мктт

В системе mqtt есть только mqtt-брокер (сервер) и несколько mqtt-клиентов.

Теперь у нас уже есть сервер (Mosquitto), работающий на нашем компьютере, если вы выполнили первый шаг. И теперь нам нужен клиент mqtt для публикации/подписки на сообщения в/из определенной темы. Таким образом, ваша программа Python будет клиентом mqtt.

3. Подпишитесь на тему

Когда клиент подписывается на тему, он в основном говорит брокеру отправлять ему сообщения, которые отправляются брокеру по этой теме. — пахо-мктт

3.1. Код

В большинстве примеров просто приведены некоторые коды, которые могут обрабатывать сообщения только из одной темы, что не так уж и хорошо. Потому что в большинстве случаев мы хотим обрабатывать разные сообщения из разных тем отдельно, например, использовать разные функции.

Таким образом, приведенный ниже код может не только обрабатывать сообщения из разных тем, но и работать бесконечно.

3.2. Некоторые функции необходимо понимать

loop_forever() выше блокирует программу, а также обрабатывает автоматические переподключения. Если вы хотите, чтобы ваша программа работала бесконечно, попробуйте ее.

Да, loop_forever() заставит нашу программу работать вечно, но заблокирует программу! Это означает, что другие коды ниже client.loop_forever никогда не будут выполняться. Так что, если нам нужно отобразить данные на экране, для которого требуется while loop. Это означает, что мы должны обрабатывать данные с сервера mqtt и одновременно отображать их на экране. А теперь нам нужна loop_start() функция.

loop_start() запускает новый поток, который через регулярные промежутки времени вызывает для вас метод loop(). Он автоматически обрабатывает повторные подключения.

4. Опубликовать сообщение

MQTT – это двоичный протокол, в котором элементами управления являются двоичные байты, а не текстовые строки. Названия тем, идентификатор клиента, имена пользователей и пароли кодируются как поток байтов с использованием UTF-8.

И вот оно. Спасибо за чтение.

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.