前回の記事では、Raspberry Pi用Camera Module V2を使って写真を撮影することについて解説しました。今回はcronというデーモンを使って写真を定期的に撮ってみます。これが出来ると植物などの観察に役立つでしょう。
写真撮影用のスクリプトを準備し、cronの設定、実行といった流れとなります。
cronとは
設定したスケジュールに従ってスクリプトを自動実行してくれるデーモン(常駐プログラム)です。「crontab」というコマンドでスケジュールを設定します。
写真撮影用のスクリプトを準備
cronを設定する前に、実行するスクリプトを準備します。
rpicamera.shというファイル名で、以下のコードを書きました。
!/bin/bash
DATE=$(date +"%Y-%m-%d_%H%M")
raspistill -o /home/pi/rpicamera/$DATE.jpg
実行した瞬間の写真がファイル名「Year-Month-Day_HourMinute.jpg」で保存されるスクリプトです。
cronの設定
準備したスクリプトを定期的に実行するため、crontabファイルに設定を追加していきます。
crontabファイルは以下のコマンドを打つことで開くことができます。
$ crontab -e
自動実行するスケジュールは以下のフォーマットで記述します。
分 時 日 月 曜日 実行されるコマンド
指定する値は下記の通りとなります。
指定対象 | 範囲 |
---|---|
分 | 0-59 |
時 | 0-23 |
日 | 1-31 |
月 | 1-12 |
曜日 | 0-6 (0:日, 1:月, 2:火, 3:水, 4:木, 5:金, 6:土) |
複数の値を指定したい場合は、,(コンマ)、-(ダッシュ)、*(アスタリスク)、/(スラッシュ)を用います。
記号 | 指定内容 | 設定例 | 実際の値 |
---|---|---|---|
, | リスト指定 | 1,3,5 | 1,3,5 |
– | 範囲指定 | 1-5 | 1,2,3,4,5 |
* | すべての値 | * | 0,1,2,3, … |
/ | 間隔指定 | */3 | 0,3,6,9, … |
例えば、平日、3時間ごとに写真を撮りたい場合は、以下のとおりcrontabファイルに追加します。
0 */3 * * 1-5 /home/pi/rpicamera/rpicamera.sh
cronの実行
cronの起動状態を確認します。
/etc/init.d/cron status
Activeであれば、指定した時間に写真が撮られ、指定フォルダに写真が保存されていきます。
cronが起動していなければ、以下のコマンドを打ち、起動します。
sudo /etc/init.d/cron start
まとめ
Raspberry Piで写真を自動的に撮影するため、cronというデーモンを使いました。
定期スケジュールを設定しておけば、植物などの定期観察に役立つと思います。