新しいラズパイ4で動体検知カメラ motion + LINE Notify + Node-RED を試してみる (1)

先日、新しい”Raspberry Pi 4” (“新たに開発用のRaspberry Pi 4 (4GBモデル)と429円の簡易ケースを購入しました”)を買ったので、早速、面白そうなことをやってみようと思います。

そう言えば、やはり先日買った”LABISTS Raspberry Piカメラモジュール 1080P 5M OV5647センサー ケース付き“が手元にあるので、今回は、以前から試してみたかった動体検知カメラ、そして”LINE Notify“と”Node-RED“を絡めた電子工作に挑戦することにします。

 

< ラズパイカメラをセットアップする >

ラズパイカメラの接続は勿論ですが、ラズパイの”Raspberry Pi の設定” -> “インターフェイス”画面でカメラを有効にすることを忘れないで下さいね。

 

< 動体検知カメラの定番 Motionをセットアップする >

ラズパイで動体検知カメラといえば”Motion“しかないぐらい定番中の定番ソフトウェアなので、迷わず”Motion”を導入します。

sudo apt install motion

 

“Motion”のインストールが終わったら、”Motion”の設定ファイルを編集します。実は、動体検知カメラの良し悪しを大きく左右する事前準備なので、この設定ファイルの編集作業はとても重要です。設定を変更する項目が多いので、”Ctrl+W”で検索しながら作業すると効率が良いと思います。

sudo nano /etc/motion/motion.conf

・daemon on

“Motion”を常時起動した状態にする必要があるので”on”にします。

・width 640

・height 480

画像の縦横のサイズをpixelで設定します。用途などに応じて適切な値は異なりますが、ラズパイのマイクロSDカードの空き容量やデータの転送量などに影響するので、個人的には640 x 480 pixel 辺りが無難だと思います。

・framerate 10

動体検知した時に画像をキャプチャするフレームレートを設定します。使用するカメラの性能やラズパイのCPU使用率に影響します。正直なところ適正な値は分かりませんが、いろいろな記事をみると”10″ぐらい前後で試してみるといった感じかも。

・event_gap 60

最初の検知から次の検知に移行するまでのギャップ時間を秒で設定します。デフォルトのままでも良いと思いますが、そこは用途次第でしょう。

・stream_localhost off

“on”の場合は、ライブストリームへのアクセスをローカルホストからのみに制限します。”off”にすると、Webブラウザでストリーミング画像を見ることができます。

・threshold 10000

動体検知を開始するしきい値で、変化のあったピクセル数を意味しているようです。デフォルトの1500ではあまりに敏感に反応してしまいます。何度か試行錯誤した結果で10000に設定しましたが、それでも反応速度は想定以上に早い気がします。

・max_movie_time 5

1本辺りの動画記錄秒数です。デフォルトの0は上限なしことになってしまうので、用途に応じて、必ず適切な秒数を設定して下さい。なお、秒数を増やすと、それだけラズパイのマイクロSDカードの空き容量が減りますので注意が必要です。

・output_pictures best

動体検知をした際、どの程度の画像を記錄するのかを設定します。デフォルトのonは検知した内容を全て記錄、offは記錄しない、firstは検知した最初のフレームのみ記錄、bestは動体検知イベントのうち最もピクセル数に変化が見られた場面を記錄です。特段の事情がなければ、firstかbestを選択して下さい。

・text_double on

画像に記錄する記錄日時などの文字を大きくします。

・locate_motion_mode on

・locate_motion_style box

動体検知した箇所をマークします。デフォルトのboxは白枠、redboxは赤枠、crossは白十字、redcrossは赤十字です。

・target_dir  /home/pi/Videos

画像を保存する場所を指定します。デフォルトは”/var/lib/motion”です。

・output_pictures on

今回は、ラズパイのマイクロSDカードの空き容量とデータ転送量を考慮して、静止画のみを記錄することにしました。

・ffmpeg_output_movies off

今回は、ラズパイのマイクロSDカードの空き容量とデータ転送量を考慮して、動画は記錄しないことにしました。

・ffmpeg_video_code mp4

今回は動画を記錄しないので拘る項目ではありませんが、デフォルトの”mkv”はアップルユーザには馴染みのない動画形式なので”mp4″に設定しました。

 

設定作業が終わったら、”Motion”を起動します。

sudo motion

 

Webブラウザで、以下のURLでアクセスすると、ラズパイのライブストリーミングを見れます。

http://(ラズパイゼロのIPアドレス):8081

 

ラズパイ起動時に”Motion”を自動起動させるには、以下の設定ファイルに”motion &”を追記します。

sudo nano /etc/rc.local

 

以下のコマンドで”Motion”の起動状態を確認できます。

service motion status

“Active: active (existed)”と表示されていれば正常に動作しています。

一方、”Active: active (dead)”と表示されていればうまく動作していないことを意味します。

開発環境などでは二重起動が考えられるのでプロセスを確認するか、ラズパイを再起動して下さい。

Ps -def | grep motion

 

以下のコマンドで”Motion”を停止できます。

sudo service motion stop

 

< Motion利用時で一番気を付けるべきポイント >

“Motion”で動体検知を行っていると、動画、静止画を問わず、大量のファイルがラズパイに保存されます。これを放置しておくわけにはいきません。

こまめにコマンドでファイルを一掃する手もありますが、”Motion”が生成するファイルの量は半端ないので、何とか自動化したいものです。

sudo rm -f /home/pi/Videos/*.mkv

sudo rm -f /home/pi/Videos/*.jpg

 

例えば、直球ですが、静止画と動画ファイルを削除するシェルスクリプトを作成します。

nano /home/pi/remove_motion_files.sh

chmod +x /home/pi/remove_motion_files.sh

このスクリプトを手動で実行するよりは、
sh /home/pi/remove_motion_files.sh

やはりcronで自動化した方が良いと思います。

crontab -e

0 */3 * * * /home/pi/remove_motion_files.sh

cronを設定したら、cronを再起動しておきます。

sudo /etc/init.d/cron restart

 

話が長くなってきたので、今回のTALKはここまで。次回は”LINE Notify”と”Node-RED”を絡めた内容に続きます。

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Raspberry Pi カメラモジュールV2
価格:3357円(税込、送料別) (2020/3/15時点)

楽天で購入

 

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Raspberry Pi Camera V2
価格:3800円(税込、送料別) (2020/3/15時点)

楽天で購入

 

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Raspberry Pi用遠隔操作カメラキット(要組立)
価格:4600円(税込、送料別) (2020/3/15時点)

楽天で購入

 

 

ホームページ “THE POOH FILES”にも是非お立ち寄り下さい。
Adobe Stock“でベストショットな写真素材を販売中です。是非ご覧下さい。

tomohiko

長年に渡りMacintosh向けの自作アプリを作り続けているPOOHです。最近はiPhone,iPad向けアプリ開発にも挑戦中。グルメ、旅行、露天風呂、写真、サイクリング、映画、STAR TREKが大好き。レトロでSFなおもちゃを大量にコレクション。プレーリードッグと同居中。

おすすめ

コメントを残す