今日、カミさんが突然、リビングの照明を決まった時間に点けたり消したりできないか?と言い出しました。
どうやら旅行などで家を空けている間、留守であることを周囲に悟られたくないようです。
最近の照明器具はそのような機能が付いたものもあるようですが、我が家のリビング照明は15年以上前のもので、そんなハイテク機能はありません。
ちょっと面倒だなと思いましたが、「できなければいいんだけど~」と言われると意地でも実現したくなるのが負けず嫌いの性。やってみようと思い立ちました。
幸い我が家のリビング照明は赤外線リモコンに対応していますので、下記記事に書いた仕組みを応用し、Raspberry Piから赤外線信号を飛ばすことで照明のON/OFFができると考えました。
それでは、やってみましたのでご紹介したいと思います。
- Raspberry Piで照明の赤外線リモコン信号を記憶する
- Raspberry Piから照明に赤外線リモコン信号を送信してみる
- 決まった時刻になったらRaspberry Piから照明をON/OFFするように設定する
- 赤外線LEDの向きを調整する
Raspberry Piで照明の赤外線リモコン信号を記憶する
今回、すでに照明の赤外線リモコン信号は記憶済みでしたので省略しますが、普通は下のURLに記載していただいているようにirrecordというコマンドで行えます。
https://qiita.com/nomunomu0504/items/8f47d97766c69a6bd6b1
ただ、我が家の照明用リモコン(DAIKO製)はirrecordで赤外線リモコン信号を認識してくれなかったので、下のURLに記載していただいている方法で記憶しました。
https://qiita.com/_kazuya/items/62a9a13a4ac140374ce8
Raspberry Piから照明に赤外線リモコン信号を送信してみる
照明のリモコンを light、そのON/OFFボタンを onoff で記憶してありましたので、以下のコマンドで赤外線リモコン信号を飛ばしてみると。。無事照明の制御ができました!
irsend SEND_ONCE light onoff
決まった時刻になったらRaspberry Piから照明をON/OFFするように設定する
カミさんからは、19:00になったら照明を点け、22:00になったら消すようにして欲しいという要望だったので、cronを使って先のコマンドを実行することにしました。
まず、上記のコマンドを実行するシェルを /home/pi/remocon/light_onoff.sh として作成し、次に/etc/crontabを編集して下の2行を追加しました。
00 19 * * * root /home/pi/remocon/light_onoff.sh
00 22 * * * root /home/pi/remocon/light_onoff.sh
これだけでOKでした。
なお、cronが動いているか否かは下記コマンドで確認できます。
sudo systemctl status cron
「Active: active (running)」と出力されれば動いています。
動いていなければ、下記コマンドで起動する必要があります。
sudo systemctl start cron
さらに、Raspberry Pi起動時に自動で起動するようにするには、下記を実行します。
sudo systemctl enable cron
赤外線LEDの向きを調整する
最後に、赤外線リモコン信号を送信する赤外線LEDを照明に向けるため、手近にあった空きペットボトルを活用し、以下のような感じになりました。これで完成です!
見た目かなりしょぼいですがちゃんと動いていますよ~。