Node-RED:Введение/Запуск на платах BeagleBone: различия между версиями
Myagkij (обсуждение | вклад) |
Myagkij (обсуждение | вклад) Нет описания правки |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 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 | <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 | <syntaxhighlight lang="bash"> | ||
sudo service node-red stop | sudo service node-red stop | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 26: | Строка 24: | ||
Команда для запуска [[Node-RED]]: | Команда для запуска [[Node-RED]]: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
sudo service node-red start | sudo service node-red start | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 32: | Строка 30: | ||
Команда для настройки автозапуска [[Node-RED]] с каждой загрузкой: | Команда для настройки автозапуска [[Node-RED]] с каждой загрузкой: | ||
<syntaxhighlight lang="bash | <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 | <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 | <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 | <syntaxhighlight lang="bash"> | ||
sudo apt full-upgrade | sudo apt full-upgrade | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 76: | Строка 74: | ||
Если вы используете 2-гигабайтную eMMC-версию [[Debian]], которая очень сильно обрезана, то сначала на нее, возможно, нужно будет установить некоторые важные утилиты: | Если вы используете 2-гигабайтную eMMC-версию [[Debian]], которая очень сильно обрезана, то сначала на нее, возможно, нужно будет установить некоторые важные утилиты: | ||
<syntaxhighlight lang="bash | <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 | <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 | <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 | <syntaxhighlight lang="bash"> | ||
sudo npm i -g --unsafe-perm node-red | sudo npm i -g --unsafe-perm node-red | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 116: | Строка 114: | ||
Чтобы установить их вручную, воспользуйтесь следующей командой: | Чтобы установить их вручную, воспользуйтесь следующей командой: | ||
<syntaxhighlight lang="bash | <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> | ||
Строка 122: | Строка 120: | ||
{{Примечание1|Есть и другие ноды для работы специально с [[BBB]], но они встроены в библиотеку, которая больше не поддерживается ('''«octalbonescript»'''), поэтому мы не рекомендуем использовать их с заделом на будущее. Но стоит отметить, что они в том числе поддерживают функционал, которого нет в обычных GPIO-нодах.}} | {{Примечание1|Есть и другие ноды для работы специально с [[BBB]], но они встроены в библиотеку, которая больше не поддерживается ('''«octalbonescript»'''), поэтому мы не рекомендуем использовать их с заделом на будущее. Но стоит отметить, что они в том числе поддерживают функционал, которого нет в обычных GPIO-нодах.}} | ||
<syntaxhighlight lang="bash | <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 | <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 | <syntaxhighlight lang="bash"> | ||
# Сервисный файл systemd для запуска Node-RED | # Сервисный файл systemd для запуска Node-RED | ||
[Unit] | [Unit] | ||
Строка 163: | Строка 161: | ||
Далее перезагружаем настройки [[systemd]] и включаем сервис: | Далее перезагружаем настройки [[systemd]] и включаем сервис: | ||
<syntaxhighlight lang="bash | <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 | <syntaxhighlight lang="bash"> | ||
sudo journalctl -f -u nodered -o cat | sudo journalctl -f -u nodered -o cat | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия от 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
Настройка
По умолчанию 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».
Ручная установка
Перед тем, как начать
Если вы используете 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
Другие варианты установки – например, с GitHub для запуска в режиме разработчика – ищите тут.
Ноды для работы с BeagleBone
Существуют ноды, предназначенные специально для работы с платами BeagleBone, а также дающие прямой и максимально упрощенный доступ к IO-контактам платы. Самый простой способ установить их – напрямую через «npm».
Чтобы установить их вручную, воспользуйтесь следующей командой:
sudo npm install -g --unsafe-perm beaglebone-io johnny-five node-red-contrib-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 .
См.также
Внешние ссылки