M5StickCで玄関のチャイムに気付けるようにした
背景
1月前くらいに引っ越したんですが,作業部屋で音楽を流しながら作業をしていると玄関のチャイムが聞こえなくて,宅急便の不在票が入っているということが何度かありました.
流石になんとかしようということで,M5stickCをつかってなんとかできないかを考えました.
考えた流れが以下の感じ.
音→M5StickC(マイク)→FFT,チャイムの音判定→IFTTT→PC・スマホに通知
M5Stick内でFFTをかけて,チャイムの音の特徴みたいなのを条件にしてやればいけるかな・・・と考えました.
あとはIFTTTを使えばどこにでも通知を投げられるので.
解析しようとしてみた
これが我が家の玄関のチャイム.スマホでインターホンに向けて録音したもの.
soundcloud.com
「ピンポーン」の「ピン」はG#5っぽい,ピークは828Hz
「ピンポーン」の「ポ~ン」はE5っぽい,ピークは672Hz
音声には詳しくはないが,M5StickCのマイクで音を拾って,G#5の音が連続したあとにE5の音が続いたら玄関のチャイムが鳴っていると判断すればよいのかな?と考えた.
実装
いろんなところを参考にしてキメラにしました.
いろいろと実験しながら進めた結果,FFTのピークの周波数だけ(直流成分に近いものは無視)見て,G#5の音が連続したあとE5が流れたらwebhookでIFTTTに投げるようにしています.
IFTTTからはスマホにはLINEで通知,PCにはPushbulletで通知を出しています.
gist.github.com
参考:
qiita.com
lang-ship.com
homemadegarbage.com
ambidata.io
結果
ヘッドホンをつけて引きこもっていてるとチャイムに気づかないので,チャイムがなったら通知してくれるやつ作りました.#MFKyoto2020 #作品発表 #M5Stack pic.twitter.com/hrvQ1UdJp0
— にゃるらと (@sakura_metal) 2020年5月2日
ちょっとした動画.このあとすぐにスマホに通知くるかんじ. pic.twitter.com/3gwLT0zU0l
— にゃるらと (@sakura_metal) 2020年5月2日
誤動作もたくさんする pic.twitter.com/1jNNUtsO82
— にゃるらと (@sakura_metal) 2020年5月2日
インターホンに反応して通知を送ってくれるようになりましたが,TVの音等に反応して誤動作もします.
改善の必要がありますが,とりあえずは宅急便が来ることが分かっているときに電源をいれるようにして様子見します.