Raspberry Pi 2を導入し無線LAN環境で監視カメラサーバを立ち上げる(後編)
前回Vagrant上に疑似Raspberry Pi環境を構築しました。今回は実機を購入しましたので、前後編に分けて無線LAN化し監視カメラサーバmotionを立ち上げるところまで行いたいと思います。
前編⇒ Raspberry Pi 2を導入し無線LAN環境で監視カメラサーバを立ち上げる(前編) - wonder gadget
後編は無線LAN化と監視カメラサーバの立ち上げです。
1. Raspberry Pi 2に無線LANドングルを接続
既にUSB無線LANドングルを購入済みですので、USBポートに接続します。
接続後lsusbコマンドを実行しドングルが認識されているか確認します。
$ lsusb
(略)
Bus 001 Device 007: ID 0411:01a2 BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070]
(略)
会社名やモデルまで認識されている事がわかります。
2. 無線設定 その1
/etc/network/interfacesを修正します。
$ sudo vi /etc/network/interfaces
auto lo
iface lo inet loopback
iface eth0 inet dhcpauto wlan0
allow-hotplug wlan0
# iface wlan0 inet manual
iface wlan0 inet dhcp
# wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
初期設定では有線と無線をローミングするようになっているので、"auto wlan0"を追加し、wlan0をdhcpに、またwpa-roamからwpa-confに書き換えます。
3. 無線設定 その1
/etc/wpa_supplicant/wpa_supplicant.confを修正します。
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="yourssid"
proto=WPA2
key_mgmt=WPA-PSK
psk="yourpassword"
}
太字の部分を追加します。ssidには接続したい無線LANのSSIDを、pskにはWPA2のパスフレーズを設定します。
このままだとパスフレーズが平文で置かれてしまうので、暗号化する方法もあります。そちらの方が少し安心ですね。
$ wpa_passphrase yourssid yourpassword
network={
ssid="yourssid"
#psk="yourpassword"
psk=bd9abb43d0e2dd30bd92049f926debe09fc87c8eb18f1bdabe8e17453020bfa6
}
ここに表示されたpskに書き換えます。(これは例ですので適宜読み替えてください)
これでrebootすると無線が有効になります。
$ sudo reboot
有線LANケーブルを外しても外部サーバにアクセス出来るか試してみてください。
4. USBカメラを接続する
普段Macに接続しているBUFFALOのUSBカメラを接続しました。現在流通している一般的なUSBカメラであれば特別なドライバーのインストールなしで認識します。/dev/video0があれば問題無いと思われます。
5. motionのインストール
監視カメラサーバを作るに当たってLinuxで広く利用されているmotionをインストールします。motionはその名の通りカメラに移った物体が移動したときなどに自動的に画像を書き出してくれたり、カメラ画像をストリーミングしたりと設定で色々な事ができる、すぐれもののツールです。
インストールにはapt-getでもaptitudeでも、どちらでも構いません。
$ sudo aptitude install motion
少し待つとインストールが完了します。
6. motionの設定ファイルの修正
ひとまず基本設定でデーモン起動できるように最低限設定ファイルを修正します。
$ sudo vi /etc/motion/motion.conf
daemon off => onに変更
webcam_localhost on => offに変更
$ sudo vi /etc/default/motion
start_motion_daemon=no => yesに変更
7. motionの起動
serviceコマンドを使って起動します。
$ sudo service motion start
8. ストリーミングアクセス
ポート8081にブラウザでアクセスします。
http://{Raspberry Pi 2のIPアドレス}:8081/
SafariやFirefoxでは画像が表示されましたがchromeでは表示されませんでした。ネットで調べた所「chromeでは表示されない」という事までは分かりましたが、原因が設定にあるのか、など具体的な事は分かっていません。
アクセスするとカメラの画像が表示されます。
9. ファイルの保存場所
motionは設定により指定された場所にjpeg画像を書き出します。またそれらをつなげたタイムラプス動画も保存されます(デフォルトでSWF形式、MPEG4なども設定で選択できます)。デフォルトで書き出しONで、/tmp/motion/以下に保存されます。取得した画像全てを保存するわけでは無く、設定した閾値以上画面に差が生じたら(映っている物が動いたら)保存されます。
この保存先をマウントした外部サーバのNFS上などにしておけばRaspberry Pi 2のmicroSDカードがパンクする事もありませんね。ただディレクトリを覗くと最初に起動したときのファイルは残っていなかったので、自動でローテートしている可能性もあります。これは継続して調査します。
10. motionの終了
serviceコマンドで終了します。
$ sudo service motion stop
ひとまず監視カメラサーバを立ち上げるところまでは成功しました。
motionは基本的な設定しかしていませんが、きちんと動作して少し感動しました。画面サイズや輝度、フレームレート、画像取得時の閾値など細かく設定できるので、それらを調査してみたいと考えています。