Начало работы с Node-RED на Raspberry Pi


Node-RED — это мощный инструмент с открытым исходным кодом для визуального программирования для создания приложений Интернета вещей (IoT). В этой статье мы рассмотрим, что такое Node-RED, как его установить и как использовать визуальный интерфейс для создания простого потока.

Начало работы с Node-RED на Raspberry Pi

Мы предполагаем, что вы знакомы с Raspberry Pi, знаете, как установить операционную систему на нее, и знаете, как установить SSH-соединение с вашим Pi.

Что такое Node-RED?

Node-RED — это мощный инструмент с открытым исходным кодом для создания приложений Интернета вещей (IoT) с целью упрощения программирования компонентов.

Node-RED работает в веб-браузере и использует визуальное программирование, которое позволяет вам соединять блоки кода, известные как узлы, вместе для выполнения задачи. Узлы, когда они соединены вместе, называются потоками.

Визуальный интерфейс Node-RED

Почему Node-RED — отличное решение?

  • Node-RED — это проект с открытым исходным кодом, разработанный IBM.
  • Raspberry Pi отлично работает с Node-RED.
  • Это визуальный инструмент программирования, что делает его более доступным для более широкого круга пользователей.
  • С Node-RED вы сможете больше времени уделять созданию интересных вещей, а не тратить бесчисленные часы на написание кода.

Также на нашем сайте вы можете прочитать об альтернативах IFTTT и Node-RED в приложениях интернета вещей.

Что можно сделать с помощью Node-RED?

Node-RED позволяет легко:

  • Получите доступ к GPIO (контактам ввода/вывода) вашего Raspberry Pi;
  • Установить MQTT-соединение с другими устройствами (Arduino, ESP8266, ESP32 и т. д.);
  • Создать адаптивный графический пользовательский интерфейс для своих проектов;
  • Общаться со сторонними сервисами (IFTTT.com, Adafruit.io, ThingSpeak, Home Assistant, InfluxDB и т. д.);
  • Извлекать данные из Интернета (прогноз погоды, цены на акции, электронная почта и т. д.);
  • Создавать события, запускаемые по времени;
  • Хранить и извлекать данные из базы данных.

Вот библиотека с некоторыми примерами потоков и узлов для Node-RED.

Установка Node-RED на Raspberry Pi

Установив  SSH-соединение с Raspberry Pi, введите следующую команду для установки Node-RED:

Node-RED по умолчанию установлен на Raspberry Pi OS (32-бит). Однако рекомендуется выполнить предыдущую команду, чтобы установить необходимые пакеты и обновить ее до последней версии. Вы получите сообщение, информирующее вас об этом. Нажмите Y и Enter, чтобы принять эти изменения.

Node-RED не установлен по умолчанию на Raspberry Pi OS (64-разрядной версии).

Затем вам будет задан вопрос: “Would you like to install Pi-specific nodes?” («Хотите ли вы установить узлы, специфичные для Pi?») Нажмите Y и Enter .

Установка Node-RED займет несколько минут. В конце вы должны получить похожее сообщение в окне терминала:

Сообщение об окончании установки Node-RED на Raspberry Pi

Настройте параметры Node-RED

После установки рекомендуется настроить начальные параметры и настройки этой системы. Выполните следующую команду:

Вход в режим настройки параметров Node-RED

  • Нажмите Enter , чтобы создать файл настроек Node-RED на /home/pi/.node-red/settings.js
  • Хотите настроить безопасность пользователя (Do you want to set up user security)? Да .
  • Введите имя пользователя и нажмите Enter (вам понадобится его запомнить позже).
  • Введите пароль и нажмите Enter (вам понадобится его запомнить позже).
  • Затем вам нужно определить разрешения пользователя. Мы установим полный доступ, убедитесь, что опция полного доступа (full access) выделена синим цветом и нажмите Enter.
  • Вы можете добавить других пользователей с другими разрешениями, если хотите. Мы просто создадим одного пользователя на данный момент. Вы всегда сможете добавить других пользователей позже.
  • Хотите ли вы включить функцию «Проекты» (Do you want to enable the Projects feature)? Нет.
  • Введите имя для вашего файла потоков. Нажмите Enter, чтобы выбрать имя по умолчанию flows.json.
  • Укажите парольную фразу (passphrase) для шифрования файла учетных данных (более сильная защита по сравнению с просто паролем).
  • Выберите тему для редактора. Просто нажмите Enter, чтобы выбрать тему по умолчанию.
  • Нажмите Enter еще раз, чтобы выбрать текстовый редактор по умолчанию.
  • Разрешить узлам функций загружать внешние модули (Allow Function nodes to load external modules)? Да .

