防犯システムを作る一環として、画像の取り込みを検討しました。

 

実は初めにmotionを使った動体検知を試みたのですが、何でもかんでも反応してしまうので断念しました。

今回は人を対象にして反応させたいので、やっぱり人感センサとの組み合わせが良さそう。

motionは使い方によっては凄く強力なツールになるので、また機会があれば試したいと思います。

 

ちなみに、motionについてはこちらの記事を参考にさせて頂きました。

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

https://min2club.com/talk/2020/05/01/%e6%96%b0%e3%81%97%e3%81%84%e3%83%a9%e3%82%ba%e3%83%91%e3%82%a44%e3%81%a7%e5%8b%95%e4%bd%93%e6%a4%9c%e7%9f%a5%e3%82%ab%e3%83%a1%e3%83%a9-motion-line-notify-%e3%82%92%e8%a9%a6%e3%81%97%e3%81%a6/

 

 

 

そんなことをしつつ、Node-REDでカメラの画像を取り込む方法を探しました。

 

ありました。

 

(参考)uepon日々の備忘録  【RaspberryPi】Node-Redでカメラを使用する(Cameraモジュール・USBカメラ)

 

 

 

新たに追加したノードは、node-red-contrib-camerapi』(撮影用) とnode-red-contrib-image-output』(確認用)です。

 

このノードを使うにあたって下準備が1つ必要です。

画像の保存先が『/home/pi/Pictures』になっているので、『Pictures』というディレクトリ(フォルダ)を作っておかないといけません

これが無いと画像が保存されません。

 

 

今回はシンプルにPIRセンサ(人感センサ)とRaspberryPi用のカメラだけで動作確認を行いました。

 

使ったもの

  • RaspberryPi 2B
  • RaspberryPi用カメラモジュール [OV5647]
  • PIRセンサ [HC-SR501] (人感センサ)

 

RaspberryPiとPIRセンサの配線は下記のようにしました。

 

GPIOのピンはどこでも良いですが、入力電圧は5Vであることに注意してください。

3.3Vでも動きましたが、反応がいまいちよくなかったです。

 

 

カメラモジュールの取り付け位置はこちら。

 

 

DISPLAYケーブルと間違えそうになるので注意ですね。

 

 

カメラを固定するケースなどは持ってないので、手元にあった木のクリップに挟んで固定しました。

 

 

 

これでハード側の準備はOK

 

 

Node-REDで作ったフローはこのような感じにしました。

 

 

PIRセンサからの入力(0, 1)をswitchノードで受け取って、「1」の場合にカメラで撮影しています。

撮影した結果は、image-outputで確認しています。

 

はじめは保存した画像データを開いて確認していたのですが、調整の為に何度も撮影と確認を繰り返すうちにimage-outputで確認したほうが便利だと気付いて導入しました。

 

 

<各ノードの設定>

 

rpi-gpio-in

こちらはPIRセンサの入力ピンを設定しています。

今回は18ピンを使いました。

 

 

switch

このノードでPIRセンサの値を振り分けます。

下の「+追加」で項目を増やし、それぞれ数値の「0」と「1」を入力します。

 

 

camerapi-takephoto

このノードでカメラの細かい設定を行います。

File Mode :『Buffered Mode』にすることで、image-outputノードに出力できるようになります。

  この場合、画像ファイルは保存されません。

Image Resolution :画像の大きさを設定します。初期値では大きすぎたので640×480に変更しました。

Rotation :カメラの設置する向きによりますが、私の場合は180度回転させた設定にしています。

Brightness, Contrast, Sharpness, Quality :この数値を色々と変えながら画像を確認します。

  今回はこのような値にしましたが、状況によってはまた変えるかもしれません。

 

 

ちなみに、File Modeの他の項目としては、『Auto File Name』と『Custom File Name』があります。

画像を保存したい場合はこの2つのどちらかを選択します。

 

 

image

ここでは、カメラの設定に合わせてWidth640に変更しました。

小さい値だとプレビューの画像が小さくなるだけで、他の値でも問題は無いです。

 

 

ここまではなんとか順調に進めることができました!

 

次は、この画像を送る通知部分に挑戦する予定です。