さて、Raspberry Pi 2も常時稼働する様になったことだし、監視カメラサーバーでも構築してみよう。カメラモジュールを買うと高いので激安のLogicool C270を買う。まあ、使い道が無くなっても再利用できるしね。
さて、Logicool C270を適当なところに設置(自分が普段座る場所が画角に入ると自宅にいるだけで検知されるので、自分が映らない方向に設置)して、USBでRaspberry Pi 2に繋ぐ。
lsusb
ちゃんと繋がっていてシステムに認識されていることを確認しよう。次に監視カメラの定番ソフトウェアであるmotionをインストールする。
sudo apt-get install motion
いろいろどっちゃりインストールされる。インストールが済んだら設定ファイルを弄る。今回は単一のカメラしか使わないので、/etc/motion/motion.confを直接弄ればオッケー。複数繋ぐ場合は設定をカメラごとに別ファイルに書くらしい。
daemon off (テスト時はとりあえずoff)
width 1280 (C270だと1280×720で問題なく動く)
height 720
output_pictures off (とりあえず画像ファイルを吐かないように)
ffmpeg_output_movies off (同じく動画ファイルを吐かないように)
target_dir /mnt/storage/motion (吐き出す時は外部のUSBメモリに吐く様にする)
stream_port 8080 (デフォルトは8081だけどちょっと気持ち悪いので)
stream_localhost off (motionが外部向けのストリームサーバーとして動くように)
stream_auth_method 2 (一応、MD5でパスワード認証)
stream_authentication user:pass (認証用のユーザー名とパスワード)
webcontrol_port 0 (このポートに接続すると設定をウェブベースで弄れるんだけどいらないので無効に)
とりあえず、監視はするけど記録はしない設定にしてテストする。まずはdaemonではなく普通にプロセスとして起動してみる。
sudo motion -n
ターミナルに吐き出されるログを見ながらちゃんと画像がストリーミングされるかどうか確認する。あ、ルーターのPort Forwardingで8080番ポートをRaspberry Pi 2にリダイレクトしないと外部からは見れないので注意。なぜか、ローカル側からはiPhoneのSafariでは見れるけど、MacやPCのSafariやFirefoxでは見れなかった。ついでに吐き出すログのイベントを見てるとモーション検知が動いてるかどうかも分かる。locate_motion_mode onにすれば検知した動作のある範囲を枠で表示してくれるので、検知感度の調整はそれを見ながらやればいい。終了は^Cで。
動作が確認出来たら、motion.confのdaemon offをonにして、さらにシステム起動時にdaemonとして起動する様に/etc/default/motionを書き換える。
start_motion_daemon=yes
再起動して、ちゃんとmotionが動いて外部からアクセスできれば監視カメラ設置完了。
監視カメラとして検知した動きを記録するようにすると、自宅でカメラの前をうろうろしただけでどんどん記録されちゃうので、外部トリガーで記録する度に一定程度古くなったデータを自動削除するようにしないとあっという間に空き容量なくなっちゃうかな。まあ、旅行時とかだけなら問題ないかも。今後の課題としておこう。