Raspberry Piをゲートウェイの役割を持たせるために,Node-Redのセットアップを行います
ターミナルを起動し,下記のコマンドを入力します.
aptコマンドで,開発に必要なパッケージをインストールします.
$ sudo apt install build-essential git curl
Node-Redのインストールを行います.
$ bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
以下の2つの質問があります.
Are you really sure you want to do this ? [y/N] ?
Would you like to install the Pi-specific nodes ? [y/N] ?
いずれも y
と入力してインストールを継続します.
$ node-red-start
同一ネットワーク内からブラウザで,http://[Raspberry PiのIPアドレス]:1880 でアクセスします.
終了はターミナルで Ctrl+C
キーを押し,tracebackを停止します.
しかし,バックグラウンドで起動し続けているので, node-red-stop
コマンドを入力します.
$ node-red-stop
Node-REDは,Flowエリアにノードパレットからノードをドラッグ&ドロップし,ノード間をつなぐことで機能を組み立てていきます.
Raspberry Pi へMQTTブローカー機能を追加する.
利用ライブラリは以下
- node-red-contrib-aedes
- node-red-contrib-aedes (node) - Node-RED (nodered.org)
$ cd ~
$ cd .node-red
$ npm install node-red-contrib-aedes
$ cd ~
ターミナルで node-red
コマンドを入力して起動する
$ node-red-start
フロー内にAedes MQTT broker
ノードを追加しDeploy後,ブローカが正常に起動すればターミナルにmqtt://~~と表示される
6 Jul 11:59:28 - [info] Starting flows
6 Jul 11:59:28 - [info] Started flows
6 Jul 11:59:28 - [info] [aedes broker:5c318b9b.0588e4] Binding aedes mqtt server on port: 1883
6 Jul 11:59:29 - [info] [mqtt-broker:e345b3f7.76475] Connected to broker: mqtt://localhost:1883
データフローは下図となる.今回はTopicを [device_id]/bme
とし,ESP32がpublisherとなりデータの送信を行い,node-red側のsubcriberノードを用いてデータの取得を行う.
ブラウザで http://[node-red IP-address]:1880
へアクセスする.
- MQTT Broker
- デフォルトのままでOK
- mqtt in
- server
localhost:1883
- topic
[device_id]/bme
- 画像では,
device01/bme
となっている.
- 画像では,
- server