水漏れセンサーシステム作成 <その3 システム検討 WROOM-32 使用>
とある依頼で、雨水センサーを使った検知システムを作成することになりました。
前回、雨センサーモジュールの動作確認しました。追加で話を聞いたところ、オフラインで以下を達成すればよいとのこと。実現したい内容は以下です。
- 検知したいエリアが8箇所ある。(追加で後から2本つける)
- ブザーで知らせてほしい
- ブザーボリュームを付けてほしい
システムとしては、GPIOでセンサーの出力を監視して、水検知の出力があればブザーを鳴らすというシンプルなシステムです。メイン基板ですが、有線でのネット通信のためにNanoPiNeoにしようと思っていたのですが、ネットワーク不要になったので、WROOM-32でやることにしました。
WROOM32はGPIOが21あるので、センサーI/O で10, ブザー I/Oに2、 ボタンI/Oに1 で、13個+αくらいなので、入力の数は問題ないですね。
ブザーに関しては、Arduino のToneライブラリで圧電スピーカーを使います。
ボリュームは可変抵抗か切り替えSWで抵抗の値を変更することで実現します。
ここで追加で考えたのが
- 反応したエリアがわかるようにする。
と水漏れを検知してから場所を特定できていいのではないか、ということで、通知の方法を考えました。
方法としては以下の二つを考えました。
- LEDをセンサー数分、並べる。
- LCDで通知する。
1のLEDを並べる方法ですが、センサーが10あるので、LEDとセンサーI/OでGPIOのポートが足りなくなりますね。
これでやる場合は、LEDコントローラーを使うか、、GPIOをまとめてI2C出力する GPIO expander を使う、という手があります。。ぱっと思い浮かんでスイッチサイエンスさんのボード(864円)を買ってきました。よくよく調べると秋月にも同じようなチップがあって、こちらはかなりお安い100円ですね。
2のLCDの方はI2Cでこれまたスイッチサイエンスさんのボードがあるので、これを使えばよさそうです。
ということでセンサー以外でシステムに使用するパーツとしては以下のものでシステムを組みます。
- WROOM-32
- 圧電ブザー
- 可変抵抗 or 切り替えSW
- ボタン
- GPIOエクスパンダー
- LCD
今回、基板は起こさないので、モジュールなど使用して生基板にまとめて作成しようと思います。
作成するシステム全体の構成としては、
- コントローラ部は室内
- センサーは室外
となる条件なので、センサーからのケーブルは一旦、中継のハブでまとめてからコントローラにつなぐことにします。
次回はソフトウェア関係のライブラリやシステム動作になりそうです。