Конфигурация Node-RED прошла успешно. Все настройки сохранены в settings.js.

Запуск Node-RED

Для запуска Node-RED выполните следующую команду:

На терминале должно появиться похожее сообщение:

Запуск Node-RED из окна терминала

Автозапуск Node-RED при загрузке

Для автоматического запуска Node-RED при загрузке Raspberry Pi вам нужно ввести следующую команду. Это означает, что пока ваш Raspberry Pi включен, Node-RED будет работать.

Теперь перезапустите свой Pi, чтобы автозапуск вступил в силу. В следующий раз, когда Raspberry Pi перезагрузится, Node-RED уже будет запущен.

Если позже вы захотите отключить автозапуск Node-RED при загрузке, вы можете выполнить:

Более подробную информацию о процессе установки можно найти в официальной документации.

Доступ к Node-RED

Node-RED работает на порту 1880. Чтобы получить доступ к Node-RED, откройте браузер и введите IP-адрес Raspberry Pi, а затем :1880. Например:

Чтобы получить IP-адрес вашего Raspberry Pi, вы можете выполнить следующую команду:

Определение IP-адреса платы Raspberry Pi

После ввода IP-адреса Raspberry Pi, а затем :1880 в веб-браузере, вы получите доступ к странице входа в Node-RED. Войдите, используя имя пользователя и пароль, которые вы установили ранее.

Страница входа в Node-RED

Теперь у вас есть доступ к Node-RED. Вы можете начать строить свои потоки.

Страница, доступная после входа в Node-RED

Обзор Node-RED

Давайте рассмотрим визуальный интерфейс Node-RED.

Визуальный интерфейс Node-RED

Интерфейс Node-RED: основные разделы

На следующем рисунке показаны основные секции Node-RED с маркировкой.

Интерфейс Node-RED: основные разделы

Узлы (Nodes)

На левой боковой панели вы можете увидеть список с кучей блоков. Эти блоки называются узлами и они разделены по своей функциональности. Если вы выберете узел, вы сможете увидеть, как он работает, на вкладке документации узлов (nodes documentation tab).

Узлы имеют входные и/или выходные порты для получения и отправки информации другим узлам. Например, узел получает входные данные от предыдущего узла, обрабатывает эту информацию и выводит другое сообщение другому узлу, который что-то сделает с этой информацией. Информация, передаваемая между узлами, называется сообщением (message).

Поток (Flow)

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

В центре у вас находится Поток, и именно здесь вы размещаете узлы.

Правая боковая панель

Боковая панель справа содержит несколько инструментов.

  • Информация (Information): показывает информацию о потоках;
  • Справка (Help): показывает документацию по узлам;
  • Отладка (Debug): значок ошибки открывает окно отладки, в котором отображаются сообщения, переданные узлам отладки — это полезно для целей отладки;
  • Узлы конфигурации (Config nodes): значок шестеренки показывает информацию об узлах конфигурации. Узлы конфигурации не отображаются в основном рабочем пространстве, и это специальные узлы, которые содержат повторно используемые конфигурации, которые могут совместно использоваться несколькими узлами в потоке.

Развертывание (Deploy)

Кнопка развертывания сохраняет все изменения, внесенные в поток, и запускает его выполнение.

Создание простого потока

Чтобы вы привыкли к интерфейсу Node-RED, давайте создадим простой поток. Поток, который мы создадим, просто выводит сообщение в консоль отладки при срабатывании.

Перетащите узел внедрения (inject node) и узел отладки (debug node) в свой поток и соедините их вместе.

Начало создания потока в Node-RED

Теперь давайте отредактируем узел внедрения. Дважды щелкните узел. На рисунке ниже вы можете увидеть его различные настройки, которые вы можете изменить.

В поле msg.payload выберите строку и введите Hello. Затем нажмите Готово (Done).

Изменение настроек узла внедрения в Node-RED

Сообщения (msg) в Node-RED — это объекты JavaScript, которые могут иметь несколько свойств. payload (полезная нагрузка) — это свойство по умолчанию, с которым работает большинство узлов. Вы можете думать о нем как об основном содержании сообщения, которое вы хотите отправить следующему узлу. В нашем случае мы просто отправляем текстовое сообщение.

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

Изменение настроек узла отладки в Node-RED

Вы можете выбрать вывод узла отладки, которым является msg.payload, куда мы хотим отправить этот вывод. В нашем случае мы хотим отправить его в окно отладки.

