Обработка данных 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 и нажмите кнопку «Готово», чтобы сохранить узел. Информация.

Node-RED MQTT в узле

Обработка данных MQTT

Доступ к данным: перетащите узел JSON на страницу, и мы сможем настроить действие на странице конфигурации узла JSON. Затем мы устанавливаем его как «Всегда преобразовывать в объект Javascript». Поскольку мы не можем быть уверены, являются ли полученные данные данными в формате JSON или строкой JSON, первым шагом является выполнение преобразования JSON для полученных сообщений. После настройки мы подключаем эту ноду к MQTT в node.

Узел-RED JSON узел

Фильтрация данных: после того, как мы настроим и отформатируем полученные данные сообщения, перетащите узел фильтра на страницу. После двойного щелчка узла настройте правила на странице конфигурации. Сначала выберите режим и установите его как блок, если значение не изменится. Правило фильтрации заключается в том, что значение текущих полученных данных необходимо изменить. В настоящее время данные представлены в формате JSON, и мы должны судить об определенном значении в данных JSON, поэтому нам нужно установить значение как msg.payload.temperature в свойстве. После завершения настройки нажмите кнопку «Готово», чтобы сохранить конфигурацию узла фильтрации данных, и, наконец, соедините узел с узлом JSON после предыдущей настройки.

Node-RED узел фильтра

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

Узел шаблона Node-RED

Публикация обработанных данных MQTT

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

Выходной узел Node-RED MQTT

Тест

Закончив расстановку функций обработки всего потока данных, воспользуемся Клиент MQTT 5.0 — MQTT X для тестирования и проверки удобства использования этой функции. Мы создаем новое соединение, соединяем его с адресом облачной службы MQTT, ранее настроенным в Node-RED, а затем вводим Topic в узле MQTT in для отправки сообщения, чтобы Node-RED мог получить отправленные нами данные MQTT.

Затем мы подписываемся на тему, настроенную в узле MQTT X, чтобы получать обработанные данные сообщения. Когда отправляются данные сообщения, содержащие информацию о температуре и влажности, мы можем получить сообщение, отправленное в соответствии с установленным нами шаблоном сообщения, но мы не сможем получить его снова, если оно будет отправлено снова.

MQTT X публикует сообщения

Поскольку значение температуры в это время не изменилось, и когда мы снова изменим значение температуры, мы обнаружим, что получили еще одно сообщение, напоминающее нам, что значение температуры изменилось.

MQTT X получать сообщения

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

Взаимодействие и использование Node-RED, то есть использование пользовательского интерфейса для описания общей бизнес-логики, может снизить порог для начала работы непрофессиональных разработчиков. ЧТОБЫ использовать визуальный инструмент для быстрого создания необходимых сложных задач выполнения, пользователи могут создавать сложные задачи с помощью простого подключения к узлу, что очень полезно, особенно для некоторых сценариев приложений IoT.

Первоначально опубликовано на

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *