Raspberry PiでNode-REDをはじめよう
Getting Started with Node-RED on Raspberry Pi
Raspberry PiでNode-REDを始めましょう。Node-REDは、IoT(モノのインターネット)アプリケーションを構築する、ビジュアルプログラミングのための強力なオープンソースツールです。このチュートリアルでは、Node-REDとは何か、インストール方法、そしてビジュアルインターフェースを使用して簡単なフローを作成する方法について説明します。
前提条件
Raspberry Piに詳しい方、OSのインストール方法を知っている方、PiとのSSH接続を確立する方法を知っている方を想定しています。まずは、以下のチュートリアルを見てみてください。
Node-REDとは?
Node-REDは、プログラミングコンポーネントを簡素化することを目的としたIoT(モノのインターネット)アプリケーション構築のための強力なオープンソースツールです。
Node-REDはWebブラウザ上で動作し、ノードと呼ばれるコードブロックを繋いでタスクを実行するビジュアルプログラミングを採用しています。ノード同士を配線したものをフローと呼びます。
なぜNode-REDは優れたソリューションなのか?
- Node-REDはIBMによってオープンソースとして開発されました。
- Raspberry Piは完璧にNode-REDを動作させます。
- ビジュアルプログラミングツールであるため、より多くのユーザーがアクセスできるようになっています。
- Node-REDを使えば、数え切れないほどの時間を費やしてコードを書くよりもよりも、クールなものを作るのに費やすことができます。
Node-REDで何ができるのですか?
Node-REDを使うと、以下のことが簡単にできます。
- RPiのGPIOにアクセスする。
- 他のデバイス(Arduino、ESP8266、ESP32など)とのMQTT接続を確立する。
- プロジェクトのための応答性のよいグラフィカルユーザーインターフェースを作成する。
- サードパーティーのサービス(IFTTT.com、Adafruit.io、ThingSpeak、Home Assistant、InfluxDBなど)と通信することができます。
- ウェブからデータを取得する(天気予報、株価、電子メールなど)。
- タイムトリガーイベントを作成する。
- データベースからのデータの保存と取得
Node-REDのフローとノードの例を集めたライブラリです。
Raspberry PiにNode-REDをインストールする
Raspberry PiとSSH接続を確立し、以下のように入力するとNode-REDがインストールされます。
bash < (curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Node-REDは、Raspberry PiのOS(32bit)にデフォルトでインストールされています。
しかし、先のコマンドを実行して必要なパッケージをインストールし、最新のバージョンにアップデートすることをお勧めします。
このことを知らせるメッセージが表示されます。
『Y』を押し、『Enter』を押して了解します。
なお、Raspberry Pi OS (64bit)では、Node-REDはデフォルトではインストールされません。
次に、”Pi-specificノードをインストールしますか? (Would you like to install Pi-specific nodes?)” と聞かれます。
『Y』を押し、『Enter』を押します。
Node-REDのインストールに数分かかります。
インストール終了時、Terminalウィンドウに、以下に示されるようなメッセージが表示されます。
Node-REDの設定
インストール後、初期設定を行うことをお勧めします。
以下のコマンドを実行してください。
node-red admin init
- /home/pi/.node-red/settings.js にNode-REDの設定ファイルを作成するため『Enter』を押します。
- ユーザーセキュリティの設定を行いますか? Yes。
- ユーザー名を入力し、『Enter』を押します(後で覚えておく必要があります)。
- パスワードを入力し、『Enter』を押します(後で覚えておく必要があります)。
- 次に、ユーザーの権限を定義する必要があります。
ここではフルアクセスを設定します。
フルアクセスオプションが青くハイライトされていることを確認し『Enter』を押します。 - 必要であれば、異なるパーミッションを持つ他のユーザーを追加することができます。
ここでは、1人のユーザーを作成します。
後でいつでも他のユーザーを追加することができます。 - プロジェクト機能を有効にしますか? 『No』。
- フローファイルの名前を入力します。
『Enter』を押すと、デフォルトの名前であるflows.jsonが選択されます。 - 認証情報ファイルを暗号化するためのパスフレーズを入力します。
パスフレーズとは何かについては、こちらをご覧ください。 - エディターのテーマを選択します。
『Enter』を押してデフォルトを選択するだけです。 - もう一度『Enter』を押すと、デフォルトのテキストエディタが選択されます。
- 外部モジュールを機能ノードが実行することを許可しますか? 『Yes』。
Node-REDの設定に成功しました。
設定はすべてsettings.jsに保存されます。
Node-REDの起動
以下のコマンドを実行し、Node-REDを起動します。
node-red-start
Terminalに同様のメッセージが表示されるはずです。
ブート時にNode-REDを自動起動する
Piの起動時にNode-REDを自動で実行するには、以下のコマンドを入力する必要があります。
このコマンドにより、Raspberry Piの電源が入っているあいだ、Node-REDが実行されることになります。
sudo systemctl enable nodered.service
ここで、自動起動が有効になるように、Piを再起動します。
次にRaspberry Piが再起動したときには、すでにNode-REDが起動しているはずです。
sudo reboot
起動時の自動起動を無効にしたい場合、以下のコマンドで変更することができます。
sudo systemctl disable nodered.service
インストール方法の詳細については、公式ドキュメントをご確認ください。
Node-REDにアクセスする
Node-REDはポート1880で動作しています。
Node-REDにアクセスするには、ブラウザを開き、Raspberry PiのIPアドレスの後に:1880を入力します。
例えば、以下のようになります。
192.164.1.106:1880
Raspberry PiのIPアドレスを取得するためには、以下のコマンドを実行します。
hostname -I
WebブラウザでRaspberry PiのIPアドレスの後に:1880を入力すると、Node-REDのログインページにアクセスできます。
事前に設定したユーザー名とパスワードでログインします。
これで、Node-REDにアクセスできるようになりました。
フローの構築を開始することができます。