ラズパイで鳩時計を作る

毎時0分と30分に、決まった時刻にコマンドを実行するデーモン cron で音声ファイルを再生するだけです。MP3 ファイルなので mpg123 コマンドで再生します。

まず、crontab -e でユーザ pi の crontab ファイルを編集します。

XDG_RUNTIME_DIR=/run/user/1000
0,30 * * * * mpg123 /home/pi/Music/cuckoo.mp3 2>/dev/null

最初の行は XDG_RUNTIME_DIR 環境変数をセットしています。この環境変数は普通にログインしたときには設定されていますが、cron からコマンドを実行したときには存在しないので (おそらく PulseAudio と通信できないため) mpg123 が音声を再生することができません。

次の行では毎時0分と30分に音声ファイルを mpg123 コマンドに再生させています。 2>/dev/null は標準エラー出力を /dev/null に送っています。この指定がないと mpg123 コマンドの出力がメールでユーザ pi に送信されてしまうのでうっとうしいです。

これで時の流れがわかり、さらにラズパイに「あ、○時半だね」と話しかけることで寂しさが紛らわせられるようになりました。