今回はNode-REDをインストールします。
Node-REDインストール手順概要
今回の記事ではNode-REDをインストール手順を説明します。
また、これからNode-REDを使い続けますので、ラズベリーパイを起動するたびにNode-REDを起動するのも面倒です。そこで、Node-REDを自動的に起動するような設定も行います。
これから以下のステップでインストール&設定手順を説明します。
- ステップ1
-
Node-REDをインストールします。インストール完了まで10〜20分程度かかります。
- ステップ2
-
Node-REDを起動して、正常に動作しているか確認します。
- ステップ3
-
ラズベリーパイ起動時、Node-REDが自動的に起動するように設定します。
Node-REDインストール&設定手順
それでは、早速Node-REDをインストール、設定しましょう!
ステップ1)Node-REDインストール
最初にターミナルを起動します。
デスクトップ環境の場合は「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 |
更新履歴
日付 | 内容 |
---|---|
2022.5.10 | 新規投稿 |