お金をかけずにサーバーの勉強をしよう

光センサーで IoT(中編)

2023年3月22日

メニューへ戻る

どうしても 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でもこれで良いようです。

こんな感じですね。
GPIOノードの追加 1

画面左のノード一覧にこんなノードの絵が現れました。
GPIOノードの追加 2


このノードを使って早速フローを作ってみました。
左から以下のノードになっています。

GPIOノードの追加 3

●injectionノード
[繰り返し]に[指定した時間間隔]を選択。
[時間間隔]は2秒にしました。
GPIOノードの追加 4

●A/D converterノード
[Device]に[mcp3002]を選択しましたが、今回の回路での接続の場合は全てデフォルト設定のままで良いようです。
(回路の設計がデフォルトのピンを使うようになってるんでしょうね)
GPIOノードの追加 5

●debugノード
何も変更していません。
GPIOノードの追加 6

これでデプロイしてみました。

画面右のペインで虫のマークのアイコンをクリックすると、debugノードに届いたメッセージ(msg.payload)が表示されます。
2秒おきに更新されて、CdSセルからの値が明るさの加減で変化していくのが見て取れました。
GPIOノードの追加 7


これで Node-REDで光センサーからの値を取得することができました。


IoTでサーバーエンジニアがやること」にて、MQTTでメッセージブローカーにデータ送信するお勉強をしたので、次は AWSのエミュレーターである LocalStackの何かしらの IoTサービスに連携させたいです。

上手くできるでしょうか。


光センサーで IoT(後編)」に続きます。