Raspberry pi でWifi監視カメラシステムを製作

IMG_1230

もうずいぶんと時間が経ってしまいましたが、安価なWifi監視カメラシステムを検討するという記事で監視カメラシステムを検討しました。

で、今回はそれを実装してみた、という記事です。実装とか、製作とかいう言葉を使っていますが、そんな大したことじゃないです。組みあわせて動かしてみただけです。

買ったもの

IMG_1230

  • Raspberry Pi type B
  • Raspberry Pi ケース
  • USBハブ(Elecom U2H-EG4SBK)
  • PLANEX 無線LANアダプタ(GW-USWEXTREME)
  • Buffalo 200万画素 Webカメラ BSW20KM11BK
  • MicroUSBケーブル(電源取用)
  • Trancend 16GB SDカード(TS16GSDHC10E)

全部で1万ちょっとでした。ここで注意が必要なのが、Raspberry Pi本体はRSオンラインから買ったほうがいいことと、SDカードの相性問題があること。

前者は、Amazonで転売業者がいくつかヒットします。が、RSオンラインのほうが安いです。私は転売業者から買ったほうが早いだろう(RSオンラインは発送が遅いだろう)と思っていましたが、RSオンラインでもすぐ発送してくれるそうです。ですので、転売業者から買う理由は何もありません。

SDカードは結構シビアにものを選ぶらしく、RPi SD Cardsというページにチェックリストが載っていますので、確認したほうが良いでしょう。

セットアップ

山ほど書いているサイトがありますので、省略します。簡単に書くと、イメージデータを落としてきてSDカードに焼きます。以上。おわり。

IMG_1232

こんなかんじで、べろべろべろっとログが流れます。

IMG_1235

カラーなのがいいすね。

IMG_1233

こんなかんじで、初期セットアップメニューが立ち上がります。ここから最初にやっておくべきことのほとんどが出来てしまいます。なーんにもしなくていい。簡単過ぎる。

無線LANのセットアップ

無線LANはちょっと面倒かもしれません。どうやってセットアップするのかなーと、ぐぐってみると、みんなiwconfigを使ってテストした後、/etc/network/interfacesを直書きしている。えーちょっと面倒だなあ。書く自信ないなあ。
もうせっかくXが動くのだからXでやる。VNCセットアップすればリモートでも出来るし。

$ sudo apt-get install tightvncserver
$ tightvncserver :1

以上で、UltraVNCなどから192.168.x.x:1につなげばそのままXが立ち上がる。なんて簡単なんだ。環境はLXDEですね。

pidesk

起動するとWifi Configというツールが出てきた。これを使って設定すると、それでもう設定完了してしまった。ちなみに、設定ファイルは以下のように出力されていた。

pi@raspberrypi ~ $ cat /etc/network/interfaces
auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
pi@raspberrypi ~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        ssid="ネットワークのSSID"
        psk="パスフレーズ"
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP
        auth_alg=OPEN
}

ちなみに、上記はWPA2-AES(CCMP)の設定だ。DHCPなのでIPアドレスが変わってしまうかも知れないが、うちのルーターにはMACアドレスによるDHCPでのIPアドレス固定機能というのが付いていたので、それをつかった。

ちょっと注意が必要なのは、普通に使うと有線LANと無線LANの二つにIPアドレスを振ってくれないようだ。基本的に有線LANが刺さっているときはそちらのみを使うようになるらしい。これは動的に変わるので、LANケーブルを抜けば無線LANが自動的に起動してる。この仕組みがどうなってるのかはよく分からない。上記の設定をいじれば何とかなるのかも知れないが、この辺の細かい設定の仕方を私は知らない。

まあ、以上で、とりあえずWifiで接続してSSHやVNCを立ち上げて操作するところまで出来てしまった。すげー簡単だ。Ubuntuより簡単なんじゃないか。

motionのインストール

$ sudo apt-get install motion

以上。なんて簡単なんだ。

実際に撮ってみる

インストールしただけで、勝手に接続したWebカメラから画像を拾ってログを出力してくれます。デフォルトの出力先は/tmp/motionだったとおもいますが、設定ファイルで変えれます。

デフォルトの設定で、動体を感知したらFlashムービー出力とJPG出力をしてくれました。設定ファイルでいじったのは、解像度と動体検知のしきい値くらいです。

IMG_1243

将来的にはちゃんとした箱に収めますが、まあ、最初はこんなかんじで2階の窓から撮影してみました。

199-20140128104459-00

こんなかんじで、車が通ったらちゃんと記録してくれます。このWebカメラは広角であるという旨をうたっている製品でしたが、確かに、広角でいい感じです。

599-20140131150344-00

動体検出のアルゴリズムとしては、前回撮影した画像と異なるピクセルの数を数えて、大きく違っている箇所を動体とみなす、という判定方法を基礎にしているみたいです。なので、上記画像のように木の影が動いただけで検知してしまいます。これはもうどうしようもないですね。赤外線センサなどを使うとかしないと無理だと思います。

1週間撮り続けた結果、1GBくらいのログができました。本格的に運用するならば、ログローテーションするとか、NASに貯めるとかしたほうがいいかもしれません。

結論

低価格でそれなりのものは出来たと思います。が、弱点は夜間です。夜間は全然移りません。IRフィルタレスなカメラを用意して赤外線投光機などを設置するとかしないと使い物にならないでしょう。そこまでするならば、既成品を買ったほうがいいんではないか?という気がしてきました。

秋葉に行けばUSBカメラで赤外線撮影できるようなものも売ってるかもしれません。Amazonでも、一つだけ売っているのを確認しました。また、Raspberry Pi用のIRカメラも売っているので、それを利用してもいいでしょう。(でもちょっと高いです)

ちなみに、今回は夜間撮影を諦めて広角を取りました。