IoTLT Vol46 蛇口IoTの裏側

2019-03-19(Tue) DIY

2018年の終わりに開催されたIoTLT Vol46へLT登壇してきました。その時の様子はこちらです。

IoTLT Vol46に登壇してきました - まったりlog残し

ここでは、そのときに話をした蛇口IoTの道半ばの様子と今後を描いてみます。今年こそは完成形を目指そうと思ってるので、頑張るためにも現状をまとめたくてまとめました。

蛇口IoTやろうとして道半ばの話

登壇時の状況だと、蛇口を電気的に操作する仕組みだけできた状態でした。そこから止まっている状況ですが、本当は遠隔操作まで実装するところまでを目標にしています。

また、蛇口の操作じゃなくないか?なのですがwこれはスライドにも載せた事情で、蛇口自体の物理的な操作に対して機械的な処理を入れるのは難しいと思ってます。水栓自体の操作には力が必要で実現するには12V以上で動くモーターが必要と思われますし、水栓自体を変える案も実家では厳しかったのもあります。

なので後付けにしました。後付けのアイディアは昔からあってLTでも灯台下暗し的な話をしたように、製品もあります。

【WEB限定販売】バスピッターL B023LG - 散水機のタカギ《公式》

これを超える必要がありますが、まあ通知できるようにすればこえてるでしょ?という安易な考えのもとスタートしました。安易なのと年末の忙しさに忙殺された結果、発表時のクオリティとなりました(汗)

製作の様子

マウンターの製作

やろうとしてから利用するものは決まっていたので、あとは実際にできるか試すだけです。つまりコック付きのホースジョイントのコックをサーボモーターで回すだけ。これをまずは強引に手で押し付けて回るかチェックしてみると

View this post on Instagram

とりあえず防水サーボを6V供給で回せることはわかった。 #arduino

hrsano645さん(@hrs_sano645)がシェアした投稿 -

View this post on Instagram

蛇口IoTの第一歩。かなり適当だけど、このぐらいの大きさのサーボでも動くらしい。次は水圧をかけてやらせてみてどうかだな。 #arduino

hrsano645さん(@hrs_sano645)がシェアした投稿 -

View this post on Instagram

蛇口IoTの試作を水道で試してみたけどこれで行けそう。 #iotlt

hrsano645さん(@hrs_sano645)がシェアした投稿 -

このサーボモーターでも動くことがわかったので、ホースジョイントとサーボモーターを無理やり固定するマウンタを作りました。

View this post on Instagram

まだ道半ば。 寝るまで3Dプリンタ動かして作ります #iotlt

hrsano645さん(@hrs_sano645)がシェアした投稿 -

View this post on Instagram

もうこれで良くないか?w #iotlt

hrsano645さん(@hrs_sano645)がシェアした投稿 -

マウンタはOpenSCADを利用して3Dモデルを作成しSTLファイルを作ってから、部屋に塩漬けされていた3Dプリンターを使って作りました。

OpenSCAD - The Programmers Solid 3D CAD Modeller

OpenSCADは3Dモデルをプログラミングして作るためのCADです。scadファイルとこのアプリがあれば誰でも同じものがさわれますし、改造もコードを変更するだけです。最初は扱いに苦労してましたがある程度のパターンがわかってくると作りやすく感じました。

完成したものはこちらです。実際に持って行ってひたすら動かしてました。

View this post on Instagram

本日の発表も終わり。お疲れ様でした! #iotlt

hrsano645さん(@hrs_sano645)がシェアした投稿 -

サーボを動かすためにESP32 + Arduino IDEで実装にしました。ESP32はサーボモータを利用する標準ライブラリは動かないもようで、有志で作成されたものを利用しました。ArduinoのライブラリマネージャーからESP32Servoと検索してDLできます。

ESP32Servo by Kevin Harrington, John K. Bennett · Libraries · PlatformIO

バッテリー問題

バッテリーが実はまだ悩んでいて、ESP32自体は3.7VをつなげるかUSBシリアル変換が実装されていれば(devkitCみたいなもの)5VのUSBバッテリーで良いです。

ただサーボモーターは6Vを使うので6Vになる電源(たとえば1.5V *4な乾電池を用意する)が必要になります。今回はESP32にはUSBバッテリー, サーボモーターは乾電池を使ってます。

多分6V出す乾電池な電源からDCDCコンバーターで3.7Vを分配して出してやれば、乾電池オンリーで動かせると思います。(ESP32の消費電力はまだ考えてはいないです)たとえばこんな製品が使えそう。

TPS63060 可変型昇降圧DC-DCコンバータモジュール(2.5V~8V) - TPS63060 - ネット販売

そのほか

3Dプリンターは塩漬けだった Hotproceed の Blade-1 という製品に、PLAフィラメントを別途購入して利用しています。ちょうど3Dプリンターが流行りだした頃のちょっと良い製品です。現在の製品より精度は劣るようですが必要十分でした。もう少し使い倒してから最近の機種が買えたら買いたいところ。

View this post on Instagram

ちょっと古めのReprap互換(確か、Blade-1という製品名)の3Dプリンタと、ラズパイの少し古い2BとVNCでiPad経由で操作してる図。

hrsano645さん(@hrs_sano645)がシェアした投稿 -

現在はRaspberry Piをホストコントローラー(PrintrunというコントローラーアプリをRaspbian上で動かす)にしてVNC経由で操作していますが、もし利用できれば OctoPrint というWEBインターフェイス型コントローラーがあるのでこちらも試してみたいところ。

PLAフィラメントが十分実用的に使えるという話を去年の6月にあった shizuoka.ngs の参加者の方に聞いたので、とりあえず最近売られているものを購入してみましたがなかなか良かったです。ABSとか反りの扱いが難しくてもう使う気になれない。。

RepRapperホワイトPLA 3Dプリンティング プリンター フィラメント 1.75mm、もつれ無し、非脆性改良製 法、詰まり無し、高精度直径+/-0.03mm、1kgスプール (2.2lbs)、340m (1115ft)
B01H180M92

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

こちらはAmazonアソシエイトプログラム参加リンクです

今後どうするか?

最初に書いた通りお風呂IoTとの連携で、お風呂が溜まった時点で蛇口も止めるようにします。溜まったタイミングで通知もだしたりWEBからみることもできるようにしてみようかと。

ここに来てIoTの部分をちゃんとやる必要があるのですが、その辺のシステム周りはがっつりとやったことはないのでまた色々と学ぶのも面白そうです。

また、ホースジョイントとサーボモーターのマウンタはもう少しシンプルなデザインにできると思います。今回のマウンタは思いつきから試作しているので不必要なものを削ったりもっと小さくして、あとESP32やバッテリーも一緒に入れるケース(エンクロージャ)が作れると良さそうです。あと防水の問題も考える必要はあります。

蛇口側とお風呂の水位検知側との連携をさせる時の通信方法としては、(有線も候補ではあるけどw)仮に両者でESP32を使うならWifiが使えるのでどちらともAPに接続してIPベースでやり取りを考えてました。

ただバッテリー消費が大きいしWifi APへ届きづらい場所に対してスタンドアローンでやり取りさせようとしたらBLEでしょうか?扱いやすければそちらでやっても良いかなと。

ということでまだ課題はたくさんありますが、生活に必要な(最近の住宅には?ですが)お風呂を貯める行為を突き詰めて、いい感じまで持っていけるように頑張ります。できたらIoTLTもまた登壇しようかと。

<Twitterでのせたラフ絵を乗せる