Node REDのサンプルプロジェクトです。(ラズパイZero WHにて実験)
dockerを使用したNode REDです。
https://nodered.jp/docs/getting-started/docker
- dockerをインストールします。
https://docs.docker.com/engine/install/raspberry-pi-os/ - リポジトリをクローンします。
$ git clone https://github.com/taogya/NodeRedSample.git
$ cd NodeRedSample/
- Node REDを起動します。(node-red-dashboard が既に含まれています)
$ cd docker
$ mkdir data
$ sudo systemctl enable docker
$ sudo docker compose -f "docker-compose.yml" up -d
- サーバーのIPを確認します。
$ ifconfig | grep inet | cut -d: -f2 | awk '{ print $2}' | grep -vE "^(127\..*|172\..*|\s*)$"
192.168.137.147
- ラズパイはWi-Fiに接続しています。
同じネットワーク内にあるパソコンから以下にアクセスします。
http://192.168.137.147:1880
vcgencmd
コマンドを使用して温度を取得します。
タイムスタンプと温度を文字列でNode REDにTCP送信します。(localhost:1881)
Node REDは受信したデータをチャートに表示します。
- Node Red側へ1秒周期に温度をTCP送信する以下のコマンドを実行します。
$ while true
do
temperature=$(vcgencmd measure_temp | cut -d= -f2 | cut -d\' -f1)
timestamp=$(date +"%Y-%m-%d %H:%M:%S")
echo -e "$timestamp,$temperature"
echo -e "$timestamp,$temperature" | nc -q 1 localhost 1881 -v
sleep 1
done
- Node REDを開き右上読み込みから以下ファイルを読み込みます。
raspi_sample_nodes.json
- 右上にあるデプロイをクリックします。
- 以下URLを開きます。
http://192.168.137.147:1880/ui
Note
Node REDを停止する場合は以下を実行します。
$ docker compose -f "docker-compose.yml" down