本記事は、2018年4月に別の場所へ書いた記事の転載です
概要
家の一階にある洗濯機で洗濯が終わったかどうかを、二階のリビングにいても分かるようにしたい!というわけで、タイトルのとおりです。
洗濯終了を判定するための手がかりとしては、洗濯終了時に鳴るビープ音、洗濯機の使用電力(電流)、などがありそうですが、今回は操作パネルの表示を使います。我が家の洗濯機には、操作パネルの中に洗濯終了時にだけ点灯する場所があったので、この場所の点灯状況で洗濯終了が自動判定できちゃいます。
Raspberry PiにつないだWEBカメラで操作パネルの特定位置の点灯状況を判定するだけなんですが、操作パネルをうまく写せるカメラの固定場所があまりない、というのが実は問題です。ちょっと離れた場所から監視せざるを得ないので、向きをざっくり合わせるだけでも使える、とか、カメラが多少動いたりしても使える、とかするための工夫が必要です。
方針
というわけで、基本的な方針は以下の通り。点灯状況を監視したい場所の近くにARマーカーを貼って、これを基準に監視場所の画像を切り出して点灯状況の判定をするようにしました。
- ARマーカを点灯状況を監視すべき場所の近くに貼付
- WEBカメラで撮影した画像からARマーカを検出
- 検出したARマーカを基準に監視場所の画像を切り出して点灯判定
- 点灯していると判定された場合にはIFTTT経由でLINEに「洗濯が終わっています」を通知
コード
Raspberry Pi用のPythonコードは以下に置いておきます。
nikotan/WashingMonitor
動作
誤報対策で苦労しましたが、今は安定して動いてます。結構便利。
参考
ARマーカーの検出のために使ったOpenCVのarucoライブラリや、arucoライブラリを使うためのRaspberry Pi上でのOpenCVのビルドや、IFTTTを使ったプッシュ通知などについては、以下記事を参考にしました。