Эта статья представляет собой введение в протокол MQTT. MQTT расшифровывается как Message Queuing Telemetry Transport , простой протокол обмена сообщениями, подходящий для связи между устройствами IoT .
Обновлено 16 декабря 2021 г.
Что такое MQTT?
MQTT означает телеметрическую передачу очереди сообщений . MQTT — это простой протокол обмена сообщениями, разработанный для ограниченных устройств с низкой пропускной способностью. Таким образом, это идеальное решение для обмена данными между несколькими устройствами Интернета вещей.
Связь MQTT работает как система публикации и подписки . Устройства публикуют сообщения по определенной теме. Все устройства, подписанные на эту тему, получат сообщение.
Его основные приложения включают отправку сообщений для управления выходами, чтение и публикацию данных с узлов датчиков и многое другое.
Основные понятия MQTT
В MQTT есть несколько основных понятий, которые вам необходимо понять:
MQTT – публикация/подписка
Первая концепция — это система публикации и подписки . В системе публикации и подписки устройство может публиковать сообщения по определенной теме или может быть подписано на определенную тему для получения сообщений.
- Например, Устройство 1 публикует информацию по теме.
- Устройство 2 подписано на ту же тему, в которой публикуется устройство 1 .
- Итак, устройство 2 получает сообщение.
MQTT — Сообщения
Сообщения — это информация, которой вы хотите обмениваться между вашими устройствами. Это может быть сообщение, например команда, или данные, например, показания датчиков.
MQTT — Темы
Еще одним важным понятием являются темы . Темы – это способ регистрации интереса к входящим сообщениям или указания места публикации сообщения.
Темы представлены строками, разделенными косой чертой. Каждая косая черта указывает уровень темы. Вот пример того, как можно создать тему для лампы в домашнем офисе:
- Устройство публикует сообщения «включено» и «выключено» по теме «дом/офис/лампа» .
- У вас есть устройство, управляющее лампой (это может быть ESP32, ESP8266 или любая другая плата или устройство). ESP32, который управляет вашей лампой, подписан на ту же тему: дом/офис/лампа .
- Таким образом, когда по этой теме публикуется новое сообщение, ESP32 получает сообщения «включено» или «выключено» и включает или выключает лампу.
Устройством, публикующим сообщения, может быть ESP32, ESP8266 или платформа контроллера домашней автоматизации с поддержкой MQTT, например Node-RED, Home Assistant, Domoticz или OpenHAB.
MQTT — Брокер
Наконец, еще одно важное понятие — брокер .
Брокер MQTT отвечает за получение всех сообщений, их фильтрацию , принятие решения о том , кто в них заинтересован, а затем публикацию сообщения всем подписанным клиентам.
Установка брокера Mosquitto на Raspberry Pi в вашей локальной сети позволяет вам обмениваться данными между вашими устройствами IoT, которые также подключены к той же сети.
Чтобы установить брокер Mosquitto на Raspberry Pi, следуйте нашему руководству:
Вы также можете запустить брокер Mosquitto MQTT в облаке. Запуск MQTT Mosquitto Broker в облаке позволяет подключать несколько устройств IoT из любого места, используя разные сети, если у них есть подключение к Интернету. Ознакомьтесь с руководством ниже:
Как использовать MQTT в проектах домашней автоматизации и Интернета вещей
MQTT отлично подходит для проектов домашней автоматизации и Интернета вещей. Вот пример того, как его можно использовать в системе домашней автоматизации , созданной с использованием недорогих плат для разработки, таких как Raspberry Pi, ESP32, ESP8266 и Arduino.
- На Raspberry Pi работает брокер Mosquitto, который необходим для протокола MQTT.
- На том же Raspberry Pi работает Node-RED, платформа домашней автоматизации с поддержкой MQTT. Это означает, что он может подписываться на темы для получения сообщений от других устройств IoT и публиковать сообщения в определенных темах для отправки сообщений на другие устройства.
- Node-RED также позволяет создавать пользовательский интерфейс с кнопками для управления выходными данными и диаграммами для отображения показаний датчиков.
- Arduino, ESP32 и ESP8266 могут выступать в качестве клиентов MQTT, которые публикуют темы и подписываются на них.
- Эти платы подключены к исполнительным механизмам, таким как светодиоды или реле, а также к датчикам, таким как температура, влажность, датчики дыма и т. д.
- Эти кабаны могут публиковать данные о состоянии датчика по конкретной теме, на которую тоже подписан Node-RED. Таким образом, Node-RED получает показания датчиков и может отображать их в пользовательском интерфейсе.
- С другой стороны, Node-RED может публиковать данные по определенной теме для управления выходными данными при использовании кнопок интерфейса. Другие платы также подписаны на эту тему и соответственно управляют выходами.
На следующем изображении показан пример пользовательского интерфейса Node-RED, который позволяет управлять одним выходом и отображает показания температуры и влажности:
Вот краткое описание шагов, которые необходимо выполнить, чтобы создать что-то, как описано ранее:
- Настройте Raspberry Pi. Следуйте нашему руководству по началу работы с Raspberry Pi .
- Включите и подключите Raspberry Pi с помощью SSH .
- Вам необходимо установить Node-RED на ваш Pi и Node-RED Dashboard .
- Установите брокер Mosquitto на Raspberry Pi .
- Добавьте ESP8266 или ESP32 в эту систему. Вы можете следовать следующим руководствам по MQTT:
Подведение итогов
MQTT — это протокол связи, основанный на системе публикации и подписки. Устройства могут подписываться на тему или публиковать данные по теме. Устройства получают сообщения, опубликованные в темах, на которые они подписаны.
MQTT прост в использовании и отлично подходит для проектов Интернета вещей и домашней автоматизации. Вы можете просмотреть все наши руководства, связанные с MQTT, здесь .