IoTなお風呂水位センサーを作ってみた話

作ったもの

スマホと連携して、温度と水位検知をしておしらせしてくれるIoTデバイスを作りました。ケースのタッパーがプロトタイプ感がたっぷりですが、一応機能してくれています。

IMAG0205.jpg

お風呂を便利に快適に貯めれるようにしようとした、お風呂ハックです。

去年の夏頃に、欲しくて少しずつ部品を集めて作ってました。

IoTLTで登壇してきました

このデバイスを引っさげて、IoTLTへ登壇した時の様子はこちらです。

#IoTLT vol.38で登壇してきました

こちらでは作ったときの具体的な様子を背景含めてまとめていきます。

太陽熱温水器について

もともと家にはガス給湯器がありますが、太陽熱温水器という設備も入れています。もう10年以上利用して二代目です。価格は安価なタイプで導入で約20万円ぐらいです。

太陽熱温水器 - Wikipedia

安くて良いことは結構ありますが、安さなりに面倒なところもあります。お湯張りが自動で出来ない点です。あと単水栓なのでお水を入れて温度調整も必要です。

お風呂掃除してお風呂を貯めるまでが30分ぐらいかかるので、割りと時間の節約出来ないかなと思ってました。色々解決方法はあるのですが

解決方法はあるものの

古典的な方法としては、お湯を溜めながら時間を見計らって止める方法。方法というか、ただお風呂を早く入りたくて待っているだけの人になります。

もちろんそれでも良いのですが、自分は後風呂派なのでこれは論外です。

次に、時間を測りつつタイミングを見て見に行く方法。これは上と大して変わらないのですが、最低限お湯がたまる前までは無視できるので悪くはないです。が時間を見て止める方法と対して変わらない。

最後に、水位センサーや自動水栓が付いた製品を買う方法。こういった製品が昔からあります。

水位センサーはこういったものです。実は同じ製品がありますが、温度センサー部分が壊れてただの水位センサーです。便利ではありますが。

オリエント 湯温計付 バスアラーム 1003
B003DZI9SY

ASIN : B003DZI9SY
Amazonで詳しく見る
Powered by Amazon Quick Affiliate (JP)

次に、定量の水を出した後に自動的に止水してくれる製品。これも良いのですが単水栓の温水器なので水と温度の面倒を見る必要があるので、何も考えずにほっておくことが難しいです。

カクダイ バスぴたり2 2111
B001ULBQBU

ASIN : B001ULBQBU
Amazonで詳しく見る
Powered by Amazon Quick Affiliate (JP)

IoT的に監視できる装置を作ってみた

理想

ということで、理想を考えてみると

  • お湯と水を最適な温度に保ちつつ
  • お湯が一定の水位に溜まった水栓(蛇口)を締めてくれる
  • お風呂がたまったことをスマホなどにお知らせしてくれる(ブザー音うるさいのでそれが良い)

なのですが、水栓を開け閉めする手段で良さそうな方法がなかなか見つからなかったです。

最初に思いついた方法は「電磁バルブで水栓を操作」する方法で、こういった製品を見つけたものの

【ノーブランド品】AC110V 電磁弁 直動式 圧縮空気 水 水空気 1/2インチ
B00R483AYE

ASIN : B00R483AYE
Amazonで詳しく見る
Powered by Amazon Quick Affiliate (JP)

電磁弁 水空気のため 圧縮空気用 (DC12V 4D(パイロット式))
B00JFUAFME

ASIN : B00JFUAFME
Amazonで詳しく見る
Powered by Amazon Quick Affiliate (JP)

大抵どれも 100Vを扱う製品ばかりで、素人+お風呂場で100Vだと電気風呂というレベルではないです。12Vだとどの程度の水圧に耐えれるかわからなかったです。そもそも防水化が課題だったので諦めてます。

怖いので現実的になる

ということで少々怖い部分を諦めて、温度と水位を監視できて、かつスマホで見れるようにしてみました。

