#はじめに(2019.12.7構成図追加)
自宅のセキュリティを強化したいと思ってRaspberryPiで簡易防犯カメラを自作。セキュリティサービスや高価なカメラを買う前にちょっと試してみたいという方向け。
玄関前やリビング窓の不審者を検知しLINE通知させたり、LINEBot経由で好きなときに撮影させようと思う。
今回は左から右の赤線のように、カメラからストリーミングした動画をmotionというパッケージで動体検知させてLINENotifyで通知する。
将来的にはオレンジ点線のようにLINEBot経由で撮影させたい。
#準備するもの
・RaspberryPi Zero WH
・カメラモジュール
・zero用カメラケーブル
※これらは事前に接続しておいてください
・RaspberryPiへRaspbianOSのインストール
・SSH接続ユーザの作成
・LINE Notifyアクセストークン
今回はなるべく小型に作ることをコンセプトにしているため、RaspberryPi Zeroを選択した。このスターターキットは安定稼働に必要な5V3A対応電源と、フリスクサイズのケース、さらにケースにはカメラが取り付けられる穴が空いているので、初心者にも始めやすいと思う。
RaspberryPi3を利用する場合、カメラモジュールをそのまま使えるのでzero用ケーブルは不要。
ただひとつ失敗したことはzero WHはGPIOピンがデフォルトで付いていて、カメラ穴が空いている上蓋ケースを取り付けられなかった。GPIOピンは使わずカメラモジュールだけを使いたい場合はzero Wを購入することをおすすめする。
#ゴール
RaspberryPiで動体検知するとLINEに画像を送付する
#設定
RaspberryPiがカメラモジュールを認識するように有効化
sudo raspi-config
動体検知にはmotionというモジュールを利用
sudo apt-get install motion
Daemonが起動できるように所有者を変更
chown motion:motion /var/lib/motion
motion.confの設定。YOUR_PERSONAL_ACCESS_TOKENはLINE Notifyに合わせて設定
#解像度をLine通知に合わせてなるべく上げる
width 1024
height 768
# N秒以内のイベントを同一イベントとする設定
event_gap 5
# 動体検知したイベントの中で、一番変化が大きかった画像を保存する
output_pictures center
# 動画は保存しない
ffmpeg_output_movies off
# 動体検知箇所を赤枠表示
locate_motion_mode on
# 変化があったピクセル数を右上に表示
text_changes on
# 右下の時刻表示サイズを倍にする(デフォルトは小さくて見づらい)
text_double on
# 画像保存時に、LINE Notifyに送信する
on_picture_save curl https://notify-api.line.me/api/notify -X POST -H 'Authorization:
Bearer YOUR_PERSONAL_ACCESS_TOKEN' -F 'imageFile=@%f'
デーモンによる自動起動設定
start_motion_daemon=yes
サービス起動+自動起動設定
sudo service motion start
sudo update-rc.d motion defaults # 自動起動設定
#結果
玄関とリビングの前の足元に設置してみたところ。変化があった部分に白枠がついてLINEに通知してくれるようになった。
とりあえずのお試しとしてはGood!だけど運用上の課題はたくさんありそう。ストレージ寿命、電源供給、自然環境(温度、風雨)対策など。それらの検討はまた別記事で。
#参考
LINE Notifyを使って動体検知
https://engineering.linecorp.com/ja/blog/using-line-notify-to-send-stickers-and-upload-images/
motionのパラメータ設定
https://www7390uo.sakura.ne.jp/wordpress/archives/250