Машина c машиной говорит … с помощью библиотеки MQTT

Грэг Дункан

Сегодняшний проект пришел от Паоло Патиерно (Paolo Patierno), помогающего развивать Интернет вещей, мир общающихся машин…

Клиентская библиотека MQTT для межмашинных коммуникаций

M2Mqtt – это MQTT-клиент, доступный на всех платформах .Net (.Net Framework, .Net Compact Framework and .Net Micro Framework), и предназначенный для коммуникаций M2M.

Полную информацию о протоколе MQTT можно найти на официальном сайте https://mqtt.org/.

Транспорт телеметрии MQ ( mqtt . org )

MQTT – это протокол связи «машина-машина» (M2M) Интернета вещей. Он разработан как очень легкий транспорт сообщений типа «опубликовать/подписаться». Протокол полезен для соединений с удаленными местоположениями, где требуется небольшой фрагмент кода или где нормальная сетевая полоса – премия. Например, он используется при общении сенсоров с брокером через спутниковый канал, в случайных коммутируемых соединениях с поставщиками услуг здравоохранения и в широком спектре задач домашней автоматизации и малых устройствах. Также он идеален для мобильных приложений из-за небольшого размера, малого потребления энергии, минимизированных пакетов данных и эффективного распределения информации среди одного или нескольких приемников.

MQTTи . NetMicroFrameworkс платой NetduinoPlus : простая система предупреждения!

С тех пор как я загрузил свой компактный клиент MQTT .Net Framework (Desktop, Compact и Micro) на CodePlex, я никогда не публиковал простого примера, расходуя время для ответов на вопросы.

В этом сообщении мы рассмотрим, как реализовать простую систему предупреждения из двух контроллеров Netduino Plus, подсоединенных к сети. При этом первый контроллер регистрирует движение с помощью датчика PIR (Passive InfraRed – пассивный инфракрасный датчик), а второй получает уведомление о событии (в нашем случае выводит сообщение на консоль Debug). Очевидно, что второй контроллер можно просто заменить на смартфон, через который можно получать уведомления о вторжении в реальном времени.

Что касается брокера, то это просто RSMB (Really Small Message Broker – действительно маленький брокер сообщений) от IBM, который можно использовать бесплатно для некоммерческого применения и скачать отсюда. Его не требуется устанавливать, но в случае Windows есть простой исполняемый файл, который надо запустить, чтобы получить брокер и прослушивание MQTT-порта по умолчанию (1883). В нашем примере, он работает на моем ПК, который выступает, в известной мере, сервером.

В контролере запущено простое приложение, работающее частью детектора:

Класс Pir используется для датчика (см. uPLibrary на CodePlex), генерирующего событие при регистрации движения. С помощью класса MqttClientустанавливается соединениес брокером и публикуется сообщение в теме “alarm” (предупреждение) для отчета о срабатывании датчика.

Следующее приложение получает отчеты:

...

Действуя через MqttClient , оно не делает ничего кроме регистрациитемы «alarm», через которую получает предупреждения посредством сообщения от отправителя через брокера.

По существу, мы разработали простую систему Push-уведомлений, которая несомненно может использоваться через Интернет, возможно, с применением роли Worker Windows Azure в качестве брокера, поскольку не существует брокера, написанного целиком на C#.

Только не создавайте SkyNet, пожалуйста…clip_image002