温度センサーはこういったものを利用しました。Arduino界隈では定番らしいです。防水処理されているのも良かったです。

WINGONEER防水デジタルサーマルプローブまたはセンサーDS18B20
B01DCY9G0K

ASIN : B01DCY9G0K
Amazonで詳しく見る
Powered by Amazon Quick Affiliate (JP)

水位センサーは、電極タイプを最初考えていましたが、扱いが面倒な気がしてパスしました。(お風呂近くにこんなものをおいておくと家族に不審がられるので)

WINGONEER 5pcs土壌湿度計湿度検出水センサーモジュールYL-69 Arduino用センサーとHC-38モジュール
B01H6WK51I

ASIN : B01H6WK51I
Amazonで詳しく見る
Powered by Amazon Quick Affiliate (JP)

他にも、静電容量タイプ?や超音波センサーも考えてみましたが、Amazonで探索してると「フロートスイッチ」なるスイッチを発見しました。水位に達すると浮きが上がって磁気を使ってスイッチ(多分リードスイッチ?)するものらしいです。

水位センサー,SODIAL(R) 5xZP4510液体水位センサー垂直フロートスイッチ
B01EZGSVZK

ASIN : B01EZGSVZK
Amazonで詳しく見る
Powered by Amazon Quick Affiliate (JP)

こちらなら、水まわりでも安心して使えるはずです。(ケーブルがそのまま出ているように見えますが、見たところシリコンらしいものでシーリングされていました。)こちらを採用してみました。

最後に、必要なボードやスマホ連携ですが、スライドに載せたので箇条書きにしておきます

  • 利用ボード:Adafruit Feather 32u4 Bluefruit LE - スイッチサイエンス
  • BLEが搭載されているArduino互換ボード
  • (BLEでちょっとした実験がしたかったので買ってみたものの間違えてしまったので寝かされてたもの)
  • 比較的低消費電力。標準でリチウムポリマーバッテリー向けの端子がついてるので合うものを使えば、電力については心配なさそう
  • 後述するBlynkとBLEベースでデータのやり取りが可能
  • スマホ連携:Blynk ブリンクと呼ぶそうです
  • スマホアプリ。iOS, Android両対応
  • Arduino, Arduino互換, Rasperry Piシリーズなどのボードと連携可能
  • スマホとはWifi, Bluetooth, BLEなどの通信規格を使って接続します
  • アプリ内で、表示や操作するウィジェットと呼ばれるパーツを並べて、ボードと連携させる
  • ボード側では専用のライブラリを読み込むことで連携可能
  • 参考にさせてもらったブログ:Adafruit Feather 32u4 Bluefruit LE 動かしてみた | Home Made Garbage
  • バッテリー:リチウムイオンポリマー電池400mAh - スイッチサイエンス
  • バッテリーの電源供給のオンオフスイッチ:ON/OFFスイッチ付き JST PH型2ピン延長ケーブル - スイッチサイエンス
  • バッテリーをそのまま繋いでおくと、電池を完全に使い切ってしまうので、手動スイッチも入れた
  • その他
  • ブレットボード
  • ブレットボードで使うジャンパーワイヤー
  • センサーやスイッチ用に使う抵抗(プルアップ抵抗と呼ばれている、確実にスイッチのオンオフをさせるための手法で使います。必要性はちょっとわからず)

以上の部品を使って装置の配線を書くとこうなります。温度センサーのつなぎ方が間違ってるかも知れなくてちょっと自信がない。

32u4_ofuro_sensor_ブレッドボード.png

出来上がった試作の様子とBlynk連携はこう出来ました。

IMAG0204.jpg

Blynkは、センサーの値を元にイベントを発火させる機能もあります。通知機能と連携させることも出来ます。例えば写真のようにフロートスイッチのオンオフで通知を出すことも出来ますし、温度が指定値以上に上がった場合に警告を出す事もできます。

https://docs.blynk.cc/#widgets-other-eventor

ボードに書き込んだコードも上げておきます。Blynkで使うときに、API連携として認証用の認証トークンが必要になります。Blynkアプリ上で生成することが出来ます。

