Edited at

Raspberry PiにおけるNode-REDの活用について


Raspberry PiにおけるNode-REDの活用について

IoT関連のプロトタイピングにRaspberry Piを活用する場合、開発環境としてNode-REDを使うことが多いと思います。しかし、Raspberry PiやNode-REDの活発な開発ペースに追い付かず、昨今の更新で書籍やWebページに書かれた内容が古くなっており、初心者の方が初めてRaspberry PiでNode-REDを使う場合に困ってしまうこともあると思います。

本稿では、Node-RED Advent Calendar 2018向けとして、2018年末時点のRaspbianやNode-REDにおける手順をできるだけていねいに紹介します。将来の更新でここに記載した内容が最適でないことになるかもしれません。内容についてはできる限り修正していきたいと思いますので、編集履歴もご参照いただければと思います。


Raspberry Piって何?

英国のRaspberry財団が提供する、小型で安価なLinux PCです。



(写真はRaspberry Pi 3B+)


  • 産業用にも活用


    • 2012年2月の発売当初は教育用として開発されましたが、低コストで大量に流通し入手性が高く、価格の割に高品質であることから産業用途にも活用されています。



  • IoTに最適


    • HDMI/Camera/USB/Ethernet/WiFi/Bluetooth/Audioなど一般的なPC同様のインターフェイスを持ち、さらにGPIO/UART/I2C/SPIなどの組み込み用途向けインターフェイスも備えるため、センサーやアクチュエータを備えたIoTゲートウェイとしての活用に向いています。



  • アプリが充実


    • Linux OSのDebianを最適化したRaspbianというOSが提供されており、OSイメージをmicroSDカードへ導入して利用します。多数のアプリパッケージがRaspberry Piに最適化され配布されています。




Node-REDって何?

IBMのエンジニアが開発、のちに(2016年10月)JS Foundationに譲渡されたOSSの開発環境です。


  • Webベースの開発環境


    • WebブラウザからFlow Editorとよばれる開発環境にアクセスし、Nodeとよばれる部品をつなげてFlowと呼ばれる処理を作成することで、アプリやサービスを簡単に開発することができます。



  • 再利用性と機能拡張


    • FlowをJSONフォーマットで書き出し、他のFlow Editorに読み込むことで簡単に再利用できます。

    • クラウドサービスとの連携やデバイスの活用などさまざまな機能を持つNodeが配布されており、簡単に追加インストールして機能拡張できます。



  • 高い移植性


    • Linux/Windows/MacOS/AndroidなどさまざまなOSの上で動作し、開発したFlowは互換性があるため、例えばクラウドサーバとRaspberry Piが連携するシステムをすべてNode-REDだけで開発できます。




Raspberry PiへRaspbianの導入

Raspbianの導入については、Qiita内にもたくさん紹介されているので詳細は割愛します。隔月で発売されているラズパイマガジンの巻末に、その時点での最新の導入方法が詳細に解説されていますので、まったくの初心者の方はRaspberry Piと一緒に購入するとよいでしょう。(NOOBSを使った手順-後述-が紹介されています)


NOOBSとRaspbian

Raspbianの導入には大きく分けて2種類の方法があります。NOOBS経由の導入と直接Raspbianを導入する方法です。NOOBSは「New Out Of Box Software」の略で、microSDカードの標準ファイルシステムであるexFAT/FAT32に直接導入ファイル群をコピーすることで、起動時にNOOBSがmicroSDカードの設定も含めて実施します。Raspbian以外のOSの導入も可能な反面、ダウンロードするイメージファイルのサイズが大きく、インストール時間も余計にかかります。Node-REDを使うためにRaspbianを導入するなら、直接RaspbianをmicroSDカードに書き込む方法をお勧めします。

Raspbianを直接導入する場合のポイントをいくつか挙げると、16GB以上Class10対応の高品質なmicroSDカードを使う、書き込みはEtcherを使う、くらいでしょうか。Raspbian 2018-10-09版以降では、初回起動時のインストールウィザード piwiz で日本語環境の導入までシームレスにできるようになり、本当に楽になりました。

Raspbianでは2015-11-21版以降、Node-REDが標準インストールされていました。しかし、Raspbianの2018-06-27版より「Recommended Applications」という扱いになり、標準インストールから外れてしまいました。しかし、2018-11-13版から新たに配布開始になった「Raspbian Stretch with desktop and recommended software」には、Node-REDが標準インストールされています。

