[Raspberry Pi] 指定時刻に赤外線リモコンを発信する

Raspberry Pi で赤外線リモコンを作ったことを書いた。

[Raspberry Pi] 赤外線リモコン – with a Christian Wife
https://wacw.cf/2017/03/12/raspberry-pi-infrared-remote/

次にやりたいことは、決まった時刻にリモコンの信号を送ることである。具体的には、朝 6:55 に部屋のライトを自動でオンにしたいのだ。

そのためには cron というツールを利用すればいいようだ。cron を使えばさまざまな処理の自動化を行うことができ、しかももともと Raspbian にインストールされている。

その前に、そもそも Raspberry Pi の時計って正確なのかと調べてみると、どうやらネットに接続されている Raspberry Pi なら、タイムゾーンの設定をちゃんとやっている限り起動時に自動的に時刻修正を行うようだ。

raspbian – Raspberry Pi won’t update time – Raspberry Pi Stack Exchange
http://raspberrypi.stackexchange.com/questions/47542/raspberry-pi-wont-update-time

さて、以下が実際の方法だ。

(1)赤外線送信のシェルスクリプトを作る。とは言っても、たった3行だけで済む。赤外線送信のデータが air_on.data の場合(詳細は冒頭のリンクを参照)。最初の cd で wirpingPi のディレクトリに移動して、sendir を実行する。

#! /bin/bash
cd wiringPi
sudo ./sendir air_on.data 20 1

私はこのファイルを Mac のエディタで作り( LightOn.sh という名前で保存)、SFTP で Raspberry Pi の wiringPi ディレクトリに転送した(この程度なら Raspberry Pi 上で作るのが楽かも)。

(2)以下のコマンドを実行し、1のファイルに実行権限を付与する。

$ chmod +x LightOn.sh

参考:
Raspberry Pi | 撮影した写真のファイル名を撮影日時にする方法 – たぷん日記
http://www.tapun.net/raspi/raspberry-pi-date-filename

(3)$ crontab -e を実行。一番下に以下のコマンドを書き込む(毎日 6:55 に wiringPi ディレクトリの LIghtOn.sh を実行する場合)。

55 6 \* \* * ./wiringPi/LightOn.sh

参考:
指定した日時に自動でコマンド実行できるcrondの使い方メモ – c-bata web
http://nwpct1.hatenablog.com/entry/2013/10/24/191939
決まった時間に処理する | Make.
http://make.bcde.jp/raspberry-pi/%E6%B1%BA%E3%81%BE%E3%81%A3%E3%81%9F%E6%99%82%E9%96%93%E3%81%AB%E5%87%A6%E7%90%86%E3%81%99%E3%82%8B/
Raspberry Pi | cronを使って定期的に写真撮影&メール送信 – たぷん日記
http://www.tapun.net/raspi/raspberry-pi-cron-settings

保存してエディタを終了。

これだけで設定完了だ。