Node-RED:Введение/Запуск на платах BeagleBone: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
 
Нет описания правки
 
(не показано 5 промежуточных версий 2 участников)
Строка 2: Строка 2:
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}
{{Черновик}}


= Запуск на платах BeagleBone <ref>[https://nodered.org/docs/hardware/beagleboneblack nodered.org - Running on BeagleBone Boards]</ref>=
= Запуск на платах BeagleBone <ref>[https://nodered.org/docs/hardware/beagleboneblack nodered.org - Running on BeagleBone Boards]</ref>=
Строка 14: Строка 12:
Команда для просмотра логов [[Node-RED]]:
Команда для просмотра логов [[Node-RED]]:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo journalctl -f -u node-red -o cat
sudo journalctl -f -u node-red -o cat
</syntaxhighlight>
</syntaxhighlight>
Строка 20: Строка 18:
Команда для остановки [[Node-RED]]:
Команда для остановки [[Node-RED]]:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo service node-red stop
sudo service node-red stop
</syntaxhighlight>
</syntaxhighlight>
Строка 26: Строка 24:
Команда для запуска [[Node-RED]]:
Команда для запуска [[Node-RED]]:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo service node-red start
sudo service node-red start
</syntaxhighlight>
</syntaxhighlight>
Строка 32: Строка 30:
Команда для настройки автозапуска [[Node-RED]] с каждой загрузкой:
Команда для настройки автозапуска [[Node-RED]] с каждой загрузкой:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo systemctl enable node-red.service
sudo systemctl enable node-red.service
</syntaxhighlight>
</syntaxhighlight>
Строка 38: Строка 36:
Команда для отключения автозапуска [[Node-RED]] при загрузке:
Команда для отключения автозапуска [[Node-RED]] при загрузке:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo systemctl disable node-red.service
sudo systemctl disable node-red.service
</syntaxhighlight>
</syntaxhighlight>
Строка 46: Строка 44:
В последних версиях [[Debian-образ]]ов [[Node-RED]] и [[Node.js]] установлены по умолчанию. Самый простой способ обновить их – при помощи встроенного инструмента обновления:
В последних версиях [[Debian-образ]]ов [[Node-RED]] и [[Node.js]] установлены по умолчанию. Самый простой способ обновить их – при помощи встроенного инструмента обновления:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo apt update
sudo apt update
sudo apt upgrade nodejs bb-node-red-installer
sudo apt upgrade nodejs bb-node-red-installer
Строка 55: Строка 53:
Если у вас ''Debian 2017 9.2'', то вам, возможно, сначала нужно будет запустить вот эту команду:
Если у вас ''Debian 2017 9.2'', то вам, возможно, сначала нужно будет запустить вот эту команду:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo apt full-upgrade
sudo apt full-upgrade
</syntaxhighlight>
</syntaxhighlight>




{{Спойлер|'''Примечание:''' '''НЕ ИСПОЛЬЗУЙТЕ''' обновляющий скрипт [[Pi]]/[[Debian]] '''«update-nodejs-and-nodered»''', т.к. он переустановит [[Node-RED]] и [[Node.js]] в других местах, что создаст конфликт и повредит существующие конфигурационные файлы [[systemd]].}}
{{Примечание1|'''НЕ ИСПОЛЬЗУЙТЕ''' обновляющий скрипт [[Pi]]/[[Debian]] '''«update-nodejs-and-nodered»''', т.к. он переустановит [[Node-RED]] и [[Node.js]] в других местах, что создаст конфликт и повредит существующие конфигурационные файлы [[systemd]].}}


== Настройка ==
== Настройка ==
Строка 70: Строка 68:
== Ручная установка ==
== Ручная установка ==


{{Спойлер|'''Дисклеймер:''' Этот раздел устарел, т.к. появились образы со встроенным [[Node-RED]] (см. выше).}}
{{Блок/Инфо1|Дисклеймер|Этот раздел устарел, т.к. появились образы со встроенным [[Node-RED]] (см. выше).}}


=== Перед тем, как начать ===
=== Перед тем, как начать ===
Строка 76: Строка 74:
Если вы используете 2-гигабайтную eMMC-версию [[Debian]], которая очень сильно обрезана, то сначала на нее, возможно, нужно будет установить некоторые важные утилиты:
Если вы используете 2-гигабайтную eMMC-версию [[Debian]], которая очень сильно обрезана, то сначала на нее, возможно, нужно будет установить некоторые важные утилиты:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo apt-get update
sudo apt-get update
sudo apt-get install -y curl locales ntpdate avahi-utils python build-essential
sudo apt-get install -y curl locales ntpdate avahi-utils python build-essential
Строка 83: Строка 81:
Убедитесь, что у вас корректно задано местное время. У платы [[BeagleBone Black (BBB)]] нет [[RTC]]-часов, питаемых от батарейки, поэтому время нужно будет задавать с каждой загрузкой, чтобы BBB даже после перезагрузки или краша продолжала, например, ставить правильные время и дату в логах при считывании данных с какого-либо датчика:
Убедитесь, что у вас корректно задано местное время. У платы [[BeagleBone Black (BBB)]] нет [[RTC]]-часов, питаемых от батарейки, поэтому время нужно будет задавать с каждой загрузкой, чтобы BBB даже после перезагрузки или краша продолжала, например, ставить правильные время и дату в логах при считывании данных с какого-либо датчика:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
ntpdate -b -s -u pool.ntp.org
ntpdate -b -s -u pool.ntp.org
</syntaxhighlight>
</syntaxhighlight>
Строка 91: Строка 89:
Рекомендуем использовать [[Node.js]] LTS 8.x или 10.x
Рекомендуем использовать [[Node.js]] LTS 8.x или 10.x


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo apt-get install curl
sudo apt-get install curl
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Строка 102: Строка 100:
Самый простой способ установки [[Node-RED]] – при помощи [[npm]] (менеджера пакетов [[Node.js]]).
Самый простой способ установки [[Node-RED]] – при помощи [[npm]] (менеджера пакетов [[Node.js]]).


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo npm i -g --unsafe-perm node-red
sudo npm i -g --unsafe-perm node-red
</syntaxhighlight>
</syntaxhighlight>


'''Примечание:''' Флаг '''«--unsafe-perm»''' используется здесь, потому что когда '''«node-gyp»''' пытается перекомпилировать какую-либо нативную библиотеку, то делает это от пользователя '''«nobody»'''. Из-за этого ему часто не удается получить доступ к некоторым директориям. Это становится причиной появления предупреждений, которые выглядят как ошибки... но на самом деле являются ошибками лишь иногда. Запуск '''«node-gyp»''' с правами '''«root»''' с помощью этого флага позволяет этого избежать, а также видеть не мнимые, на настоящие ошибки.
{{Примечание1|Флаг '''«--unsafe-perm»''' используется здесь, потому что когда '''«node-gyp»''' пытается перекомпилировать какую-либо нативную библиотеку, то делает это от пользователя '''«nobody»'''. Из-за этого ему часто не удается получить доступ к некоторым директориям. Это становится причиной появления предупреждений, которые выглядят как ошибки... но на самом деле являются ошибками лишь иногда. Запуск '''«node-gyp»''' с правами '''«root»''' с помощью этого флага позволяет этого избежать, а также видеть не мнимые, на настоящие ошибки.}}


Другие варианты установки – например, с [[GitHub]] для запуска в режиме разработчика – ищите [https://nodered.org/docs/getting-started/installation#install-node-red тут].
Другие варианты установки – например, с [[GitHub]] для запуска в режиме разработчика – ищите [https://nodered.org/docs/getting-started/installation#install-node-red тут].
Строка 116: Строка 114:
Чтобы установить их вручную, воспользуйтесь следующей командой:
Чтобы установить их вручную, воспользуйтесь следующей командой:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo npm install -g --unsafe-perm beaglebone-io johnny-five node-red-contrib-gpio
sudo npm install -g --unsafe-perm beaglebone-io johnny-five node-red-contrib-gpio
</syntaxhighlight>
</syntaxhighlight>


'''Примечание:''' Есть и другие ноды для работы специально с [[BBB]], но они встроены в библиотеку, которая больше не поддерживается ('''«octalbonescript»'''), поэтому мы не рекомендуем использовать их с заделом на будущее. Но стоит отметить, что они в том числе поддерживают функционал, которого нет в обычных GPIO-нодах.
{{Примечание1|Есть и другие ноды для работы специально с [[BBB]], но они встроены в библиотеку, которая больше не поддерживается ('''«octalbonescript»'''), поэтому мы не рекомендуем использовать их с заделом на будущее. Но стоит отметить, что они в том числе поддерживают функционал, которого нет в обычных GPIO-нодах.}}


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo npm install -g --unsafe-perm node-red-node-beaglebone
sudo npm install -g --unsafe-perm node-red-node-beaglebone
</syntaxhighlight>
</syntaxhighlight>
Строка 130: Строка 128:
Поскольку платы [[BeagleBone]] обладают ограниченной памятью, советуем запускать [[Node-RED]] с помощью следующей команды:
Поскольку платы [[BeagleBone]] обладают ограниченной памятью, советуем запускать [[Node-RED]] с помощью следующей команды:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
node-red-pi
node-red-pi
</syntaxhighlight>
</syntaxhighlight>
Строка 138: Строка 136:
Самый простой способ настроить автозапуск [[Node-RED]] при загрузке [[BeagleBone]] – при помощи встроенного [[systemd]]. Для этого нам нужно создать файл '''«/lib/systemd/system/nodered.service»''' следующего содержания:
Самый простой способ настроить автозапуск [[Node-RED]] при загрузке [[BeagleBone]] – при помощи встроенного [[systemd]]. Для этого нам нужно создать файл '''«/lib/systemd/system/nodered.service»''' следующего содержания:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
# Сервисный файл systemd для запуска Node-RED
# Сервисный файл systemd для запуска Node-RED
[Unit]
[Unit]
Строка 163: Строка 161:
Далее перезагружаем настройки [[systemd]] и включаем сервис:
Далее перезагружаем настройки [[systemd]] и включаем сервис:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo systemctl daemon-reload
sudo systemctl daemon-reload
sudo systemctl enable nodered.service
sudo systemctl enable nodered.service
Строка 170: Строка 168:
[[Systemd]] использует для логов '''«/var/log/system.log»'''. Команда для фильтрации логов:
[[Systemd]] использует для логов '''«/var/log/system.log»'''. Команда для фильтрации логов:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo journalctl -f -u nodered -o cat  
sudo journalctl -f -u nodered -o cat  
</syntaxhighlight>
</syntaxhighlight>
Строка 183: Строка 181:


<references />
<references />
{{Навигационная таблица/Node-RED библиотеки}}
{{Навигационная таблица/Телепорт}}

Текущая версия от 22:50, 22 сентября 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Запуск на платах BeagleBone [1]

Мы рекомендуем использовать SD-образы с последней версией операционной системы Debian 9 «Stretch». Загрузить их можно с сайта BeagleBoard.org. В 4-гигабайтных образах для плат BeagleBone уже есть предустановленная версия Node-RED. Кроме того, она настроена на автозапуск, поэтому вы можете просто загрузиться и ввести в адресную строку браузера IP-адрес своей BeagleBone с портом «1880».

Не рекомендуем использовать 2-гигабайтную консольную версию для старых eMMC-версий BBB. Но, если необходимо, ее можно установить вручную (см. инструкции ниже).

Команда для просмотра логов Node-RED:

sudo journalctl -f -u node-red -o cat

Команда для остановки Node-RED:

sudo service node-red stop

Команда для запуска Node-RED:

sudo service node-red start

Команда для настройки автозапуска Node-RED с каждой загрузкой:

sudo systemctl enable node-red.service

Команда для отключения автозапуска Node-RED при загрузке:

sudo systemctl disable node-red.service

Обновление

В последних версиях Debian-образов Node-RED и Node.js установлены по умолчанию. Самый простой способ обновить их – при помощи встроенного инструмента обновления:

sudo apt update
sudo apt upgrade nodejs bb-node-red-installer

Это должно перезапустить Node-RED, но вам также нужно будет обновить страницу редактора Node-RED в браузере.

Если у вас Debian 2017 9.2, то вам, возможно, сначала нужно будет запустить вот эту команду:

sudo apt full-upgrade


Примечание

НЕ ИСПОЛЬЗУЙТЕ обновляющий скрипт Pi/Debian «update-nodejs-and-nodered», т.к. он переустановит Node-RED и Node.js в других местах, что создаст конфликт и повредит существующие конфигурационные файлы systemd.

Настройка

По умолчанию BeagleBone настроена на запуск Node-RED от пользователя «root». Следовательно, файлы настроек для Node-RED – в частности, «settings.js» – будут находиться в папке «/root/.node-red», и для их редактирования вам понадобятся права пользователя «root» («sudo»).

У BeagleBone также есть systemd-сервис – «/lib/systemd/system/node-red.socket» – автоматически запускающий Node-RED, если заметит попытку подключиться. По умолчанию порт – это «1880», но если вам нужно его поменять, то это нужно сделать не только здесь, но и в файле «settings.js».

Ручная установка

Дисклеймер

Этот раздел устарел, т.к. появились образы со встроенным Node-RED (см. выше).

Перед тем, как начать

Если вы используете 2-гигабайтную eMMC-версию Debian, которая очень сильно обрезана, то сначала на нее, возможно, нужно будет установить некоторые важные утилиты:

sudo apt-get update
sudo apt-get install -y curl locales ntpdate avahi-utils python build-essential

Убедитесь, что у вас корректно задано местное время. У платы BeagleBone Black (BBB) нет RTC-часов, питаемых от батарейки, поэтому время нужно будет задавать с каждой загрузкой, чтобы BBB даже после перезагрузки или краша продолжала, например, ставить правильные время и дату в логах при считывании данных с какого-либо датчика:

ntpdate -b -s -u pool.ntp.org

Обновление Node.js

Рекомендуем использовать Node.js LTS 8.x или 10.x

sudo apt-get install curl
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y build-essential nodejs
hash -r

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

Самый простой способ установки Node-RED – при помощи npm (менеджера пакетов Node.js).

sudo npm i -g --unsafe-perm node-red
Примечание

Флаг «--unsafe-perm» используется здесь, потому что когда «node-gyp» пытается перекомпилировать какую-либо нативную библиотеку, то делает это от пользователя «nobody». Из-за этого ему часто не удается получить доступ к некоторым директориям. Это становится причиной появления предупреждений, которые выглядят как ошибки... но на самом деле являются ошибками лишь иногда. Запуск «node-gyp» с правами «root» с помощью этого флага позволяет этого избежать, а также видеть не мнимые, на настоящие ошибки.

Другие варианты установки – например, с GitHub для запуска в режиме разработчика – ищите тут.

Ноды для работы с BeagleBone

Существуют ноды, предназначенные специально для работы с платами BeagleBone, а также дающие прямой и максимально упрощенный доступ к IO-контактам платы. Самый простой способ установить их – напрямую через «npm».

Чтобы установить их вручную, воспользуйтесь следующей командой:

sudo npm install -g --unsafe-perm beaglebone-io johnny-five node-red-contrib-gpio
Примечание

Есть и другие ноды для работы специально с BBB, но они встроены в библиотеку, которая больше не поддерживается («octalbonescript»), поэтому мы не рекомендуем использовать их с заделом на будущее. Но стоит отметить, что они в том числе поддерживают функционал, которого нет в обычных GPIO-нодах.

sudo npm install -g --unsafe-perm node-red-node-beaglebone

Запуск Node-RED

Поскольку платы BeagleBone обладают ограниченной памятью, советуем запускать Node-RED с помощью следующей команды:

node-red-pi

Автозапуск

Самый простой способ настроить автозапуск Node-RED при загрузке BeagleBone – при помощи встроенного systemd. Для этого нам нужно создать файл «/lib/systemd/system/nodered.service» следующего содержания:

# Сервисный файл systemd для запуска Node-RED
[Unit]
Description=Node-RED graphical event wiring tool.
Wants=network.target
Documentation=http://nodered.org/docs/hardware/raspberrypi.html
[Service]
Type=simple
# Запускаем с правами пользователя «root»,
# чтобы получить доступ к GPIO-контактам:
User=root
Group=root
Nice=5
Environment="NODE_OPTIONS=--max-old-space-size=128"
#Environment="NODE_RED_OPTIONS=-v"
ExecStart=/usr/bin/env node-red-pi $NODE_OPTIONS $NODE_RED_OPTIONS
KillSignal=SIGINT
Restart=on-failure
SyslogIdentifier=Node-RED
[Install]
WantedBy=multi-user.target

Далее перезагружаем настройки systemd и включаем сервис:

sudo systemctl daemon-reload
sudo systemctl enable nodered.service

Systemd использует для логов «/var/log/system.log». Команда для фильтрации логов:

sudo journalctl -f -u nodered -o cat

Использование редактора

Теперь, когда Node-RED запущен – и с условием, что вы не меняли имя хоста – введите в адресную строку браузера «http://beaglebone.local:1880» и нажмите на  ↵ Enter .

См.также

Внешние ссылки