ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

Raspberry Pi3で動体監視カメラに挑戦

(2018-02-10 初稿 - 2021-05-11 転記・修正)

はじめに

Raspberry Pi3(以下、ラズパイ)にカメラをつなぎ、動くものを検知すると写真を撮影する動体監視カメラを作ろうと思った。
といっても、特に必要なわけではなく、ラズパイの能力を知るための試みである。^^;

f:id:hymd3a:20210511131005j:plain

ラズパイにカメラを接続したところ

Webカメラをつなぐ

カメラをつなぐ前に、ラズパイのオプションをカメラを使う設定に変更する。
これを忘れて、自宅のWebカメラはラズパイに認識されないと利用を諦めていた。(滝汗)

$ sudo raspi-config
Interfacing Option -> P1 Camera -> はい

設定を変更すると、ラズパイが再起動するが、再起動しない場合は、手動で行うこと。

再起動後、WebカメラをUSBに挿し、以下のコマンドでWebカメラが認識されていることを確認する。
ちなみに、筆者のWebカメラは10年くらい前に発売されたBaffalo製「BWC-35H01」というもので、もちろん現在は発売していない。^^;

$ lsusb
Bus 001 Device 004: ID 0c45:602c Microdia Clas Ohlson TWC-30XOP Webcam <-
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

筆者の環境では、一番上の矢印(<-)で示した行で認識された。

motionのインストールと設定

接続したカメラで写真や動画等を撮影し、当所の目的である動体監視カメラの役割を担うソフトウェアをインストールする。今回選んだソフトは、motionという比較的設定が楽との評判のソフト。

インストールは以下のように行う。

$ sudo apt-get install motion

motion.confの変更点

デフォルトの設定では、カメラの接続されているラズパイのモニタでしか撮影した映像を確認できないが、以下の設定を行うことで自宅内の他のPCからも映像等を確認できるようになる。
筆者のラズパイのサーバは、X-windowをインストールしていないので、そのままでは画像が確認できない。^^;
なお、筆者の好みで設定した部分もあるので、設定内容については各自確認のこと。

# Start in daemon (background) mode and release terminal (default: off)
daemon off <- 自動起動をoffにして、基本自分で起動したときしか、監視しない
# Image width (pixels). Valid range: Camera dependent, default: 352
width 640 <- お好みで
# Image height (pixels). Valid range: Camera dependent, default: 288
height 480 <- お好みで
# Threshold for number of changed pixels in an image that
# triggers motion detection (default: 1500)
threshold 1500 <- この設定を変更すると、検知感度が変更できる
# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
target_dir /home/pi/Pictures <- 自分のPicturesディレクトリに保存するように変更
# Restrict stream connections to localhost only (default: on)
stream_localhost off <- offにしないと他のPCから閲覧できない
# Restrict control connections to localhost only (default: on)
webcontrol_localhost off <- こちらもoffにしないと、他のPCから操作できない

以上の設定をしたら、以下のコマンドでmotionを起動する。

$ sudo motion restart    

動作の確認

motionが起動したら、ブラウザで以下のように入力することにより、撮影中の映像を確認することができる。

http://192.168.*.*:8080/

なおラズパイのアドレスは、「ifconfig」コマンドで確認できる。

次に、カメラの前で踊りを踊る等をして、動体検知のテストを実行する。

pi@rasp:~ $ ls Pictures/
02-20180210211742-00.jpg 02-20180210211838-snapshot.jpg
02-20180210211754-00.jpg lastsnap.jpg

上記のように、写真が撮影できていれば、正常に動作している。
なお、どの程度の動きで撮影するかは、上記設定の threshold を変更することで感度を調整することができる。

その他、他のPCからmotionの設定を変更することもできる。
その場合は、ブラウザで以下のとおり接続する。8081であることに注意

http://192.168.*.*:8081/

おわりに

思ったよりも簡単に、動体監視カメラの設定ができた。
ラズパイとっても優秀だね。

ただ、筆者のところでは、カメラの解像度が640x480にならず、160x120になってしまう。(T_T)
カメラを変更したり、設定を変更したりで解決したいけど、利用頻度が少なそうなので… (^^ゞ

もしかしたら、モルモットや金魚など可愛らしいペットを飼ったら、24時間動体監視カメラを動かしつづけて、時々覗いて癒やされているかも… 知れないな。あくまでも、妄想だけど… (^^ゞ

関連ページ