インターホン検知をスマホに通知しよう
やろうやろうと思っていたがついつい先延ばしになっていたインターホン検知のシステムだったが、この度実際に運用開始できたのでそのメモを残しておきます。
動機
- リビング以外にいると音を聞き逃すから
- 外出中の自宅への訪問がわからないから
主な動機は上記2点。
高級インターホンならオンライン接続可能でスマホで確認も簡単なんだろうが、マンションの共有部分を交換などできるわけもないのでDIYで解決することにした。
やりたいこと
- インターホンが鳴ったらLineに通知がくるようにしたい
外出中は来客があったことがわかれば十分だが、在宅中に見過ごすわけには行かないのでお知らせの遅延は極力減らす。
システム構成
- RaspberryPi zero
- microSD 8gb
- microusb to usb cable
- USB Mic(Aliexpressで200yenくらい)
- python3
逸般の誤家庭にはよくあるラズパイで初期投資を。
新たに購入したのはUSB Micのみ。Amazonなら700円ほどで即届くがのんびり海を超えて200円ほどで到着したものを使用する。
処理概要
- リアルタイムに音の取得
- インターホンの音の識別
- IFTTT経由でLineNotifyへ通知
※notify-apiを直接実行でもいいけど通知先などスマホから操作しやすいので今回はIFTTT経由
ざっくり図
特定の音を拾ったらIFTTT経由でスマホに通知するシンプルな構成
準備
- RaspberryPiのセットアップ
- 公式ページからセットアップツールを使用してOSインストール
- 音の取得確認
- micの確認
- arecord -lでマイクの認識を確認
pi@raspberrypi:~ $ arecord -l **** List of CAPTURE Hardware Devices **** card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio] Subdevices: 0/1 Subdevice #0: subdevice #0
- card1,device0 で認識されていたのでインターホンを手動で録音してみる
pi@raspberrypi:~ $ arecord -D plughw:1,0 mic.wav Recording WAVE 'mic.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono
- arecord -lでマイクの認識を確認
-
Audacityで録音したインターホンの音の詳細を確認してみる
- 録音した音を再生しながら、インターホンの波形が現れる箇所を特定
- FFT解析(周波数解析)してインターホンの周波数を識別する → FFT解析とは?
- IFTTT、LineNotifyの設定
- micの確認
プログラム
-
インターホンの音を検知したらアマゾンエコーに喋らせるプログラムをベースにして一部改変
git clone https://github.com/kenmasumitsu/intercom.git
検知したあとAlexaに喋らせる部分のコード
https://github.com/kenmasumitsu/intercom/blob/master/detector.py#L332
をIFTTTの処理に変更detector.py speak_alexa() -> requets.post("iftttのwebhooks url")
-
必要パッケージのインストール
apt install python3-pyaudio python3-numpy python3-scipy pip3 install python-dotenv
-
FFT解析で確認した周波数を入力
FREQ_1ST: float = 511.0 # ピンポーンのピンの周波数 FREQ_2ND: float = 649.0 # ピンポーンのポーンの周波数
https://github.com/kenmasumitsu/intercom/blob/master/detector.py#L26-L27
-
まずは手動でプログラム実行して動作確認を行う
python detector.py -w wav
-
問題なく検知できることが確認できたら
./run.sh
を実行する
nohup付きで実行されるのでTerminalを閉じてもプログラムが実行されたままになっている。
参考にしたコード
おしゃれではないインターホン周りの写真
おわりに
RaspberryとMicでインターホンの通知を行うことはできました。
ただ、、、いかんせんおしゃれではない。
全くスマートではないのでここは要改善項目である。
もっとスマートに。。。
M5StickC-Plusというものを見つけた。
マイク、バッテリー内蔵で小型のキットがあるらしい。
みんなのAliexpressでも販売しているようなので機会があればこちらでも試してみようかなと思う。
Sony製のおしゃれなやつは開発用のUIも筐体デザインも洗練されていて素敵です(やすけr