Raspberry Pi:Настройка/Что такое протокол MQTT и как он работает

Материал из Онлайн справочника
Версия от 19:32, 31 марта 2017; Myagkij (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


Что такое протокол MQTT и как он работает[1]

MQTT расшифровывается как «message queue telemetry transport», что можно перевести как «передача телеметрических данных при помощи очереди сообщений». Это удобная и легковесная система публикации/подписки, позволяющая создать клиента, публикующего и получающего сообщения. Она заметно упрощает установление коммуникации между множеством разных устройств.

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

Беглый обзор

Давайте вкратце рассмотрим, что позволяет делать MQTT.

Во-первых, вы можете отправлять команды клиенту (вроде Node-RED), с его помощью управляя различными устройствами:

Во-вторых, вы можете считывать данные с датчиков и публиковать их на клиенте (вроде Node-RED):

Базовые понятия MQTT

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

  • Публикация/подписка
  • Сообщения
  • Топики
  • Брокер

Публикация/подписка

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

Как видно на картинке выше, устройство 1 делает публикацию в топике, а устройство 2 подписано на этот топик. То есть в итоге сообщение, отправленное устройством 1, получает устройство 2.

Сообщения

Сообщения – это информация, обмен которой осуществляется между устройствами. Это могут быть и инструкции, и обычные данные.

Топики

Топики – это то, куда будут сохраняться входящие сообщения и куда будут публиковаться исходящие сообщения. Он представляют собой строки, составные части которых разделены слешами. Слеш – это разделитель между уровнями топика.

Ниже – пример того, как сделать топик для лампы, расположенной в домашнем офисе:


К примеру, если вы при помощи ESP и Raspberry Pi хотите включить лампу, находящуюся в домашнем офисе, вам нужно опубликовать в клиенте (Node-RED) сообщение «ON». Само устройство должно быть подписано на тот же топик – чтобы получить сообщение «ON», а затем включить лампу.

Примечание: Топики чувствительны к смене регистра, из-за чего два топика, показанные на картинке ниже, одинаковыми не будут:

Брокер (посредник)

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

Существует разные программы-брокеры. В частности, в нашем случае наиболее полезен брокер Mosquitto, который можно установить на Raspberry Pi.

См.также

Внешние ссылки