2019-06-20版からは、Debian 10ベースの「Raspbian Buster with desktop and recommended software」が提供されています。これにもNode-REDが標準インストールされています。2019年7月現在の最新版は2019-07-10です。



https://www.raspberrypi.org/downloads/raspbian/

「Raspbian Buster with desktop and recommended software」はNode-RED以外にも大きなサイズのアプリケーションが標準インストールされているのですが、その分配布イメージのサイズが大きいデメリットもあります。


  • 「Raspbian Buster with desktop and recommended software」 : 2372MB (ダウンロード画面には1945MBとあるが実際には2.3GB)

  • 「Raspbian Buster with desktop」:1125MB

  • 「Raspbian Buster Lite」416MB

頻繁に更新されるNode-REDに比べて、Raspbianの更新頻度は緩やかですから、導入後はNode-REDのアップデートを行う必要があります。Node-REDを使うだけなら「Raspbian Buster with desktop」を導入後、少しの手間でNode-REDを導入できます。なお、LAN経由でPCのブラウザが使える場合は、「Raspbian Buster Lite」(CUIで、RaspberryPi本体のWebブラウザが使えません) でも大丈夫です。

EtcherによるRaspbianの導入は、初めてラズパイをセットアップしてみた がわかりやすいです。(ブランド変更でツール名が「balenaEtcher」に変わっていますが手順はほぼそのままです)

Raspbianの導入後は、piユーザのパスワードを変更し、導入パッケージの更新をしておきましょう。「Raspbian Buster with desktop」で導入した場合は、初回起動時の設定ウィザード(piwiz)を最後まで実施していればすでにできています。「Raspbian Buster Lite」で導入された場合は、sudo raspi-config もしくは以下の手順です。

sudo passwd pi

sudo apt update
sudo apt upgrade


RaspbianへのNode-REDのインストール

「Raspbian Buster with desktop and recommended software」を導入された場合、Node-REDは最初から導入されています。メニューの「プログラミング」にNode-REDがありますので、ここから実行できます。それ以外のイメージから導入された場合は、まずはインストールが必要です。

「Raspbian Buster with desktop」で導入した場合、Node-REDのインストールには、PIXEL Desktopのメニューにある「Recommended Software」を使っても導入できますが、時期によっては古いバージョンを導入することになり、導入後に別途更新作業が必要となり二度手間です。

おすすめのNode-RED導入方法としては、Node-REDのリポジトリでメンテナンスされているupdate-nodejs-and-noderedスクリプトを最初から使いましょう。(まったく導入されていない状態から使えるスクリプトです)

公式ページ内のRunning on Raspberry Piで紹介されている

bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)

でインストールできますが、URLが長いので覚えにくいのが難点です。githubで提供されている短縮URLサービスを使って https://git.io/noderedpi という短縮URLを作りましたので、コンソールから

wget https://git.io/noderedpi

less noderedpi
(スクリプトを確認※)
bash noderedpi

で導入可能です。update-nodejs-and-noderedは内部でsudoしていますので、piユーザがsudoで管理者権限になれないように設定している場合以外は、piユーザで実行します。(rootユーザで実行するとスクリプトが確認してきます)

※なお、ダウンロードしてきたスクリプトを中身の確認をせず直接bashで実行するのはセキュリティのリスクがあるので、一応ダウンロードしたスクリプトの中身を確認してから実行しましょう。(2行目)

実行すると最初に、node.jsやNode-RED本体を再インストールするので、現在導入しているFlowが動かなくなる可能性がある旨の注意が表示されます。

This script will remove versions of Node.js prior to version 7.x, and Node-RED and

if necessary replace them with Node.js 10.x LTS (dubnium) and the latest Node-RED from Npm.

It also moves any Node-RED nodes that are globally installed into your user
~/.node-red/node_modules directory, and adds them to your package.json, so that
you can manage them with the palette manager.

It also tries to run 'npm rebuild' to refresh any extra nodes you have installed
that may have a native binary component. While this normally works ok, you need
to check that it succeeds for your combination of installed nodes.

