Построение и использование Mosquitto MQTT на Intel Edison

в 6:47, , рубрики: Intel Edison, IoT, mosquito, mqtt, Блог компании Intel, Разработка для интернета вещей, Сетевые технологии

Построение и использование Mosquitto MQTT на Intel Edison - 1
В этой статье мы рассмотрим использование протокола MQTT для Intel Edison. С его помощью можно получать данные с датчиков и передавать управление на актюаторы.
MQTT — это легковесный протокол, применяемый для общения между устройствами (M2M — machine-to-machine). Он использует модель издатель-подписчик для передачи сообщений поверх протокола TCP/IP. Центральная часть MQTT-протокола это MQTT-сервер или брокер, который имеет доступ к издателю и подписчику. Используя MQTT можно построить сеть датчиков, где они публикуют свои данные в форме сообщений, уникальных для каждого из них. Актюаторы подписываются на сообщения, на которые им необходимо реагировать. MQTT-брокер будет заботиться о перенаправлении сообщений от издателя к подписчику.

Пример

Микроконтроллер A считывает значение выключателя и отправляет его состояние сообщением MQTT-брокеру в форме «switch=on». Где-то в интернете микроконтроллер B подписан на сообщение «switch». Если пользователь нажмет на выключатель, микроконтроллер A передаст сообщение к MQTT-брокеру. Брокер переправит сообщение списку подписчиков. Когда микроконтроллер B получит сообщение, он может проанализировать содержимое, определить состояние переключателя и затем включить или выключить лампу соответственно.

Построение и использование Mosquitto MQTT на Intel Edison - 2

Больше информации по протоколу MQTT можно найти на сайте mqtt.org.

Операционная система Edison Yocto поставляется вместе с небольшим MQTT-брокером, который называется RSMB (Really Small Message broker). К сожалению, нет встроенного MQTT-клиента, чтобы всё это протестировать. В этой статье мы рассмотрим, как построить другого MQTT-брокера — Mosquitto.

Построение Mosquitto для Edison

Предполагается, что читатель уже настроил свою плату Edison и владеет стандартными операциями Linux.
Построить Mosquitto для Intel Edison довольно просто:

1. Загрузите mosquitto c сайта mosquitto.org

$> wget http://mosquitto.org/files/source/mosquitto-1.3.5.tar.gz

2. Распакуйте архив

$> tar xzf mosquitto-1.3.5
$> cd mosquitto-1.3.5

3. Постройте

$> make WITH_SRV=no

4. Проверьте и установите скомпилированный mosquito

# Create user mosquitto
$> add user mosquitto

# Test 
$> cd test/broker
$> make test
$> cd ../../

# Install
$> cp client/mosquitto_pub /usr/bin
$> cp client/mosquitto_sub /usr/bin
$> cp lib/libmosquitto.so.1 /usr/lib
$> cp src/mosquitto /usr/bin

В основной папке mosquitto есть тесты. К сожалению, большинству из них требуется Python3, который не доступен на Edison ОС и поэтому некоторые из поздних тестов не пройдут. Тем не менее, тест в папке test/broker не использует Python3 и покрывает все основные операции MQTT.

Тестирование клиента и сервера для mosquitto

ОС Edison настроена на автоматический запуска брокера rsmb. Он использует стандартный TCP-порт 1883. Сначала мы протестируем клиента mosquitto при помощи стандартного порта. Позднее мы сконфигурируем брокера mosquitto для проверки его работы на другом порту.
Чтобы протестировать клиента, откройте два ssh-соединения с Edison. В первом подключении запустите клиента mosquitto_sub, который подписывается на топик «test» rsmb-брокера, работающего локально на Edison.

Построение и использование Mosquitto MQTT на Intel Edison - 3

Во втором ssh-соединении опубликуйте сообщение «Hello World!» в топике «test» на том же локальном сервере.
Вы должны увидеть сообщение в окне, где запущена программа mosquitto_sub. Заметьте, что клиент mosquitto_sub будет работать постоянно и продолжать принимать новые сообщения от сервера, пока его не остановят.

Построение и использование Mosquitto MQTT на Intel Edison - 4

Верхний тест показывает, что клиенты mosquitto_sub и mosquitto_pub, построенные нами, работают правильно с локальным rsmb MQTT-сервером.
Теперь мы можем запустить подобный тест, использующий брокера mosquitto на другом порту, например, 1993.

Построение и использование Mosquitto MQTT на Intel Edison - 5

Используя команды с параметром –p 1993 для mosquitto_sub и mosquitto_pub протестируйте брокера на порту 1993.

Построение и использование Mosquitto MQTT на Intel Edison - 6

Построение и использование Mosquitto MQTT на Intel Edison - 7

Дополнительно можете посмотреть документацию по Mosquitto.

Автор: Intel

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js