ラズパイ+カメラ+motionを使った動体検知の結果をLINEに通知する手順メモ。

以前、自宅玄関付近の動体検知結果をslackに送信していたものの、家族でslackを使っているのは自分だけでいまいち実用性に欠けてたやつのLINE通知版。
材料
手順
ラズパイの初期設定
$ sudo apt-get upgrade
$ sudo apt-get update
cameraとsshを使用可に設定
$ sudo raspi-config
カメラの動作確認
$ raspistill -o test.jpg
motionのインストール
$ sudo apt-get install motion
motionの設定
$ sudo nano /etc/motion/motion.conf
- daemon on *motionをバックグラウンドで動作させるためにon。
- threshold 3000 *検知の際のしきい値(ピクセル数)。
- locate_motion_mode on *変化のあった部分に枠を表示。
- ffmpeg_output_movies off *動画は作成しないのでoff。
- target_dir /tmp/motion *画像保存先フォルダ。
- output_pictures best *検知中に変化量が最大の画像を保存する。
- event_gap 60 *次の動体検知までの間隔(秒)。
- stream_localhost off *映像画面の外部アクセスを許可する。
motionの自動起動設定(RUN LEVEL2,3,4,5をONにする)
$ sudo apt-get install sysv-rc-conf
$ sudo sysv-rc-conf
motionをデーモンで起動するように設定
$ sudo nano /etc/default/motion
- start_motion_daemon=yes
再起動して確認
$ sudo reboot
$ ps aux | grep motion
ブラウザで確認
http://{ホスト名}.local:8081
motionの起動、再起動、停止
$ sudo motion -c /etc/motion/motion.conf
$ sudo service motion start
$ sudo service motion restart
$ sudo service motion stop
LINE Notifyのトークンを取得
LINE Notifyで、LINEに通知を送るためのアクセストークンを設定して取得。
https://notify-bot.line.me/my/
「トークンを発行する」を選択。

トークン名(通知時のタイトル)を指定し、送信先のグループを指定。

これでLINE Notifyは設定完了。

LINEのグループにはメンバーとして「LINE Notify」を追加する。

画像ファイルをLINEにポストする
post2line.sh
#!/bin/bash
# -*- coding: utf-8 -*-
token="{LINE Notify アクセストークン}"
DIR=/tmp/motion
for path2file in $DIR/*; do
curl -X POST -H "Authorization: Bearer ${token}" -F "message = detect!" -F "imageFile=@${path2file}" https://notify-api.line.me/api/notify
rm -f $pathfile
done
motionの検知後動作にpost2line.shを設定。
$ sudo nano /etc/motion/motion.conf
- on_picture_save sh /home/pi/post2line.sh
/tmp/motion のオンメモリ化
SDカードの寿命を考慮して画像保存パスはオンメモリ化しておく。
ポストされた様子

以上!
コメントを残す