【DIY × IoT】電子工作でお風呂のセンサーを作ってみる♬

2019年12月7日DIY × IoT

お風呂を溜めている時に水量が一定まで溜まったらお知らせしてくれると嬉しいですよね!
お風呂の設備についていれば良いのですが、残念ながら私の家にはついていないので、作ってみることにしました。

この記事では、電子工作で「お風呂センサー」を作るための要件定義と実現方法を書いていこうと思います。

どんなお風呂センサーを作るか!

スポンサーリンク

開発の工程における「要件定義」というやつです。お風呂センサーといってもどんなものを作るか少し具体的にしてみます。

  1. お風呂の水位を測る
  2. 一定の水位になったらスピーカーで音を鳴らす
  3. お風呂を溜めている間をキッチンで作業していたり、リビングで子ども達と遊んでいるのでスピーカーはリビングに置ける方がいい

これくらいまで具体的になるとどんなものってイメージが湧いてきます。
イメージが湧いたところで図にしてみます。

課題だなと思っていたところが水位をどうやって測るかでした。
図を見ると明らかですが、水位が【ここ】まできたら!の【ここ】に水分を検知するセンサーを垂らしてそこまで溜まったらBluetooth通信で離れた機器に通知して、音を鳴らす仕組みにしています。

音はわかりやすい音がいいかなと思います。理想は「お風呂が沸きました♪」と鳴ると面白いですね(^^)

材料を揃える

イメージに沿って材料をリストアップしていきます。
まずは水分を検知するセンサー、センサーからBluetooth通信を受け取るマイコン、マイコンから音を出すスピーカーと超ざっくり材料を見積もっていきます。(もちろん後から詳細に落とし込みます)

  • 水分を検知するセンサー
  • センサーからBluetooth通信を受け取るマイコン
  • マイコンから音を出すスピーカー

水分を検知するセンサー

水分を検知するセンサーにはこちらを使用しました。
土壌センサーなので、普通は家庭菜園だったり観葉植物を育てる際の土壌水分を測るのに利用するのが正しいのでしょうけど、水分が測れればよいので十分でしょう。

【仕様】
動作電圧:3.3-5.5 VDC 
出力電圧:0-3.0VDC
インタフェース:PH2.0-3P 
寸法:98mm x 23mm 

ただこのセンサーにはBluetoothで通信する機能はない(だいたいどのセンサーにも無いと思います・・・)ので、センサーとマイコンを物理的に導線でつないでマイコンからマイコンにBluetooth通信を行う必要がありそうです。

センサーからBluetooth通信を受け取るマイコン

Bluetoothで通信を行うためにはマイコンとその機能(今回で言えばBluetooth通信機能)をサポートするモジュールを持っている開発ボードが必要となります。

かと言ってそのためにArduinoやRaspberry Piを使うのはコスト的に痛いです(>o<)
((2019/10/06時点)Arduino Unoで¥3,300、Raspberry Pi 3Bで¥5,995)

サイズ感も小さくしたいので、値段も安く、小さい開発ボードを探しているとESP-32モジュールを見つけました。

amazonで2個セットで売っていたのでスピーカーとつなぐマイコンと水分検知センサーとつなぐマイコンに使用できるし値段をお手頃でちょうど良いかと思います。

マイコンから音を出すスピーカー

音を出すためのスピーカーです。
後述のアンプモジュールをつなぐことで音源をスピーカーから出力することができます。

赤と黒の導線に電気を流せば、音が出るw
ただ電流を流すだけだとノイズのような音しか鳴らない(鳴ればいい方w)

音の情報をスピーカーに伝えるオーディオアンプモジュール

コンピュータから音源の信号を入力し、スピーカーに出力する装置です。
中で色々とやってくれているんですねー( ͡° ͜ʖ ͡°)

購入して届いた時にはピンがハンダ付けされていない状態でした。
ハンダ付けをやるところからスタートだったので、電子工作やってる感が出ますねw

開発環境

スポンサーリンク

材料が揃ったら、基盤に付けて導線で繋いだら終わり・・・というわけではありません。
水位センサーから信号をキャッチし、お湯が溜まったかどうかを判定する。
お湯が溜まったと判断したら、アンプに音源の信号を送り、スピーカーから音源を出力する。
これらは全てマイコンにプログラムを書き込んで動かします。そのために、プログラムを記述し、マイコンに転送する環境を整えます。

Arduino IDE ( 統合開発環境 ) をインストール

ESP-32はArduino IDEという開発環境を使って開発することができるようです。
Arduino IDE ( 統合開発環境 ) はプログラミング用のエディタとマイコンに転送する機能を提供してくれるツールですのでこちらを使って開発していこうと思います。

インストール方法についてはこちらの記事を参考にさせていただきました。
https://www.mgo-tec.com/arduino-core-esp32-install

配線を検討するためのブレッドボードとジャンパワイヤー

電子工作と言えば、イメージしやすのが「配線する」「ハンダ付け(ハンダゴテを使って結線する)」ではないでしょうか?
実際、マイコンで作ったプログラムはピンから導線と通って電気信号を送ることで、電子部品を動かすことができます。

ですが、どこにどう繋いだらいいのかわからない状態では、「ハンダ付け」でいきなり結線というのも中々勇気がいります。
そこでブレッドボードとジャンパワイヤーを使います。

ブレッドボードはソケット(穴)に部品を差し込むだけで電子回路の試作・実験ができるもの、ジャンパーワイヤーは導線です。

ブレッドボードの使い方についてはこちらの記事を参考にしてください。
https://denshi-kousaku.nazotoki-k.com/kiso/eic-801.htm

おわりに

この記事は以上でおわりです。

こんなのあったらいいなー!という発想から要件を固めてみたのですが、実際のソフトウェア開発でも同じようなことをやっているなーと改めて実感します。

この後は実装ということで、配線作業とプログラミングの工程に入っていくわけですが、そこでも予想しなかった課題がありそうな気がします。