音楽がかかっていなかったらAmazon Musicを自動でかける
- Raspberry Pi 3B+
- Raspberry Pi OS Bullseye with Desktop (GUI)
Amazon Echoをステレオペアした。
[https://www.amazon.co.jp/gp/help/customer/display.html?nodeId=GZRS8FRPWWFPPZ63]
せっかくのなので、音楽かかってなかったら自動でかかるようにしてみる。仕組みとしては、マイクでノイズレベルを測定して、一定時間静かだったらAmazon Musicをかける。人感センサーで、部屋にいる時だけにできたら、なおよしだが。
USB Microphone for PC or Mac MI-305
ノイズレベルの測定のためだけだから、これで十分だろう。
Amazonの写真がまるで違うんだけど、モノはこちらが一番データをまとめてくださってる感じです。
MINI Microphone ミニUSBマイク MODEL:MI−305 (M-12864)
PyAudio 0.2.13
騒音レベル測定Pythonスクリプトは汎用性高く書いてくださっているようだが、パラメーターは固定しちゃっていいだろう。
SAMPLING_RATE = 44100
デフォルト。そして使用したマイクは固定らしい。
CHANNELS = 1
デフォルト。
CHUNK = 2 ** 15
遅延はこの際、関係ないし、平均取るなら標本はたくさんの方がよいだろう。最大値、イコール32768なのはなぜ?これ以上はエラーになる。今度ゆっくり考えてみよう。
誤検知を減らすため、これで1分ごとに3回、音楽をかけた状態のノイズレベルにいたらなかったら、alexa-remote-controlで-e playmusic:すれば、できた。
人体赤外線感応モジュール HC-SR501
それでは、部屋に人がいるときだけチェックできるように。
これも安いのでいいやとポチッて試してみたのだけど、このセンサーは赤外線の変化を検知します.
なので,ずっと同じ場所に人間がいてもセンサーは反応しません.人間がセンサーの前に現れたり,いなくなったりする時に反応します.
商品ページには人感センサーとだけ書いてありますが,実はモーションセンサーです.
【Raspberry Pi】人感センサー(HC-SR501)の使い方 | メタエレ実験室
…なるほど…。まあ何かとうろうろするからな、と、試してみる。
感度調整しても意外と誤検知したり、反応しなかったり。…お蔵入り♡
高感度マイクセンサーモジュール KY-037
ちなみにノイズレベルで反応させるだけなら、これでもいいんじゃないかと試してみた。
スピーカーから少し離れたところで少しノイズレベルが上がるくらいでは反応しないらしい。爆音にする訳にもいかない。…お蔵入り♡