動体検知で撮影した画像をLINEに自動送信する:名刺サイズの超小型PC「ラズパイ」で遊ぶ(第11回)(3/3 ページ)
小さなマイクロコンピュータ「Raspberry Pi」(通称ラズパイ)で作る、自分だけのガジェット。ラズパイに接続したカメラで動体検知したときに、撮影した画像をLINEに送る方法を紹介します。
定期的に写真や動画を削除する
motionは動体検知ができるので便利ですが、しきい値を高めに設定したとしても保存されるファイルが膨大になりがちです。そこで、不要になった過去の画像を定期的に削除した方がよいでしょう。
そのためにはシェルスクリプトで削除したいファイルを検索し、必要とするファイル以外については削除し、それをcronで定期的に実行するように設定すればよいでしょう。シェルスクリプトは「delete_file.sh」というファイル名にして、コマンドを記述します。
$ nano /home/pi/delete_file.sh
としてnanoを開いたら以下の内容を記述しましょう。
#!/bin/bash find /home/pi/motion \( -name "*.jpg" -or -name "*.mkv" \) -mtime +0.5 -delete exit 0
この記述は以下のような意味となります。
- /home/pi/motion:動画と静止画を記録するディレクトリ
- -name "*.jpg" -or -name "*.mkv":削除するファイルの拡張子(この場合はjpgとmkv)
- -mtime +0.5:現在時刻より12時間前(0.5日)以前のファイルを検索
- -delete:検索したファイルを削除する
ファイルの拡張子や何日前のファイルを削除するかについては、環境に応じて設定してください。このあとcronを利用して、一定時間で上のスクリプトが起動されるようにします。また実行できる形式にするため、
$ chmod +x delete_file.sh
と設定します。そのあと「crontab -e」でcronを開いたら、以下のように設定します。
0 */3 * * * /home/pi/delete_file.sh
この設定では3時間おきに「/home/pi/delete_file.sh」が起動しますので、その時刻になると、そこから12時間前以前のファイルが削除されます。なおcronの設定方法については第7回でも紹介していますので参考にしてください。
また、現在使われている容量を知るためには「du」コマンドを使うのが便利です(関連記事)。「du -d1 -xh | sort -n -r」と入力すると、「/home/pi」ディレクトリ以下の容量を少ない順に表示してくれます。
$ du -d1 -xh | sort -n -r 668K ./line_photo 588K ./motion 16K ./.local 8.0K ./.gnupg 5.4M . 4.1M ./rpicamera
容量は小まめに把握して、microSDメモリカードがいっぱいにならないように注意しましょう。
Copyright © ITmedia, Inc. All Rights Reserved.