iot_ofuro_sensor

防水対策を考える

というわけで、ブレットボードで仮組みをしてスマホ連携も出来ましたので、お風呂場に持っていきたいところですが、そのままだと 電気風呂(byちゃんとく先生) の二の舞いになってしまいます。

低消費電力だけど事故は怖い(´・ω・`)

なので、むき出しにしないようなケースを考えてみましたが、ここまでで割りとお金をかけてしまったのでケースはチープな方法を考えていましたが、100円ショップの食品を入れるタッパーがちょうどよかったのでそれを採用しました。

IMAG0196.jpg

タッパーから黒いものが2つ出ていますが、これはケーブルグランドと呼ばれる、ケーブルをケースから出す口です。防水タイプのもので、ケーブルの幅の間で口をねじって調整することで防水化させることが出来ます。これ一つ150円でした。ケース以上に金かかってる。。

また、ケースとケーブルグランドの固定は、最初はシリコンタイプの接着剤をベタベタ付けていましたが、すぐに外れてしまったので、標準で対応しているナットを別途購入して、更にシリコンパテ(ちょっと前から気に入って使ってる Sugru )を使ってシーリングしました。これで防水テストをした様子がこれです。

IMAG0200.jpg

IMAG0201.jpg

1分ほどタッパーケースを水中に埋めてみましたが、特に水漏れらしいものもありませんでした。これなら多少水がかかっても心配ないかな?

完成

こうして、紆余曲折しつつ割りと使えるものが完成しました。

IMAG0205.jpg

中にブレッドボードがそのまま入ってるのがなかなか乙なものだと思います(よくよく考えたら恐怖画像ですね)

利用している様子がこれです。お風呂の蓋に本体を置いて、吸盤を結束バンドで無理やり付けたフロートスイッチをほしい水位の位置に固定。温度センサーも防水なので水の中に突っ込んでもさして問題ないです。

IMAG0215.jpg

写真では撮り損ねてますが、お湯と水での温度調整は、風呂桶に一時的に両方を入れて温度センサーを入れてから、スマホのBlynkアプリで表示している温度情報を見ながら調整しています。

すぐに温度が見えるわけではなくて20秒ぐらい落ち着くのを待つ必要がありますが、きれいに温度を出してくれるので便利に使えてます。

Screenshot_20180413-000621.png

その後に浴槽に温度センサーを入れて、お湯をためながら温度もリアルタイムで見れるようになってます。温度高すぎたら水を調整し直せます。

まとめと今後

というわけで、IoTLT vol.38 のネタの裏側でした。本来は全自動が目的だったので、まだこれからやれることがある状態を残したままながら、それなりに便利に扱えるようになったので、楽しみつつチャレンジできるかなと思ってます。

IoTLTの懇親会では、蛇口をどうにかする蛇口IoTについてのアイディアをいただきました。箇条書すると

でした。蛇口を開け閉めする方法としては、レバー式が一番やりやすそうです。ただ水栓ハンドルは他にも色々あるようなので、もう少し見回って考えてみます。(こういうときにモノタロウ見るのが便利そうですね)

後、水とお湯をちょうどよく入れる手段も、温度センサーがあるので値を見ながら水栓を動かして調整するなどできると良いかもしれません。

監視用のボード類周りはもっと小型軽量のケースに入れ込みたいのと、現在は長めのケーブルにしているフロートスイッチを、ケースに直付けして吸盤固定できるようにすると扱いが楽な気がします。 監視用の装置を中継にして、蛇口IoTを単独で動かす+無線通信などで連携できると面白いかもしれません。

色々とまとめてみました。蛇口IoTは具体的な形がまだ思いつかないのでかなりチャレンジ感があるのですが、達成してみたい目標でもあるので、頂いた応援を糧にして取り組んでみようと思います。

スポンサードリンク

About Me

Pythonとガジェットとモノづくりが好きな人の日々の備忘録。

スポンサードリンク