洗濯をスマートに! 乾き具合を確認できるIoT洗濯バサミを作ろう
最近、スマートホームやホームオートメーションという言葉をよく耳にします。これはIoTやAIなどの技術を駆使して、より安心・安全で快適な暮らしを実現する住宅のことです。例えば、照明や空調の管理、見守り機能のあるAIカメラなど、かなり世の中に浸透してきていますよね。私自身もプライベートではさまざまなデバイスを購入し、日々の生活で活用しています。
しかしながら、洗濯のスマート化に関しては未だに課題が多く、キラーデバイスが生まれていません。自動で洗濯物を干したり、畳んだりするのは、現代の技術でもかなり難しいものです。しかし、大きな動作や難しい制御を必要としないシンプルなデバイスであれば、既存技術を組み合わせるだけで、洗濯の快適さを向上させられるのではないでしょうか。
そこで、洗濯物の乾き具合を測定できる、洗濯バサミ型のIoTデバイスを作ってみることにしました。
準備するもの
【電子部品】
- 雨滴センサー ×1
- 付属のコンパレーター基板(LM393) ×1
- M5Stack ATOM Lite ×1
- M5Stack ATOM TailBAT ×1
- ジャンパー線 ×3
- ピンヘッダー2P ×1
【メカ部品】
- 好きな色のPLAフィラメント ×75g分
- 洗濯バサミ用ピンチリング ×2
- M2.5×5ネジ ×2
- M2.5ビットインサート ×2
洗濯物の乾き具合を測ってみよう
このデバイスの特徴は、雨滴センサーで洗濯物の水分量を測定し、乾き具合の指標として示すところです。このセンサーはAmazonで、5セット1000円弱で販売されていますので、気軽に購入できると思います。しかしはたして、この安価なセンサーで本当にIoT洗濯バサミを実現することができるのでしょうか。
雨滴センサー、コンパレーター基板の回路図は以下の通りで、とてもシンプルです。
水滴が付くとGNDとショートして出力電圧が下がり、A0端子でアナログ値を取得できます。ATOM Liteの場合、乾いた状態で4095を示し、水分量が増えるほど値が減少していくようです。すなわち、乾いた=4095ということになるのですが、中途半端ですよね。ここではmap関数を用いて、乾燥度合いを分かりやすく100%表示に変換します。
試しに雨滴センサーに濡れタオルを押し当てて、Arduino IDEのシリアルプロッターを使って、センサーからのデータをグラフにしてみると、ぬれタオルを当てている間は数値が下がり、離すと再び数値が上昇することを確認できました。雨滴センサーを活用することで、乾き具合をしっかりと判断することができそうですね。
データをクラウドに送ろう
このデバイスの運用を考えると、ずっと有線でモニタリングしているわけにもいきませんから、測定したデータは電波でクラウドに送って計測することにします。今回はそれを想定しWi-Fi機能のあるM5Stack Atom Liteを使用しています。こんなに小さいのに、とても高性能ですね。
それではデータの送り先を決めます。クラウドサービスは数多く存在しますが、今回はAmbientを利用することにしました。AmbientはIoTデータの可視化サービスです。マイコンなどから送られたデータを受信、蓄積、可視化することができます。
Ambientが提供しているライブラリを使うだけで、簡単にデータの送信が可能です。サンプルはここで確認できます。
テストプログラムを作成してWebブラウザで確認してみると、値がしっかりグラフ化されていることが分かりました。とても便利です。
外装を設計しよう
留め具の部分にうまく雨滴センサーが配置されるよう、オリジナルの洗濯バサミをFusion 360で設計しました。洗濯物を挟むだけで雨滴センサーと洗濯物がうまく接触し、簡単に乾き具合が計測できます。
ところで、洗濯バサミってとてもシンプルで、よくできていますよね。3Dモデリングではこういった無駄のない要素を真似しつつ、機能性を損なわないように工夫しました。そして、設計したモデルは3Dプリンターで出力しました。3部品でおよそ6時間かかりました。
尚、洗濯バサミは2カ所、インサートを挿入するようにしてありますので、はんだごてによる熱圧入が必要です。これは後で雨滴センサーをネジで固定するためです。インサートが手元にない場合、雨滴センサーは両面テープで固定しても構いません。
組み立ててみよう
まずは電子部品のはんだ付け、リワークを行います。購入した雨滴センサーのピンヘッダーはL型だったので、いったん取り外してストレート型に交換しました。さらに可能なら、消費電力低減のためにLEDも外します。次に、基板から3本のジャンパー線を出し、その後、基板を雨滴センサーと合体させます。完成イメージはこちらになります。
ここからは本格的に組み立てていきます。M5Stack Atom LiteをM5Stack ATOM TailBATと接続し、3Dプリンターで出力した部品に挿入します。
キャップの部品をはめ込みます。
先ほど基板に取り付けた3本のジャンパー線をAtom Liteに接続します。電源は3.3V、A0の信号線は33番ピンへ、残った1本はGNDに接続します。
次に、雨滴センサーをネジで固定します。前述したように両面テープでも構いません。
最後に、部品同士をはめ合わせ、リングを通したら完成です。
うまくいくと思いきや…!?
これで無事IoT洗濯バサミが完成しました。普通の洗濯バサミよりはサイズが大きめですが、軽い力で安定して開閉でき、機能性は抜群です。
では、実際に使ってみましょう。実用性を考え、自宅にあったピンチハンガーに付けて使うことにしました。洗濯物を挟み込んだ後、電源ボタンを押すと赤LEDが点灯し、測定を開始します。
Ambient経由で雨滴センサーのグラフを観察していると、時間がたつにつれて乾燥度合いが上昇していくのが分かり、とても良い感じです。
また、Ambientはグラフでなくメーター表示にもできます。場合によってはこちらの方が見やすいかもしれませんね。
ここで予想外の事態が発生しました。2時間を経過したあたりから、Ambientのグラフ更新が止まってしまったのです。どうしたのでしょう。洗濯バサミを確認してみると、なんと電源LEDが消灯しているではありませんか。どうやら電池切れみたいです。
改善しよう
常時Wi-Fi接続していると、電池の消耗が激しいようです。数秒単位で乾き具合を知りたいわけでもありませんから、通信頻度を下げることにしましょう。
Atom Liteに搭載されているマイコン、ESP32には、消費電力を抑えるsleepモードが備わっています。今回はdeep-sleep機能を活用することにしました。
deep-sleepから復帰するときは、プログラムはsetup処理から動き出します。よって今回、loop処理には何も記入していません。タイマーは30秒に設定しました。本当はもっと間隔を空けたいところなのですが、どうやらこのM5Stack ATOM TailBATというバッテリーアクセサリは、電力消費が40秒程度なかった場合、自動でスリープモードへ移行するらしく、そうなってしまうとボタンを押さなければ復帰してくれないようなので、苦肉の策です。
プログラムを書き換えたのち、再トライしてみます。すると今回は乾ききるまでのおよそ半日、電池は切れずに動いてくれました。そしてAmbientで乾き具合を判断し、良いタイミングで取り込んだところ、センサーの値通り、洗濯物はしっかり乾いていました。大成功です。
アイデアを足してもっとスマートに!
これで我々は、洗濯のスマート化に一歩近づくことができたのではないでしょうか。しかし、今回の機能だけでは、まだまだ実用性に欠けると思っています。キラーデバイス化のためには、プラスαの機能が必要不可欠となることでしょう。
例えば、子どもに留守番を頼んでいるときに、洗濯物が乾いたら通知が届いて、お手伝いをサポートしてくれるアイデアは、なかなか良いかもしれません。音声通話やSMSをアプリに組み込めるTwilioを活用し、両親の声で「洗濯物乾いたから取り込んでおいてね」と、子ども宛てに自動で電話をかけるのです。このようにさまざまな視点で発想し、生活がより豊かになるよう、日々改善していきたいものですね。
本作品の3DモデルやソースコードはGitHubで公開しています。自由に作り、使っていただいて構いません。そして、ぜひともさらなる付加価値を加えながら、各自の生活に適したデバイスへと進化させることで、より快適な暮らしを実現してみてください。
https://github.com/CH1H160/IoTClothespin