To do all this it runs commands as root - please satisfy yourself that this will
not damage your Pi, or otherwise compromise your configuration.
If in doubt please backup your SD card first.

初回インストール時は関係ありませんので

Are you really sure you want to do this ? (y/N) ?

ではYを入力します。

次に、Raspberry Pi関係のノードをインストールするかどうか聞かれます。

Would you like to install the Pi-specific nodes ?

導入先はRaspberry PiですからYとすると、以下のNodeがインストールされます。(すでにnode-red-node-serialportが導入されている場合は導入済みと判断され聞かれないようです)

node-red-node-random

node-red-contrib-ibm-watson-iot
node-red-node-ping
node-red-contrib-play-audio
node-red-node-smooth
node-red-node-serialport

また、以下のスクリプトもインストールされます。


  • Node-REDのアイコンショートカット(PIXELデスクトップが有効な場合)


    • node-red-log が新しいターミナルで実行される



  • コマンドスクリプト


    • node-red-start (/usr/bin/node-red-start)

    • node-red-stop (/usr/bin/node-red-stop)

    • node-red-restart (/usr/bin/node-red-restart)

    • node-red-log (/usr/bin/node-red-log)



  • systemd スタートアップスクリプト(/lib/systemd/system/nodered.service)

  • ログローテート (/etc/logrotate.d/nodered)

  • 更新スクリプト自体 (/usr/bin/update-nodejs-and-nodered)

Would you like to install the Pi-specific nodes ?

でNとすると、標準的なNode-REDの導入となります。

導入自体はRaspberry Piの性能やインターネット回線にもよりますが、10分程度かかります。コンソールに進捗状況が表示されるので、ゆったり待ちましょう。途中でCtrl-Cで停止してしまうと面倒なことになりますので控えましょう。

All done.

You can now start Node-RED with the command node-red-start
or using the icon under Menu / Programming / Node-RED
Then point your browser to localhost:1880 or http://{your_pi_ip-address}:1880

と表示されると導入完了です。

一度このスクリプトを使ってNode-REDを導入すると、以降はupdate-nodejs-and-noderedコマンドで最新版に更新できます。(実行時に更新スクリプト自体も更新されます)


Node-REDの起動と、FlowEditorへのアクセス

初回起動は、piユーザでコンソールからnode-red-startと入力しましょう。/home/pi/.node-red 配下に各種設定ファイルが導入されます。「Raspbian Buster with desktop」で導入した場合は、Chromeブラウザで http://127.0.0.1:1880 にアクセスするとFlow Editor画面が表示されます。

「Raspbian Buster Lite」の場合は、Raspberry Pi自身でブラウザを使えませんので、同じLANに接続されたPCから http://raspberrypi.local:1880/ にアクセスします。

mDNSが有効でない場合は、Raspberry PiのLAN内IPアドレスを調べた上、 http://IPアドレス:1880/ にアクセスします。


自動起動設定

初回起動後は起動してログ出力されているコンソールでCtrl-Cで停止してもログ出力のみ停止されNode-REDは停止しません。 node-red-stop コマンドでNode-REDを停止できます。停止した後はもう一度 node-red-start で起動することができます。node-red-log でコンソールに実行中のログがtail形式(最新のログを順次表示する)となり、Ctrl-Cで停止できます。

Raspberry Piの起動時に自動的にNode-REDを起動するには、インストールスクリプトで導入したsystemdスクリプトを用います。

sudo systemctl enable nodered.service

でNode-REDが自動起動するようになります。

sudo systemctl disable nodered.service

で自動起動が解除されます。

sudo systemctl status nodered.service

で自動起動状態を確認できます。


Node-REDの設定ファイル

初回起動後、piユーザのホームディレクトリ配下の/home/pi/.node-redにNode-REDの設定ファイルが生成されます。


  • settings.js

  • flows_ホスト名.json

  • flows_ホスト名_cred.json

  • lib/


    • flows



  • node_modules/


settings.js

Node-REDの挙動を設定するファイルです。javascript言語で記載されていますが、テキストエディタで編集することで、Node-REDの動作を変更することができます。

編集後に変更を反映するためには、Node-REDを再起動( node-red-restart コマンド )する必要があります。


flows.jsonとホスト名

