Как подключиться к mqtt брокеру
Установка Mosquitto MQTT брокера на Raspberry Pi для технологии IoT
MQTT – это протокол, который используется для передачи и приема сообщений в сети Интернет. Также он очень популярен в сфере интернета вещей (Internet of Things, IoT). В данной статье мы рассмотрим основные принципы протокола MQTT и будем использовать плату Raspberry Pi в качестве локального MQTT брокера (MQTT broker). С помощью данного брокера и панели инструментов приложения MQTT мы будем управлять светодиодом, подключенным к NodeMCU ESP12E. Также к NodeMCU будет подключен датчик температуры и влажности DHT11, данные с которого мы будем передавать MQTT брокеру, установленному на Raspberry Pi.
Основные принципы работы протокола MQTT
Протокол MQTT (Message Queue Telemetry Transport) был разработан компанией IBM и может применяться для передачи и приема сообщений в сети интернет. Протокол очень простой и «легкий» и может применяться устройствами, имеющими малую полосу пропускания, то есть подключенными к каналу связи с маленькой пропускной способностью. В настоящее время данный протокол широко используется в устройствах интернета вещей (IoT) для передачи и приема данных от различных датчиков. Достоинством данного протокола при его работе в сфере интернета вещей является то, что он требует сравнительно мало интернет трафика для своего функционирования.
В протоколе MQTT используются следующие основные термины:
1. Subscribe (подписка) и Publish (публикование) : подписка означает получение данных от другого устройства, а публикование означает передачу данных другому устройству.
Когда устройство 1 передает данные устройству 2, то устройство 1 называют издателем (Publisher), а устройство 2 – подписчиком (Subscriber).
3. Topic (тема) – это способ указать ваши интересы для входящих или исходящих сообщений. Темы (топики) в протоколе MQTT представляются строками, разделенными знаком прямого слэша. Данные публикуются в соответствующих темах протокола MQTT и затем MQTT устройства подписываются на интересующие их темы чтобы получать данные.
4. MQTT Broker (брокер) – это устройство-координатор ответственно за прием всех сообщений от всех издателей (publishers), фильтрацию этих сообщений и передачу сообщений тем подписчикам (subscribers), которым эти сообщения интересны.
Когда хостингом MQTT брокера является облако (cloud), оно называется MQTT облаком. В современном мире существует уже достаточно много подобных «облачных» MQTT брокеров, таких как Adafruit IO, MQTT.IO, IBM bluemix, Microsoft Azure и т.д.
Но мы можем сконструировать своего собственного MQTT брокера с использованием платы Raspberry Pi. Наш брокер будет локальным, то есть он сможет передавать и принимать сообщения только в нашей локальной сети. Таким образом, в этом проекте мы будем устанавливать Mosquitto MQTT брокера на плату Raspberry Pi чтобы превратить ее в локального MQTT брокера, с помощью которого мы будем управлять светодиодом, подключенным к NodeMCU (устройство управления многосторонней связью). Также мы будем передавать данные температуры и влажности от NodeMCU в панель инструментов MQTT приложения.
Установка Mosquitto MQTT брокера на Raspberry Pi
Откройте окно терминала на вашей плате Raspberry Pi и введите там следующие команды чтобы установить брокер:
Свой собственный облачный MQTT брокер с поддержкой WebSockets, сертификатами LetsEncrypt, мониторингом и визуализацией в Grafana и сохранением данных в Influx. Бесплатно и навсегда
Уровень сложности для продвинутого пользователя ПК: средний. Потребуются навыки работы с командной строкой linux через SSH, возможно понадобится изучение технической документации на английском языке. Хочу предупредить, что эта статья не туториал для начинающих, в котором достаточно скопировать все команды из статьи в консоль и все заработает. То, что мы будем делать, потянет на тестовое задание для начинающего DevOps инженера. Может быть я упустил что-то очевидное для меня и Вам придется немного поработать напильником. Ориентировочное время: от 1 часа до бесконечности, в зависимости от Ваших навыков и желания учиться.
TLDR; Получаем бесплатный VPS сервер, бесплатный домен 2 уровня и запускаем docker контейнеры: portainer, nginx, certbot, RabbitMQ, Grafana, Prometheus, Telegraf, InfluxDB с помощью docker-compose файла, который я заботливо приготовил для Вас.
Для домашней автоматизации часто необходим MQTT брокер, который должен быть доступен из интернета. Поднимать брокер на RaspberryPi и пробрасывать порты во внешний мир через домашний роутер — можно, но это далеко не идеальное решение (еще и валидные сертификаты при этой схеме непросто получить), а вот построить bridge (мост) между домашним брокером и облачным, чтобы иметь доступ и из дома и из любой точки мира и не оказаться в «умершем умном доме» при отсутствии интернета — неплохое решение.
Раньше в качестве облачного бесплатного брокера использовали CloudMQTT.com, но недавно эта компания прекратила регистрацию новых бесплатных инстансов и оставила возможность только платной регистрации.
Чаще всего, в качестве MQTT брокера разворачивают mosquitto — это отличный быстрый брокер, не требующий излишних вычислительных ресурсов. Но есть у него и недостатки — список пользователей и их права доступа необходимо прописывать в текстовых файлах. Я предлагаю Вам пострелять из пушки по воробьям и использовать в качестве MQTT сервера брокер сообщений RabbitMQ, который имеет плагин MQTT в базовой поставке и простой WEB интерфейс для настройки и управления пользователями.
Также мы будем использовать Prometheus плагин для RabbitMQ, для мониторинга состоянии брокера и ресурсов, которые он использует.
RabbitMQ написан на языке erlang, позволяет объединять брокеры в кластер, успешно используется во многих коммерческих проектах.
RabbitMQ имеет и другие замечательные возможности (очереди, например), но описание этих возможностей выходит за рамки данной статьи и я предлагаю Вам самостоятельно их изучить, если будет интересно.
Для полноценного использования MQTT мы настроим автоматическое получение бесплатных SSL(TLS) сертификатов LetsEncrypt, подключение WebSockets (MQTT over WebSockets), настроим WEB сервер nginx, так что сделать еще и собственный сайт — дело пяти дополнительных минут.
Современные DevOps инженеры не представляют свою работу без контейнеров, поэтому и мы будем использовать best practices — развернем весь необходимый софт в контейнерах. Я не фанатичный линуксоид, который признает исключительно командную строку в терминале, поэтому для обычных людей установим Portainer — удобный WEB интерфейс для управления docker контейнерами.
Раз уж мы используем Prometheus для мониторинга брокера, то установим и node-exporter для мониторинга нашего VPS сервера.
Также мы, легким движением руки, реализуем задачу сохранения MQTT сообщений в базе данных InfluxDB, используя для этого Telegraf.
Вишенкой на торте будет визуализация данных в одном из самых популярных современных продуктов — Grafana. Там мы увидим статистику и нашего VPS сервера и статистику RabbitMQ и сами данные, полученные по MQTT. По факту, мы сделаем собственный универсальный dashboard (точнее, можем сделать множество наборов панелей, в зависимости от задач), переплюнув популярные облачные сервисы.
Grafana: мониторинг VPS
Grafana: мониторинг RabbitMQ
Grafana: визуализация MQTT данных
Получаем VPS сервер бесплатно и навсегда
Здесь я не буду останавливаться подробно — Вы сможете без труда найти статьи как это сделать. Мне понравились VPS, которые предоставляет Oracle — они дают две виртуальных машины и у них 1Gb RAM в каждой, а для нашего проекта 512 может не хватить.
Активация аккаунта Oracle для получения бесплатной виртуальной машины требует международную карту Visa/MasterCard типа WORLD с балансом не менее 100 рублей (списанные средства будут возвращены, это необходимо для верификации карты и владельца). Проверить тип Вашей карты можно заранее на любом сервисе по BIN коду (первые 6 цифр карты), в строке Категория карты должно быть WORLD.
Могу сказать, что эта акция на бесплатные VPS действующая, я зарегистрировал такой аккаунт неделю назад (август 2020).
На этапе выбора образа для виртуалки выберите Ubuntu 20.04 или любой другой дистрибутив linux, если обоснованно считаете это необходимым.
На окончании этого шага Вы должны получить доступ по SSH к новой виртуалке и знать ее внешний (публичный) IP адрес (не пугайтесь, с настройками по умолчанию этот адрес не пингуется из интернета). Для новичков могу сообщить, что приватные (частные) IP адреса начинаются на 10. и выглядят, например, так 10.0.0.15 (есть и другие частные подсети, погуглите) Нам нужен не этот адрес, а другой, общедоступный IP-адрес.
Получаем домен второго уровня бесплатно
Если у Вас уже есть собственный домен и DNS, тогда вы должны создать DNS запись типа А и вписать туда общедоступный IP-адрес VPS. После этого можете переходить к следующему пункту.
Если у Вас еще нет собственного домена, то идем на Freenom.com (кредитная карта не понадобится) подбираем свободный домен и регистрируем его. Большинство доменов, даже 4-х буквенные бесплатны, кроме премиальных (по мнению авторов сервиса). Регистрация аккаунта происходит в момент регистрации домена, также пусть вас не смущает кнопка Оформить заказ — да, для регистрации бесплатного домена нужно оформить заказ. Еще не забудьте указать, что регистрируете домен на 12 месяцев (по умолчанию регистрируют только на 3).
Регистрация бесплатного домена
В момент регистрации домена (на большом мониторе, а не на маленьком как у меня на скриншоте) вы можете сразу указать общедоступный IP адрес вашей виртуалки для нового доменного имени. Указать его нужно два раза (обычно для каждого WEB сервера создается две DNS записи: первая только с именем домена и вторая www.+имя домена). Если у Вас нет поля для ввода IP адреса при регистрации, то ничего страшного, Вы сможете это сделать после регистрации.
После регистрации домена и аккаунта на freenom нужно залогиниться и перейти в меню Services — My Domains — напротив Вашего домена нажать Manage Domain, выбрать вкладку Manage Freenom DNS, ввести два раза общедоступный IP-адрес в поле Target и сохранить изменения.
Дальше можете подождать и попить кофе пока обновится кэш DNS.
Успешным результатом этого шага станет возможность подключаться по SSH к Вашей VPS не только по общедоступному IP-адресу, но и по доменному имени.
Платформа ARM и брокер MQTT, как современная основа решений для Интернета вещей
Протокол MQTT, на текущее время, завоевал свою популярность и стал стандартом де факто в проектах, направленных на создание решений для Интернета вещей (IoT). Конечно, Интернет вещей – это определенная абстракция или, правильнее, концепция построения распределенных сетей устройств или машин. При этом, частные задачи взаимодействия машин Machine-to-Machine (M2M), уже сегодня эффективно решаются, включая и уровень подключения этих систем к Интернет, как для создания промышленных систем автоматики, так, например, и для построения систем «умного дома». Очевидно, что для критически важных систем требуется наличие локального арбитра или брокера и устройств, позволяющих отработать решение ситуации не зависимо от качества Интернет-подключения, а также в случае полного разрыва связи.
При этом, в качестве аппаратной платформы для запуска такого брокера MQTT, отлично себя зарекомендовали энергоэффективные, но от этого не менее производительные, микропроцессоры на базе архитектуры ARM. Такая взаимосвязь аппаратной платформы, протоколов обмена сообщениями и их программной реализации стала отправной точкой в стремительном прогрессе развития современных систем автоматизации. Далее рассмотрим подробнее аппаратные решения и программные компоненты для реализации одного из наиболее успешных протоколов обмена сообщениями в технических системах.
ClusterHAT review: Raspberry Pi cluster computer kit. Photo: MagPi magazine
Архитектура микропроцессоров ARM (Advanced RISC Machine) прочно вошла в нашу жизнь. Практически каждый смартфон уже сейчас работает на базе этой архитектуры. Стоит отметить, что понятие RISC-машина на сегодня достаточно размыто, ведь и ее противоположность – современная платформа x86-64, позаимствовала многое из мира RISC-систем. Но речь не об этом, а о том, что она на сегодня стала синонимом или отличительной особенностью производительной и, при этом, энергоэффективной мобильной платформы, а также основой для различных недорогих DIY или «сделай сам» устройств. В этом контексте, конечно, нельзя не упомянуть различные варианты Raspberry Pi, вплоть до решения кластера на базе платы ClusterHAT и т.п. В качестве основной операционной системы для этой платформы отлично себя зарекомендовала Linux. Но и тут, как не вспомнить, например, о такой системе, как Microsoft Windows 10 IoT Core?
Хорошо, когда есть выбор, но не все так просто, как хотелось бы. Microsoft Windows 10 IoT Core – это замечательная операционная система, но она, в первую очередь, предназначена для разработки и запуска программ, например, написанных на языке С# в среде Microsoft Visual Studio. Такой подход универсальным не назовешь. Поэтому, пока классическим выбором для большинства задач остается ARM и Linux, а также Android, как же без него. Отметим, что для быстрого прототипирования кроме плат Raspberry Pi есть и более дешевые Orange Pi компании Xunlong Software или, наоборот, более дорогие ODROID компании Hardkernel, но при этом вполне оправдывающие свою цену. Все зависит от решаемой задачи. А таковой, для текущего проекта, стал запуск сервера/брокера MQTT. При этом, не следует акцентировать внимание на то, что проект посвящен «умному дому» или решениям для робототехники. Это не принципиально, поскольку протокол MQTT – сам по себе является очень универсальным решением.
CPU-351-13. Low Power, Rugged i.MX6 SBC. Photo: Eurotech
Кроме промышленных решений архитектура ARM проникает на рынок серверных решений. Здесь интересен опыт компании Scaleway, которая развертывает и дает в аренду не обычные виртуальные машины, а физические сервера на базе ARMv8. Это решение интересно своей энергоэффективностью, с позиции провайдера, и отсутствием гипервизора или среды виртуализации, как таковой, для пользователя сервиса. Таким образом, становится реальностью отличная среда для запуска Docker-контейнеров. Это напоминает что-то вроде ClusterHAT в промышленных масштабах, а по производительности – отличный выбор для контейнерной виртуализации в облаке. В целом нельзя не согласиться, что это смелое, новаторское бизнес-решение в направлении хостинг услуг, которое уже достаточно продолжительное время существует на рынке. Получается, что если не покупать свой Raspberry Pi или аналог, то всегда можно поэкспериментировать с сервером на базе ARM, взяв его в аренду.
CloudMQTT is a perfect solution for «Internet of Things» messaging
Завершая выбор аппаратной платформы и хвалу архитектуры ARM, можно на этом поставить точку, но следует не забывать, что всегда можно найти альтернативное решение, а это только и подталкивает энтузиастов, гиков, этических хакеров к новым исследованиям и экспериментам с открытыми аппаратными платформами. Итак, у нас стоит задача на базе Linux установить брокер MQTT и немного с ним поэкспериментировать.
Можно было вообще не рассматривать аппаратную платформу, а сразу перейти к работе в облачном сервисе CloudMQTT. Но рассматривается задача на базе трехуровневой структуры Интернета вещей, где на нижнем уровне находятся интеллектуальные датчики и управляющие системы. Середина – это место брокера MQTT, причем он должен быть расположен локально, чтобы проблемы с доступом к Интернет можно было частично решить внутренним оборудованием. А верхний уровень – облако с интерфейсом Node-Red или AWS IoT, Azure IoT Hub и т.п. В такой концепции сложно представить лучшего кандидата на место энергоэффективного и очень бюджетного микро-сервера, что-то отличное от ARM.
Но так устроен мир, нельзя сказать, что все отлично или, наоборот, все плохо. Везде есть свои нюансы. Дело в том, что рассматриваемая трехуровневая система – это не совсем Интернет вещей, скорее, это некий промежуточный вариант пути к такой концепции. Просто IoT без Интернет-соединения не должен существовать, т.е. не зря мы ожидаем появления беспроводных сетей пятого поколения, усовершенствование существующих коммуникаций и т.п. В концепции Интернета вещей нет места для уровня промежуточного слоя, датчики и исполнительные системы должны выходить напрямую в облако, где и будет происходить их взаимодействие.
A Brief, but Practical Introduction to the MQTT Protocol and its Application to IoT. Picture: Zoetrope labs
Протокол MQTT (Message Queuing Telemetry Transport) – это асинхронный протокол передачи телеметрических сообщений по принципу издатель/подписчик с использованием брокера. Этот протокол был разработан IBM и переведен в разряд открытых проектов организации Eclipse Foundation. Особенностью протокола является его компактность, т.к. величина заголовка пакета данных составляет всего лишь несколько байт. Он работает поверх стандартного протокола TCP и, для обеспечения безопасности, предполагает использование механизмов аутентификации на уровне «username/password» и использование шифрования транспортного протокола TLS/SSL. На текущее время, протокол MQTT стал стандартом де-факто для построения решений Интернета вещей.
Поскольку MQTT разработан для использования в среде Интернет-соединения, которое по определению стоит считать не надежным, протокол предусматривает три уровня обеспечения качества сервиса доставки. QoS 0: At most once – «не более одного». Издатель публикует сообщение на брокере, затем брокер публикует его для подписчика. На этом уровне не гарантируется обязательная передача данных подписчику. QoS 1: At least once – «хотя бы один». Подписчик должен получить данное сообщение как минимум один раз. Однако, сообщения могут дублироваться и это должен предусматривать в логике своей работы подписчик. QoS 2: Exactly one – «гарантированно один». Обеспечивает высшую гарантию доставки и отсутствие дублирования сообщений.
Для масштабирования своих решений можно воспользоваться конфигурацией типа «мост» между брокерами, и тем самым снизить нагрузку на каждый брокер в отдельности. Так же протокол MQTT позволяет подписчикам получать данные сразу по нескольким каналам. Для этого применяют wildcard-символы «+» и «#», чтобы отметить либо все записи в определенной подписке, либо только блок сообщений. Например, подписка на несколько разных датчиков температуры: «sensors/+/temperature/+» или сразу подписка на все каналы: «#». Можно еще долго обсуждать особенности протокола, но проще попробовать на реальном примере. В качестве брокера можно выбрать множество решений, но одним из самых популярных и легковесных брокеров является Mosquitto.
Для разворачивания брокера Mosquitto выберем простой вариант одноплатного компьютера, например, одну из первых версий Raspberry Pi Model B 512MB RAM. Данный выбор продиктован буквально тем, что находилось под рукой. Конечно, для реального проекта, следует отдельно изучить вопрос о надежности и производительности платы и, кроме выбора оптимальных аппаратных решений, также следует проработать вопросы: надежности корпуса, качества блока питания, безопасности системы в целом и т.п. Плату Raspberry Pi еще было интересно взять, чтобы окончательно развеять миф о трудностях старта проекта на базе открытых аппаратных решений и операционной системы Linux. Конечно, от разработчика требуются базовые знания, но современные платформы стали исключительно дружественными с точки зрения программного интерфейса и при этом хорошо документированы.
Photo: Raspberry Pi Model B 512MB RAM
В качестве операционной системы можно сделать выбор в сторону официальной прошивки Raspbian Stretch with desktop или Raspbian Stretch Lite. Это две одинаковые операционные системы на базе известного дистрибутива Debian Stretch, который модифицировали для работы с Raspberry Pi. Отличия, только в наличие графического рабочего стола, что для начала ознакомления вполне оправдано, но для сервера, конечно, графическая оболочка не к чему. Для установки выберем все-таки вариант с графическим рабочим столом и все это установим на недорогую флешку 8GB SD card. Фактически, остается загрузить образ операционной системы и при помощи очень удобной кроссплатформенной утилиты Etcher перенести образ на физический накопитель.
Screenshot: Etcher in Windows 10
Теперь остается поместить прошитую флешку в плату Raspberry Pi и подать питание. Есть ода особенность, если потребуется получить удаленный доступ к командной строке Raspbian Stretch по протоколу ssh, при этом нет клавиатуры, физически подключенной к плате, то можно записать пустой файл с именем ssh в загрузочный раздел флешки, что позволит активировать соответствующий доступ. После включения и Raspberry Pi доступ к операционной системе разрешен пользователю «pi» по паролю «raspberry». Пользователь по умолчанию «pi» может получить права root, выполнив команду sudo. Поскольку в Raspbian все подготовлено для комфортной работы неподготовленного пользователя, то первой командой в новой системе может стать вызов меню конфигурирования системы:
Screenshot: Remote connection to Raspberry Pi by SSH and run raspi-config
Утилита raspi-config позволяет задать новый пароль пользователю и, например, в меню «Interfacing Options» можно настроить поведение интерфейсов системы, разрешить удаленный рабочий стол по протоколу VNC и т.п. Так же в меню: «Boot Options» можно установить параметры по умолчанию для загрузки системы, например выбрать только режим командной строки, а в под-меню «Resolution» из меню «Advanced Options» установить нужное разрешение графического экрана, например, выбрав требуемый размер «DMT» – для цифрового интерфейса монитора или «CEA» – аналогового входа и т.п.
Теперь можно обновить пакеты системы:
$ sudo apt-get update
$ sudo apt-get upgrade
И установить брокер Mosquitto и клиента MQTT, например, для тестирования системы:
$ sudo apt-get install mosquitto
$ sudo apt-get sudo mosquitto-clients
Screenshot: Raspberry Pi terminal sessions
Просматривать подписки и делать публикации по протоколу MQTT, а также выполнить тестирование нагрузочной способности брокера, можно в среде браузера Chrome и операционных систем: Linux, Mac, Windows благодаря кроссплатформенному приложению MQTTBox.
Действительно, протокол MQTT сейчас стал настолько распространен, что не найти удобное решение для своих задач просто невозможно. Так же в рамках проекта Eclipse Paho активно развивается разработка открытых программных решений и библиотек, практически на всех языках программирования, для реализации протокола обмена сообщениями MQTT и, тем самым, совершенствования решений для Интернета вещей.
Построение решений на базе брокера MQTT становится уже тривиальной задачей. Стоит лишь развернуть систему, подключиться к облаку, например, используя Node-RED или специализированное решение и остается дело за «малым» — подключить интеллектуальные датчики и исполнительные механизмы. Для рассмотрения нижнего уровня систем IoT следует написать отдельную статью, но для данного примера вполне можно обойтись рассмотрением примера на базе фактического стандарта для Интернета вещей – платы NodeMCU на базе SoC ESP8266 компании Espressif.
Screenshot: MQTTBox in Windows 10
Плата NodeMCU изначально ориентирована на разработку на языке eLua. Для сборки прошивки можно использовать облачный сервис, а сама плата проекта существует виде открытого аппаратного решения NodeMCU DEVKIT V1.0, для которого уже выпущено множество аналогов. При этом следует отметить хорошую документацию проекта. Однако, очень субъективно, но при разработке интеллектуального датчика с протоколом MQTT на базе прошивки с eLua для NodeMCU DEVKIT все же придется встретиться с рядом трудностей с реализацией протокола MQTT. При этом вся инфраструктура проекта выглядит как-то недостаточно подготовленной к использованию в качестве среды для быстрой и качественной разработки микропроцессорных систем. Всегда всплывают какие-то мелочи и нюансы, но еще раз стоит повториться – это очень субъективная оценка. Интересно, а у читателей блога есть успешный опыт с eLua и MQTT?
Совершенно другое дело – выбор среды разработки Arduino IDE для работы с NodeMCU DEVKIT, впрочем, как и с другими платами на базе ESP8266. Все делается практически моментально на базе готовых библиотек и примеров кода. Для начала разработки следует с официального сайта проекта Arduino скачать открытую кроссплатформенную среду разработки Arduino IDE. Затем в параметрах «File» — «Preferences» — «Addition Boards Manager URLs:» указать ссылку на проект Arduino core for ESP8266 WiFi chip: arduino.esp8266.com/stable/package_esp8266com_index.json После этого в «Tools» — «Boards Manager» остается загрузить и установить поддержку для плат ESP8266 Community. Кстати, не следует забывать о том, что для работы с платой NodeMCU потребуется установить драйвер интерфейсного преобразователя CP210x или, его еще называют мост UART к USB.
Photo: Работа с платой NodeMCU
Для работы с протоколом MQTT можно установить библиотеку PubNub Arduino Library. Для этого в меню «Sketch» — «Include Library» — «Manage Libraries» выбрать соответствующую библиотеку и установить. Ознакомиться с возможностями программной платформы можно на базе примера кода, например, Basic ESP8266 MQTT example, где на брокере публикуется канал «outTopic», а также устанавливается подписка на «inTopic», и когда приходит на «inTopic» значение «1», то на плате включается встроенный светодиод. Все просто, быстро и отлично работает из коробки.
Screenshot: Arduino IDE with ESP8266 support
В завершении хочется отметить, что эта публикация не призывает использовать исключительно архитектуру ARM-процессоров для построения систем Интернета вещей и она лишь затронула особенности внедрения MQTT-брокера, как связующего звена для решений в области автоматизации. Но при этом у читателя может сформироваться мнение, что на сегодня решения для IoT – это удел гиков, экспериментаторов и фанатов, например, плат Raspberry Pi. Это верно, на этом и держится прогресс, но будущее уже с нами.
Пример, очевиден: коммерческое решение платформы беспроводных датчиков Wzzard для IoT и шлюза Spectre Network Gateway компании Advantech B+B SmartWorx. Здесь, как и во многих на сегодняшний день внедрений в производственные циклы, предложена архитектура защищенных от внешней среды промышленных датчиков, которые объединяются беспроводной сетью, основанной на стандартах 6LoWPAN и IEEE 802.15.4e. Для обработки данных на уровне облака предлагается шлюз с поддержкой протокола MQTT и передачей данных по коммуникациям беспроводной 3G-сети или проводного 10/100 Ethernet.