愛犬のモニタリング用にネットワークカメラ使ってたんですが、壊れた。

外から携帯(いわゆるガラケー、フィーチャーフォン)からアクセスしたいけど、

最近のネットワークカメラで携帯対応うたってる機種って無いのね。

てことでraspberry piでネットワークカメラ作ってみます。

スマホで動画、ガラケーでは動画はキツいので静止画を見れるようにします。

使ったカメラはこちら

LOGICOOL ウェブカム HD画質 120万画素 C270

アップデート

作業前にはアップデートしといたほうが色々捗る。

1
2
3
4
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo apt-get upgrade
$ sudo apt-get autoclean

インストール

カメラ自体はさすだけで認識しました。

1
2
$ lsusb
Bus 001 Device 006: ID 046d:0825 Logitech, Inc. Webcam C270

カメラをいろいろいじるためのソフトをインストール。

1
2
$ sudo apt-get install fswebcam
$ sudo apt-get install motion

設定

motionの設定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ sudo vim /etc/motion/motion.conf

daemon on
webcam_localhost off  #nginx経由の場合はon
control_localhost off #nginx経由の場合はon
#ガラケー用に静止画も撮るとりあえず3秒間隔/ファイル名固定にする
snapshot_interval 3
snapshot_filename snapshot

$ sudo vim /etc/default/motion
start_motion_daemon=yes

ブラウザから http://raspiのアドレス:8081/

で動画が見れるはず。

Nginx

basic認証つけたいのでnginx経由でアクセスさせます。

1
2
3
4
$ sudo apt-get install nginx
$ sudo apt-get install apache2-utils   #htpasswdのためにインスコ
$ sudo sh -c "htpasswd -nb username password >> /etc/nginx/.htpasswd"
$ sudo vim /etc/nginx/sites-available/default
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#動画用
        location /cam/{
                auth_basic  "welcome webcam";
                auth_basic_user_file "/etc/nginx/.htpasswd";
                proxy_pass http://127.0.0.1:8081;
        }
        #静止画用
        location /cams/{
                auth_basic  "welcome webcam";
                auth_basic_user_file "/etc/nginx/.htpasswd";
                alias /tmp/motion/;
        }

あとはルータの設定でnginxを見れるようにしておわり。

DDNSとか設定しないとダメかも。

しばらく様子見。

追記

頻繁にファイルの書き換えが行われて、SDカードへのダメージが心配なので、

motionの作業フォルダ/tmp/motion/をramに作るようにしました。

/etc/fstabに

1
tmpfs           /tmp            tmpfs   defaults,size=64m,noatime,mode=1777      0

を追加してリブート。

追記2

スナップショットファイルらしきものを多数作るので、止めました。

1
2
output_normal off
ffmpeg_cap_new off