flows.jsonはFlow Editorで設定したFlowが永続化された初期Flowファイルです。/home/pi/.node-redにあり、Flow Editorでデプロイした際、記述したFlowがJSON形式でファイルに保存され、ランタイムによって実行されます。Node-REDの起動時には、まずこのファイルよりFlowを読み込み実行します。

settings.jsのデフォルト設定では、ファイル名はflows_ホスト名.jsonというように実行したホストのホスト名が付与されます。Raspbian標準では、Raspberry Piのホスト名はraspberrypiとなっていますので、この状態でNode-REDの初回起動をすると、/home/pi/.node-red/flows_raspberrypi.jsonというファイル名で保存されます。

Raspberry Pi設定などでRaspberry Piのホスト名を変更すると、flows_ホスト名.jsonが見つからず、初期状態の空のFlow Editorが開くことになります。せっかく書いたFlowがなくなってしまったように見えますが、古いホスト名のflows_ホスト名.jsonに保存されています。ホスト名を変更した場合はflows_raspberrypi.jsonのファイル名も変更しておきましょう。

なお、/home/pi/.node-red にある settings.js の68行目付近(Node-RED 0.20.8の場合:Node-REDのバージョンによって変わります)

//flowFile: 'flows.json',

のコメントを外す(先頭の//を消去する)ことで、Node-RED再起動後の初期Flowファイルをホスト名を含まないflows.jsonというファイル名に設定することができます。LANの設定等でファイル名を頻繁に変更する場合は、この方法で初期Flowファイル名を固定しておくとよいでしょう。


セキュリティ設定

標準インストールしただけでは、IPアドレスがわかるとだれでもFlow Editorにアクセスできます。前述したようにRaspbianではpiユーザが管理者権限をもちますので、Flow Editorからexecノードを使われてしまうと管理者権限でRaspberry Piの全操作が可能になってしまいます。まったくインターネットからアクセスできないRaspberry Piでも、最低でもログイン画面設定は実施するようにしましょう。


Flow Editorのログイン画面設定 (重要)

Flow Editorにログイン認証を設定することができます。/home/pi/.node-redにあるsettings.jsの123行目付近((Node-RED 0.20.8の場合)

    //adminAuth: {

// type: "credentials",
// users: [{
// username: "admin",
// password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
// permissions: "*"
// }]
//},

の先頭のコメントを外します。(//を消去)

password行の"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."の部分には、ダブルクォーテーションの内側の文字列をパスワード文字列から導出するハッシュ文字列で置き換えます。パスワードをhogefugaにしたい場合

cd /usr/lib/node_modules/node-red

node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" hogefuga
$2a$08$hUPzsT.Ql742RSOIHXDHH.GZFdVqvQQ9qlQZxJ8u/fQPUsy6IqMpy

のようにハッシュ文字列を導出できますので、それをsettings.js に記載します。ハッシュ文字列は実行毎に異なる文字列で、$で始まりスラッシュやドットを含む60文字になりますので、間違いないようコピーペーストします。

なお、ハッシュ文字列の導出には Bcrypt Password Generator

のようなオンラインツールも利用できますが、サイトやツールによっては生成したパスワードをクラウドへ保存するようなものありますので注意しましょう。

記載後、node-red-restart コマンドで再起動することで、Flow Editorへのアクセス時に以下のようなログイン画面が表示されるようになります。



ユーザ名はadmin、パスワードは上記で設定した元のパスワード文字列(ハッシュ文字列ではありません)を入力してログインします。

Flow Editorの認証をつけることで、Node-REDのadmin APiの利用にも認証が必要になり、ローカルLANからの攻撃を防ぐことができます。特別な理由がない限り、ログイン画面は必ず設定するようにしましょう。

なお、デフォルトでは、ログイン後7日間は再ログインすることなくFlow Editorの画面を利用できます。この期間を短くしたい場合は、adminAuth内にsessionExpiryTimeを追加し、有効期間を秒で指定します。例えば有効期限を1日(86400秒)にするには

    adminAuth: {

sessionExpiryTime: 86400,
  type: "credentials",
users: [{
username: "admin",
password: "$2a$08$hUPzsT.Ql742RSOIHXDHH.GZFdVqvQQ9qlQZxJ8u/fQPUsy6IqMpy",
permissions: "*"
}]
},

と記述します。


Flow EditorのURL変更

標準のインストール手順では、Flow EditorへのURLは前述のように http://IPアドレス:1880/ となっています。この状態だと、Node-REDを導入したホストのIPアドレスさえわかればFlow Editorにアクセスされてしまいます。また、静的コンテンツ配信時(後述)の相対パスに工夫が必要になります。

Flow EditorへのアクセスURLを変更することでFlow Editorのパスを分離することができます。

/home/pi/.node-redにあるsettings.jsの94行目付近((Node-RED 0.20.8の場合)

    //httpAdminRoot: '/admin',

の先頭のコメントを外します。(//を消去)

記載後、node-red-restart コマンドで再起動することで、Flow EditorへのアクセスURLはhttp://IPアドレス:1880/adminに変更されます。設定後、http://IPアドレス:1880/にブラウザでアクセスすると Cannot GET / 表示になり404エラーとなります。

また'/admin'を変えることでFlow Editor画面へのアクセスを任意のURLにできます。


コンテンツのアクセス認証

Node-RED を簡易WEBサーバーにするで紹介されているように、settings.jsの

    //httpStatic: '/home/nol/node-red-static/',

のコメントを外してディレクトリを設定することで、Node-REDが静的コンテンツを配信できるWebサーバになります。この機能を活用することで、Node-REDのFlowで定義した動的コンテンツを組み合わせてWebサーバを構築することができますが、その際にデフォルト設定だとLAN内からは認証なしでコンテンツにアクセスできることになります。

    //httpNodeAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},

のコメントを外して、passの後の文字列にハッシュ文字列を指定することで、Digest認証を設定することができます。ハッシュ文字列は、FlowEditorのログイン認証に設定する場合と同様、

cd /usr/lib/node_modules/node-red

node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" hogefuga
$2a$08$hUPzsT.Ql742RSOIHXDHH.GZFdVqvQQ9qlQZxJ8u/fQPUsy6IqMpy

で求めることができます。(とりあえずログイン認証と同じハッシュ文字列を設定してもかまいません)


Raspberry PiでおすすめのCustom Nodes


Custom Nodesの導入

Node-REDに標準で準備されているNodeだけでも十分に実用的なサービスが開発できますが、Node-REDには、パッケージ管理ツールnpmで開発・公開されたパッケージを読み込むことで機能拡張できるしくみがあり、一般的に「Custom Nodes」と呼ばれています。Custom Nodesの開発者がnpmにパッケージを公開すると、

Node-RED Nodesで紹介されます。

Node-RED Nodesで紹介されているCustom NodesはほとんどがFlow Editorの「パレットの管理」メニューから追加することができます。ノードを追加の検索欄にキーワードを入れることで、追加できるNodesが表示され、「ノードを追加」ボタンで追加できます。

Raspberry PiのNode-REDでも同様にCustom Nodesを追加できますが、Nodeによっては追加に時間がかかったり、エラーがでて追加できないことがあります。固有の導入方法(事前に他のソフトウェアの導入が必要など)がある場合もありますので、「パレットの管理」で導入できない場合は、Debug画面に表示されたエラーメッセージや、各Nodeのドキュメントを参照してください。


カメラ

Raspberry Piにカメラを接続する場合、Raspberry Piの基板上にあるCSI(Camera Serial Interface)コネクタに接続するか、UVC(USB Video Class)を持つカメラをUSB接続することになります。カメラをCSIに接続する場合は、デフォルトでは有効になっていませんから、「Raspberry Pi設定」の「デバイス」タブで有効にする必要があります。コンソールからはraspi-configを使って対話的に設定する(5 Interfacing Options →P1 Camera)か、

sudo raspi-config nonint do_camera 0

で有効にできます。(参照: RaspberryPi: raspi-config コマンドラインから設定(ノンイタラクティブ) )

CSIインターフェイスに接続したカメラは、

node-red-contrib-camerapiをつかってカメラの仕様設定や画像の読み込み、エフェクトなどを利用することができます。

またUSB端子に接続したUVC仕様のカメラはsudo apt install fswebcamで導入したfswebcamコマンドを使うnode-red-contrib-usbcameraをつかって画像取得ができます。


GPIO (General-purpose input/output)

Raspberry Piにはプログラムで制御できるGPIOピンが26本あります。これらのピンはそれぞれデジタル入力・デジタル出力・PWM出力に設定することで、ON/OFFの信号を入出力したり、疑似的なアナログ値を出力することができるようになり、スイッチやセンサー、サーボやブザー、LEDなどを接続することができるようになります。

Node-REDには標準でRaspberry PiのGPIOを設定・制御するNodeが導入されています。

rpi-gpio in Nodeを使うことで、GPIOピンに接続したスイッチからON/OFF値を取得できます。



接続するGPIOピンを選択して、回路に適した抵抗を選択します。


  • スイッチを3.3V端子と接続する場合は「プルダウン」を設定することで初期値0/スイッチON時に1出力

  • GND端子と接続する場合は「プルアップ」を設定することで初期値1/スイッチON時に0出力

  • 他のマイコン回路に接続する場合は「なし」を選択

さらにデバウンス時間(スイッチのチャタリングを防ぐための、入力値を確定するまでの時間)を設定します。

rpi-gpio out Nodeを使うことで、GPIOピンに接続したLEDやサーボなどを動作させることができます。



接続するGPIOピンを選択して、デジタル出力(ON/OFFを数値0/1かBoolen True/Falseで設定)かPWM出力(0-100の数値でパルス幅を指定)

できます。

なお、Raspberry PiのGPIO端子は3.3Vトレラントですから、他の電圧のデバイスは直接接続できません。レベル変換器が必要にあります。


I2C

I2C(Inter-Integrated Circuit)はフィリップ社が提唱した周辺デバイスとのシリアル通信の方式で、1台のマスターと最大112台のスレーブを2線の通信線と電源を接続するだけでで100kbit/sもしくは400kbit/sでクロック同期通信ができます。EEPROMやセンサーのインターフェイスにI2Cを採用したものが多数あります。Raspberry Piでは2つのI2Cバスを搭載していますが、そのうち一つがGPIOピン端子(SDA:3pin SCL:5pin)に配線されており、/dev/i2c-1として使うことができます。Raspbery Pi 3の場合は、i2c-gpioというソフトウェアエミュレーションしたI2Cドライバを用いて複数のI2Cバスを追加することができるようです。

Raspberry PiのGPIO端子は3.3Vトレラントですから、5Vのデバイスは直接接続できません。I2C対応のレベル変換器が必要にあります。

Raspberry Piの起動時初期設定では、I2Cバスは有効になっていません。有効にするには、DESKTOP版の場合は「Raspberry Pi設定」の「デバイス」タブでI2Cを有効にします。コンソールからはraspi-configを使って対話的に設定する(5 Interfacing Options →P5 I2C)か、

sudo raspi-config nonint do_i2c 0

で有効にできます。(参照: RaspberryPi: raspi-config コマンドラインから設定(ノンイタラクティブ) )

いずれの方法でも、設定後は再起動が必要となります。

Node-REDからI2C周辺機器を使う場合、Cusom Nodes node-red-contrib-i2cが使えます。

なお、ADRESS/Commandは、FlowEditorのパネル内で設定する場合は10進数で入力する必要がありますので注意が必要です。

また node-red-contrib-brads-i2c-nodesでセンサーmcp9808/bmp180/bmp280/bme180/htu21d/tsl2561が使えます。ほかにもI2Cデバイスに対応したCustom Nodesがありますので、デバイス名で検索してみてください。

Seeed Studioの Grove System http://www.seeedstudio.com/wiki/Grove_System のデバイスにも、I2Cを使うものがあり、3.3Vのもの はケーブルを自作することで、Raspberry PiのGPIOピンに直結して使うことができます。


その他、Raspberry PiでNode-REDを使う場合の注意点


Raspberry PiのCPUアーキテクチャによる差異

インストールスクリプト update-nodejs-and-nodered はnode.jsをバイナリインストールします。実行するRaspberry Piのアーキテクチャ(3B+/3B/2Bはarmv7l、それ以外はarmv6l)に合わせてインストールしますので、例えばRaspberry Pi 3B上でインストールスクリプトによって導入したmicroSDを、Raspberry Pi ZeroWに挿入してもNode-REDは動作しません。


どんどん更新していきます。

Raspberry PiでNode-REDを使う際に気を付けた方がいいことや、本稿の間違い等ありましたらコメントでお寄せいただければ幸いです。