どうしても IoTしたいので光センサを作りました
「光センサーで IoT(前編)」にてちゃんと光センサーを作ってラズパイに繋げてセンサーからの値を取れるようにしました。
次に Node-REDで同じように値を取るようフロー(と言ってもノーコード)を作ってみます。
Node-REDには今回使っている A/Dコンバーターの MCP3002という ICから SPI(Serial Peripheral Interface)機能を通して値を取る専用のノードが提供されているんですね。
このように特定のハードウェアに対応したノードが作られているのが Node-REDの良い所です。
Node-REDには予め[node-red-node-pi-mcp3008]というノードを追加しています。
3008という名称ですが、説明文に 3000シリーズとありますので、3002でもこれで良いようです。
こんな感じですね。
画面左のノード一覧にこんなノードの絵が現れました。
このノードを使って早速フローを作ってみました。
左から以下のノードになっています。
- injectノード
- A/D converterノード
- debugノード
●injectionノード
[繰り返し]に[指定した時間間隔]を選択。
[時間間隔]は2秒にしました。
●A/D converterノード
[Device]に[mcp3002]を選択しましたが、今回の回路での接続の場合は全てデフォルト設定のままで良いようです。
(回路の設計がデフォルトのピンを使うようになってるんでしょうね)
●debugノード
何も変更していません。
これでデプロイしてみました。
画面右のペインで虫のマークのアイコンをクリックすると、debugノードに届いたメッセージ(msg.payload)が表示されます。
2秒おきに更新されて、CdSセルからの値が明るさの加減で変化していくのが見て取れました。
これで Node-REDで光センサーからの値を取得することができました。
「IoTでサーバーエンジニアがやること」にて、MQTTでメッセージブローカーにデータ送信するお勉強をしたので、次は AWSのエミュレーターである LocalStackの何かしらの IoTサービスに連携させたいです。
上手くできるでしょうか。
「光センサーで IoT(後編)」に続きます。