今回はNode-REDをインストールします。
Node-REDインストール手順概要
今回の記事ではNode-REDをインストール手順を説明します。
また、これからNode-REDを使い続けますので、ラズベリーパイを起動するたびにNode-REDを起動するのも面倒です。そこで、Node-REDを自動的に起動するような設定も行います。
これから以下のステップでインストール&設定手順を説明します。
以下のステップ1は64-bit版のRaspberry Pi OS向けの説明になります。32-bit版の場合は手順が異なりますので、記事の後半の「ステップ1) Node-REDインストール(32-bit版)」をご参照ください(クリックするとページ内ジャンプします)。
- ステップ1
-
Node-REDをインストールします。インストール完了まで10〜20分程度かかります。
- ステップ2
-
Node-REDを起動して、正常に動作しているか確認します。
- ステップ3
-
ラズベリーパイ起動時、Node-REDが自動的に起動するように設定します。
Node-REDインストール&設定手順
それでは、早速Node-REDをインストール、設定しましょう!
ステップ1)Node-REDインストール(64-bit版)
最初にターミナルを起動します。
デスクトップ環境の場合は「LXTerminal」を起動します。リモート接続の場合はターミナルアプリでラズベリーパイにsshで接続します。
ターミナルで、以下のコマンドをコピペして実行します。
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
コマンドを入力して少し待つと、以下の最後の行にある確認があります。
raspberrypi: ~ $ bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
This script checks the version of node.js installed is 12 or greater. It will try to
install node 14 if none is found. It can optionally install node 12, 14 or 16 LTS for you.
If necessary it will then remove the old core of Node-RED, before then installing the latest
version. You can also optionally specify the version required.
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.
See the optional parameters by re-running this command with --help
Are you really sure you want to do this ? [y/N] ?
このまま継続してよいかの確認です。「y」と入力してリターンキーを押します。
続いて以下の確認があります。
Would you like to install the Pi-specific nodes ? [y/N] ?
ラズベリーパイ用の機能もインストールするかの確認です。「y」と入力してリターンキーを押します。
「ラズベリーパイ用の機能」って言われてもよくわからないですよね。
第4回のNode-RED概要の記事で説明しましたが、Node-REDではラズベリーパイのGPIO制御もできます。とはいってもこのGPIO制御はラズベリーパイに特化した機能ですので、デフォルトのNode-REDインストールセットには入っていません。そこで、ラズベリーパイ上でNode-REDをインストールするときは、追加でラズベリーパイ用の機能もインストールするか問い合わせがあります。
画面がクリアされ、インストールの状況が表示されます。ネットワーク環境によりますが、インストールは10〜20分程度かかります。
コマンドプロンプトが表示されればインストール完了です。
ステップ2)Node-RED起動
次に、Node-REDを起動します。デスクトップ環境、リモート接続での起動方法をそれぞれ説明します。
デスクトップ環境のNode-RED起動方法
Node-REDをインストールすると、ラスベリーパイメニュー自動的に登録されます。
以下のようにラズベリーパイメニューから「プログラミング」→「Node-RED」を選択するとNode-REDが起動します。
起動すると、LXTerminalのウィンドウが自動的に開き、Node-RED起動時のいろいろな情報が表示されます。
LXTerminalは、このように起動時の情報が表示される以外にも、Node-REDでデバッグするときなどにも情報が表示されます。そのため、ウィンドウは閉じずにこのままで問題ありません。なお、LXTerminalのウィンドウを閉じてもNode-REDは終了することはありません。(終了させる場合は明示的にコマンドでNode-REDを停止する必要があります)
これでNode-REDの起動ができました。
リモート接続でのNode-RED起動方法
リモート接続の場合は、ターミナルからコマンドを入力してNode-REDを起動します。
Node-REDは node-red-start
というコマンドで起動できます。なお、コマンド入力時には最後に「&」をつけるようにしてください。(「&」の前はスペースを入れても入れなくても大丈夫です)
以下のように入力します。
ユーザ名@raspberrypi:~ $ node-red-start &
入力後、Node-RED起動時のいろいろな情報が表示されます。これでNode-REDが起動できました。
ところで、「node-red-start」コマンドの最後に「&」をつけましたが、つけなくてもNode-REDは問題なく動作します。
コマンドの最後に「&」をつけると何が変わるのでしょうか。
Raspberry Pi OS(LinuxOS)では、コマンドの最後に「&」をつけると、「コマンドの処理が終了していない状態でも、すぐにコマンドプロンプトに戻ってくる」という動作になります。(「コマンドをバックグラウンドで実行する」という意味になります)
ちょっとわかりづらいですよね。そこで、「&」をつけた時とつけない時で、具体的に結果がどう変わるのか説明します。
例えば、ディレクトリの内容を表示する「ls」コマンドは、ディレクトリ内容を表示すると役割を終えてコマンドプロンプトに戻ります。
ところが、Node-REDは動作し続ける必要がありますので、「node-red-start」と入力すると以下のようにコマンドプロンプトに戻ってきません。
そこで、コマンドの最後に「&」をつけて「node-red-start &」と入力すると、Node-REDを起動したらすぐにコマンドプロンプトに戻ってきてくれます。
なお、コマンドの最後に「&」をつけてもコマンドプロンプトが表示されない場合は、リターンキーを押すとコマンドプロンプトが表示されます。
ステップ3)Node-RED自動起動設定
ステップ2でNode-REDを起動しましたが、ラズベリーパイの電源を切ったり再起動すると、Node-REDは停止してしまいます。
ラズベリーパイの電源を入れるたびに手動でNode-REDを起動しても構いませんが、面倒ですので自動起動するように設定しておきます。
自動起動の機能をONにする場合は、以下のコマンドを入力します。
raspberrypi: ~ $ sudo systemctl enable nodered.service
このコマンドを実行後、ラズベリーパイを起動するとNode-REDが自動的に起動します。
なお、デスクトップ環境でメニューから「Node-RED」を選択した場合、表示されているLXTerminalのウィンドウはコマンドプロンプトが表示されていませんので、コマンドを入力することができません。
このような場合は、以下の「LXTerminal」アイコンをクリックして、別のLXTerminalウィンドウを開き、そのウィンドウでコマンド入力してください。
また、自動起動機能をOFFにする場合は、以下のコマンドを入力します。
raspberrypi: ~ $ sudo systemctl disable nodered.service
Node-REDにアクセス
それではNode-REDが正常に動作しているか、ブラウザからNode-REDにアクセスして確認してみましょう。
Node-REDへのアクセス
Node-REDへのアクセス方法について、デスクトップ環境とリモート接続それぞれについて説明します。
デスクトップ環境でアクセスする場合
デスクトップ環境の場合は、以下のアイコンをクリックしてブラウザを起動します。
起動後、以下のURLにアクセスします。
localhost:1880
デスクトップ環境の場合、Node-RED、ブラウザともに同じラズベリーパイ上で動作しています。そのためブラウザのURLは自分を意味する「localhost」で指定します。また、Node-REDは1880番ポートになっていますので、ポート番号も指定します。
リモートからアクセスする場合
Windows、macOS、iOS、Androidなどでブラウザを起動します。
起動後、以下のURLにアクセスします。
raspberrypi.local:1880
リモート接続の場合、ブラウザのURLは接続先のラズベリーパイ「raspberrypi.local」で指定します。また、Node-REDは1880番ポートになっていますので、ポート番号も指定します。
Node-REDの接続確認
ブラウザに以下のような内容が表示されれば、Node-REDのインストール、起動は問題ありません。
新機能紹介が表示されるようになっています。新機能を確認する場合は「開始 >」ボタンをクリックしていくと確認ができますが…まだよくわからないですよね。右上の閉じるボタンをクリックすると新機能案内は閉じることができます。閉じると以下のようなNode-REDの初期画面になります。
Node-RED停止方法
Node-REDはずっと動作していますので、使わない場合は停止しておいた方がいいですよね。
Node-REDを停止する場合は、ターミナルで以下のコマンドを入力します。
raspberrypi: ~ $ node-red-stop
なお、Node-REDを自動起動している場合は、ラズベリーパイを再起動するとNode-REDが起動しますので注意してください。
それぞれの環境では、以下のようにターミナルにアクセスしてください。
デスクトップ環境で、ラズベリーパイメニューから起動した場合
現在表示されているLXTerminalのウィンドウではコマンドプロンプトが表示されません。このような場合は、LXTerminalアイコンをクリックして、別のLXTerminalを開き、node-red-stop
コマンドを入力します。
リモート接続で、ターミナルから「node-red-start」で起動した場合
現在開いているターミナルのウィンドウではコマンドプロンプトが表示されません。このような場合は、以下の手順で別のターミナルウィンドウを開き、node-red-stop
コマンドを入力します。
Windowsの場合は、「コマンドプロンプト」を起動すると別のウィンドウが表示されます。
macOSの場合は、「ターミナル」アプリのメニューから「シェル」→「新規ウィンドウ」を選択すると別のウィンドウが表示されます。
リモート接続で、ターミナルから「node-red-start &」で起動した場合
コマンドプロンプトが表示されていない場合、リターンキーを押すと表示されます。node-red-stop
と入力してNode-REDを停止します。
Node-RED制御コマンドまとめ
最後に、Node-REDの制御コマンドをまとめます。
制御 | コマンド |
---|---|
起動 | node-red-start |
停止 | node-red-stop |
自動起動ON | sudo systemctl enable nodered.service |
自動機能OFF | sudo systemctl disable nodered.service |
これでNode-REDのインストールは一通り終わりです。
以下は32-bit版Raspberry Pi OSのインストール手順の説明です。
ステップ1) Node-REDインストール&設定手順(32-bit版)
Raspberry Pi OS 32-bit版の場合、Node-REDをマウスクリックでインストールできます。
なお2022年9月時点では、Node-REDを起動するとエラーが発生します。このエラー対処の手順も併せて説明します。
ラズベリーパイOSを起動後、左上のラズベリーパイメニューをクリックして「設定」→「Recommended Software」を選択します。
「Recommended Software」では各種ソフトウエアのインストール、アンインストールができます。
左側のジャンルを選択するところで「Programming」を選択すると、右側に「Node-RED」が見つかると思います。Node-RED欄の右端にチェックボックスがありますのでチェックをつけて「Apply」ボタンをクリックします。
インストールまでしばらく時間がかかります。インストールが完了すると以下のような画面になりますので、OKボタンをクリックします。
これでインストール完了です。次のステップでNode-REDを起動してみましょう。
ステップ2)Node-RED起動(32-bit版)
Node-REDはメニューから起動できます。
以下のように右上ラズベリーパイメニューから「プログラミング」→「Node-RED」を選択します。
選択すると、以下のようにターミナルが起動して、Node-REDの起動メッセージが表示されます。
ターミナルのメッセージで、上のようにオレンジ色の文字で「Failed…」というメッセージが表示されている場合、起動に失敗しています。
このようなメッセージではなく「フローを開始しました」というメッセージが表示されいれば起動できています。その場合は、「ステップ3)Node-RED自動起動設定」に戻って作業を続けます(クリックするとページ内ジャンプします)。
起動が失敗するのは、設定ファイルの問題です。
設定ファイルには、現在のユーザアカウントの情報が書かれています。32-bit版のインストーラ場合、その設定ファイルのユーザアカウント名が「pi」になってしまっています。
おそらく現在のアカウント名は「pi」ではなく、ご自身で決めた何らかの文字列になっていると思います。
そこで、これからNode-REDの設定ファィルのアカウント名を「pi」からご自身のアカウント名に変更します。
それでは、ターミナルを起動してください。起動後、以下のようなコマンドを入力して、設定ファイルをエディタで開きます。
sudo nano /lib/systemd/system/nodered.service
コマンドを入力すると、設定ファイルが開きます。このエディタは普通のエディタのように矢印キーでカーソルが移動できます。
上から10行目ぐらいに、以下のような記述があります。
User=pi
Group=pi
WorkingDirectory=pi
これら3行に書かれている「pi」の部分を、ご自身のユーザアカウント名に変更してください。
変更できたら、「Ctrl + X」キーを押します。
以下のように「変更されたバッファを保存しますか?」と聞かれますので、「Y」キーを押します。(「変更されたバッファ」とは「変更されたファイル」という意味です)
最後に保存ファイル名の確認がありますので、以下の表示のままリターンきーを押します。
これで設定ファイルの変更は完了です。
このあと、一度ラズベリーパイを再起動してください。
再起動後、左上のラズベリーパイアイコンから「プログラミング」→「Node-RED」を選択して、ターミナルにエラーが表示されないか確認します。
インストールと起動確認ができたら、「ステップ3)Node-RED自動起動設定」に戻って作業を続けます(クリックするとページ内ジャンプします)。
更新履歴
日付 | 内容 |
---|---|
2022.5.10 | 新規投稿 |
2022.9.1 | 32ビット版Raspberry Pi OSのNode-REDインストール、エラー回避方法追記 |
いつもこのサイトで勉強させて頂いています。
質問です
ステップ1 node-redのインストールについてなのですが
node-redインストール中にエラーが出てインストールができません。
以下にその時のターミナルの画面をコピペしたものを載せます。
/*********************************ここからターミナル画面*************************************/
Running Node-RED install for user nagashima at /home/nagashima on raspbian
This can take 20-30 minutes on the slower Pi versions – please wait.
Stop Node-RED ✔
Remove old version of Node-RED ✔
Remove old version of Node.js ✔
Install Node.js 16 LTS ✘ Bad install: Node.js missing Npm missing – Exit
Clean npm cache
Install Node-RED core
Move global nodes to local
Npm rebuild existing nodes
Install extra Pi nodes
Add shortcut commands
Update systemd script
Any errors will be logged to /var/log/nodered-install.log
nagashima@raspberrypi:~ $
/**************************************************************************************************/
使用機器:Raspberry Pi 2 Model B
使用OS : Raspberry Pi OS (32bit)
ご教授いただければ幸いです。
ご質問どうもありがとうございます。
申し訳ございません。この記事の手順は64-bit版のRaspberry Pi OS向けのもので、32-bit版は説明しておりませんでした。
32-bit版のRaspberry Pi OSはマウス操作でインストールできますが、ユーザ名が「pi」以外の場合、Node-REDの起動に失敗するようです。対策も含めて以下説明いたします。なお、言葉だけでは分かりづらいので、早めにこの記事に32-bit版のインストールについてもまとめます。(手元にRaspberry Pi 2 ModelBがありましたので、同じ環境で確認しました)
32-bit版Raspberry Pi OSのNode-REDインストール方法
1) 左上ラズベリーパイアイコンメニューから「設定」→「Recommended Software」を選択
2) ソフトウエアのリストが表示されますので、右側のソフトウエアリストから「Node-RED」を探して、右側のチェックボックスにチェックをつける
3) 左下の「Apply」ボタンをクリックする
4) このあと、自動的にNode-REDがインストールされます
これでNode-REDのインストールは完了です。次にNode-REDを立ち上げますが、おそらくユーザ名を「pi」以外にされていると思いますので、以下の手順で設定を変更する必要があります。(このインストール手順の場合、Node-REDはユーザ名が「pi」であることを前提に設定されてしまうためです)
なお、ユーザ名が「pi」の場合は、この手順はスキップして、最後の方に書きましたNode-REDの起動の手順に進んでください。
以下はNode-REDの設定ファイルを変更する手順です。
5) ターミナルを起動する
6) ターミナルで以下のコマンドを入力する($はコマンドプロンプトです)
$ sudo nano /lib/systemd/system/nodered.service
7) 設定ファイルが開きます。おそらく11行目から以下の記述があると思います。
User=pi
Group=pi
workingDirectory=/home/pi
この記述を以下のように変更してください。変更方法は普通のエディタと同様、矢印キーで移動、Deleteキーで削除です。
User=ユーザ名
Group=ユーザ名
workingDirectory=/home/ユーザ名
おそらくコメント欄に貼り付けていただいたエラーログから判断すると、以下のように変更になると思います。
User=nagashima
Group=nagashima
workingDirectory=/home/nagashima
8) 変更したファイルを次の手順で保存します。
Ctrlキー + xキーを押す
保存するか確認があるので yキーを押す
書き込むファイルの確認があるので、リターンキーを押す
ここまでの手順で設定ファイルの修正ができました。
ここで一度Raspberry Pi OSをリスタートしてください。
[Node-REDの起動]
リスタート後、以下の手順でNode-REDを起動します。
9) 左上ラズベリーパイアイコンメニューから「設定」→「プログラミング」→「Node-RED」を選択
選択後、ターミナルが起動してNode-REDの起動状況が表示されます。
最後の行あたりに「フローを開始しました」と表示されれば問題なく起動しています。
ブラウザからアクセスしてみてください。
これでも動作しないようであれば、お手数ですがまたご質問ください。
(上の説明で不明点がある場合もご質問いただければと思います)
どうか動きますように!
動きました!
引き続き当サイトで勉強させていただきます
32bit版の追記とご丁寧な回答ありがとうございます。
ご連絡どうもありがとうございました!
問題なくてよかったです!