Чтобы сохранить приложение, вам необходимо нажать кнопку «Развернуть» (Deploy) в правом верхнем углу.

Кнопка развертывания проекта в Node-RED

Ваша заявка сохранена.

Тестирование потока

Давайте протестируем наш простой поток. Откройте окно отладки и щелкните  узел внедрения (inject node), чтобы запустить поток.

Тестирование работы потока в Node-RED

Как вы видите, наше сообщение печатается в окне отладки, когда вы запускаете узел внедрения. Это очень простой пример, и он не делает ничего полезного. Однако цель этого поста — познакомить вас с интерфейсом Node-RED. Совсем скоро вы начнете создавать свои собственные потоки.

Экспорт и импорт узлов

В этом разделе вы узнаете, как сохранять свои узлы. Это полезно, если вам нужно:

  • Резервное копирование (Backup) потока Node-RED.
  • Перенесение своего потока на другую Raspberry Pi.
  • Необходимо поделиться  своим проектом Node-RED с другими.

Откройте главное меню и выберите опцию «Экспорт» (Export).

Запуск процесса экспорта потоков и узлов в Node-RED

Открывается новое окно. В нем вы можете выбрать, хотите ли вы сохранить выбранные узлы, текущий поток или все потоки. Вы также можете загрузить узлы как файл JSON или скопировать JSON в буфер обмена.

Экспорт узлов в Node-RED

Чтобы показать вам, как это работает, нажмите «Загрузить» (Download) для выбранных узлов. Это загрузит файл JSON с именем flows.json.

Позже вы можете импортировать эти узлы на другую Raspberry Pi или другую машину с установленным Node-RED, перейдя в главное меню и выбрав опцию Импорт (Import).

В окне «Импорт узлов» (Import nodes) вы можете загрузить файл JSON или вставить необработанный JSON.

Окно импорта узлов в Node-RED

Установка узлов палитры (Pallete Nodes) в Node-RED

Как мы уже видели, Node-RED поставляется с кучей предустановленных узлов на Pallete (левая боковая панель). Существует еще много узлов, которые вы можете установить и использовать для своих проектов. Вы можете найти их в библиотеке Node-RED. Если вам нужна какая-то конкретная задача для вашего проекта, вероятно, для нее уже есть узел.

Например, если вам нужно добавить функцию отправки электронной почты в свой поток, вы можете поискать в Google что-то вроде этого: «отправить электронную почту node-red node» (“send email node-red node”). Одним из первых результатов поиска является эта страница с node -red-node-email. Она поставляется с некоторыми узлами для отправки и получения электронной почты.

Если вы хотите установить эти узлы (или любые другие узлы), чтобы использовать их в своем потоке, перейдите в главное меню и выберите опцию Управление палитрой (Manage palette).

Пункт меню Node-RED для управления палитрой

Откроется следующее окно. Выберите вкладку «Установить» (install) и найдите узлы, которые вы хотите установить, например, узел node-red-node-email.

Окно для установки узла в Node-RED

Панель инструментов Node-RED

Node-RED Dashboard — это модуль, который предоставляет набор узлов в Node-RED для быстрого создания панели мониторинга данных в реальном времени. Вы можете установить эти узлы с помощью Menu Manage Palette. Затем найдите node-red-dashboard и установите его.

Установка узла node-red-dashboard в Node-RED

После установки узлы панели управления отобразятся на палитре.

Узлы панели управления в Node-RED

Узлы из раздела панели инструментов предоставляют виджеты, которые отображаются в пользовательском интерфейсе вашего приложения (UI). Пользовательский интерфейс доступен по следующему URL-адресу:

Например, в моем случае:

Доступ к панели инструментов Node-RED

В данный момент при доступе к пользовательскому интерфейсу вы увидите предыдущий экран. Это потому, что вы не добавили ни один из этих узлов панели инструментов в поток. В этом руководстве мы не будем рассматривать, как создать пользовательский интерфейс панели инструментов. Если вы хотите узнать больше по данному вопросу, прочтите:

Подведение итогов

Это руководство по быстрому началу работы с Node-RED. Вы узнали, как установить Node-RED на Raspberry Pi, как создать простой поток, импортировать и экспортировать узлы, установить узлы и установить панель инструментов Node-RED.

Вы также можете установить Node-RED на облачном сервере, например, Digital Ocean.

Node-RED очень полезен для проектов IoT, использующих MQTT, поэтому вы можете ознакомиться со всеми нашими проектами MQTT:

Спасибо за прочтение.

(Проголосуй первым!)
Загрузка...
25 просмотров

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

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