Node-RED:Введение/Запуск на платах BeagleBone
Запуск на платах 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 .
См.также
Внешние ссылки