Обработка данных MQTT с помощью Node-RED
Node-RED — это инструмент программирования для объединения аппаратных устройств, API и онлайн-сервисов новыми и интересными способами.
Он предоставляет редактор на основе браузера, который позволяет легко связывать потоки, используя широкий спектр узлов в палитре, которые можно развернуть в среде выполнения одним щелчком мыши.
Помимо некоторых основных узлов приложений сетевых служб, таких как HTTP и WebSocket, Node-RED обеспечивает поддержку доступа к MQTT протокол. В настоящее время он предоставляет узел подписки MQTT и узел выпуска. Узел подписки используется для ввода данных, а узел выпуска может использоваться для вывода данных.
В этой статье будет представлен полный рабочий процесс для доступа к серверу MQTT с использованием Node-RED, фильтрации и обработки данных MQTT перед их отправкой на сервер. MQTT-брокер. Пользователи могут быстро понять, как использовать Node-RED для простой потоковой обработки данных MQTT.
Установить Node-RED
Node-RED, установленный либо на вашем ПК, либо на устройствах, таких как Raspberry Pi, или на облачных серверах, можно быстро установить и использовать. Вот два распространенных способа установки:
Использовать npm
для глобальной установки:
npm install -g --unsafe-perm node-red
Использовать Docker
для установки:
docker run -it -p 1880:1880 --name mynodered nodered/node-red
Бежать
Если вы используете npm для глобальной установки и после того, как вам будет предложено, что установка прошла успешно, вы можете немедленно запустить Node-RED, просто запустив глобально команду node-red.
Независимо от того, используется ли Docker или npm, после успешного запуска нам нужно только открыть браузер и ввести текущий адрес плюс номер порта 1880, чтобы открыть страницу редактора браузера Node-RED. Например, при локальном запуске откройте браузер и введите http://127.0.0.1:1880. Когда вы видите страницу, показанную на следующем рисунке, это означает, что Node-RED успешно запущен:
Используйте MQTT в Node-RED
Эта статья познакомит свободную общественность MQTT-брокер предоставляется компанией EMQ, которая создана на основе Облако MQTT — Облако EMQX. информация о доступе к серверу выглядит следующим образом:
В следующей функциональной демонстрации мы предоставим простой пример использования Node-RED для обработки полученных данных JSON, содержащих информацию о температуре и влажности, затем вынесем решение о правиле для значения температуры и снова отправим текущее измененное значение температуры через MQTT. при изменении температуры.
Подключить MQTT-сервер
Сначала перетащите узел MQTT на страницу в строке меню слева. После двойного щелчка по узлу справа появится страница конфигурации для редактирования узла MQTT, затем создайте новую информацию о соединении в соответствии с подсказками содержимого, заполните другую информацию о соединении MQTT и нажмите кнопку «Готово», чтобы сохранить узел. Информация.
Обработка данных MQTT
Доступ к данным: перетащите узел JSON на страницу, и мы сможем настроить действие на странице конфигурации узла JSON. Затем мы устанавливаем его как «Всегда преобразовывать в объект Javascript». Поскольку мы не можем быть уверены, являются ли полученные данные данными в формате JSON или строкой JSON, первым шагом является выполнение преобразования JSON для полученных сообщений. После настройки мы подключаем эту ноду к MQTT в node.
Фильтрация данных: после того, как мы настроим и отформатируем полученные данные сообщения, перетащите узел фильтра на страницу. После двойного щелчка узла настройте правила на странице конфигурации. Сначала выберите режим и установите его как блок, если значение не изменится. Правило фильтрации заключается в том, что значение текущих полученных данных необходимо изменить. В настоящее время данные представлены в формате JSON, и мы должны судить об определенном значении в данных JSON, поэтому нам нужно установить значение как msg.payload.temperature в свойстве. После завершения настройки нажмите кнопку «Готово», чтобы сохранить конфигурацию узла фильтрации данных, и, наконец, соедините узел с узлом JSON после предыдущей настройки.
Использование шаблона: после фильтрации данных перетащите узел шаблона на страницу и дважды щелкните узел, чтобы настроить содержимое шаблона, чтобы отфильтрованные данные можно было вывести через шаблон. Конечно, отфильтрованные данные можно вывести напрямую, пропустив этот шаг.
Публикация обработанных данных MQTT
Наконец, отправьте обработанные данные с помощью MQTT после вышеуказанной обработки и фильтрации данных, перетащите выходной узел MQTT на страницу, заполните ту же информацию о соединении, что и MQTT в узле, настройте тему для получения пользователями данных, сохраните ее, затем соедините его с узлом шаблона и нажмите кнопку «Развернуть» в правом верхнем углу, чтобы развернуть текущее приложение правила в сети.
Тест
Закончив расстановку функций обработки всего потока данных, воспользуемся Клиент MQTT 5.0 — MQTT X для тестирования и проверки удобства использования этой функции. Мы создаем новое соединение, соединяем его с адресом облачной службы MQTT, ранее настроенным в Node-RED, а затем вводим Topic в узле MQTT in для отправки сообщения, чтобы Node-RED мог получить отправленные нами данные MQTT.
Затем мы подписываемся на тему, настроенную в узле MQTT X, чтобы получать обработанные данные сообщения. Когда отправляются данные сообщения, содержащие информацию о температуре и влажности, мы можем получить сообщение, отправленное в соответствии с установленным нами шаблоном сообщения, но мы не сможем получить его снова, если оно будет отправлено снова.
Поскольку значение температуры в это время не изменилось, и когда мы снова изменим значение температуры, мы обнаружим, что получили еще одно сообщение, напоминающее нам, что значение температуры изменилось.
Теперь мы завершили весь процесс установки и подключения к облачной службе MQTT с помощью Node-RED, фильтрации и обработки данных сообщения MQTT и, наконец, отправки обработанного сообщения данных.
Взаимодействие и использование Node-RED, то есть использование пользовательского интерфейса для описания общей бизнес-логики, может снизить порог для начала работы непрофессиональных разработчиков. ЧТОБЫ использовать визуальный инструмент для быстрого создания необходимых сложных задач выполнения, пользователи могут создавать сложные задачи с помощью простого подключения к узлу, что очень полезно, особенно для некоторых сценариев приложений IoT.
Первоначально опубликовано на