2010年05月19日

ネットワークカメラをAndroidで活用

安く売っている、ネットワーク対応カメラを使用して、Android端末で出先から映像を確認できる環境を作成してみました。

詳しくは以下をご覧いただければと思いますが、8000円程度の出費で、出先でも高いフレームレートでAndroid端末からリアルタイムモニターできる環境が手に入りました。たとえば、ペットを屋内で飼っておられる方などに、良いかもしれません。


まず、購入したのは、プラネックスのCS-W04Gです。以前の本ブログ記事でも取り上げました。

↓これ。Amazonで8000円以下です。
PLANEX 有線/無線LAN両対応ネットワークカメラ(30万画素CMOSセンサ) CS-W04G
このネットワークカメラは、元々、Edimax社という会社の製品でプラネックスはOEM提供先のようです。プラネックスが提供しているよりも新しいファームウェアがありますので、ダウンロードしてみました。(ファームウェアアップデートをしくじるとカメラ本体が再起不能になる事もあるので注意)
http://driverscollection.com/?aid=4084987371300ff0e7a991bb2ee
書き換え後は、工場出荷状態にリセットします。
なお、私は安定性向上を求めて、ファームアップをしましたが、リスクを伴うファームアップなどせずとも、Android端末からの利用は可能だと思います。
※ネットからダウンロードしたファイルを適用するとメーカー保証がなくなります。また、ダウンロードしたファイルにウィルス等が入っている可能性もありますので、自己責任でしっかりチェックしましょう。

1.ネットワークカメラの設定
まずは説明書に従い、ご使用中のルーターなどに接続し、同じローカルネットワーク内のPCからアクセスできる状態にします。

インターネット上からアクセスできるようにするにあたり、まずはネットワークカメラのパスワードを変更します。
「System」→「Password」及び「Confirm Password」にadminのパスワードを設定します。

次に、ユーザーアカウントを設定します。
「Users」→「Login」にログイン名、「Password」及び「Confirm Password」にログイン名に対応するパスワードを設定し、「Apply」をクリックします。


2.ルーター側の設定です。
多くのルーターには、ローカルネットワーク内の機器を、外部ネットワークに公開する機能があります。ローカルネットワーク機器の特定のTCPポートを外部に公開できる機能があればOKです。
公開すべきポートは、ネットワークカメラのTCP 80番(http)です。外部公開側のポート番号は80でなくても構いません。私は別な番号にしました。

設定の具体的方法は、バッファローのルーター「WZR-HP-G300NH」であれば、
「ゲーム&アプリ」→「ポート変換」を選択し、
「グループ」→「新規追加」
「Internet側IPアドレス」→ネットワークカメラのIPアドレス
「プロトコル」→「任意のTCPポート」でお好きな外部公開用ポート(例:58000)
「LAN側IPアドレス」→ネットワークカメラに付与されたIPアドレス
「LAN側ポート」→80

ルーターのメーカーによっては、上記設定項目は「ポート変換」ではなく、「バーチャルサーバー」などといった表記などバリエーションがありますので、ルーターの説明書をご覧ください。

3.ダイナミックDNSの設定
出先から、Android端末を使用して自宅のカメラにアクセスする際には、ドメイン名があるとかなり便利です。プロバイダは通常、ユーザーに付与するIPアドレスが一定ではないので、ダイナミックDNSサービスを使用し、ドメイン名から、IPアドレスを参照できるようにします。ルーター機器にも、ダイナミックDNSサーバーに対してIPアドレスの登録・更新を行うことができるものが多くあります。この設定は解説記事がネットに多くありますので、必要に応じて参照してみてください。

私は、DynDNS.orgを使用してみました。


ここまでできたら、たとえば出先のネットワークから、自宅のカメラにアクセスできるようになっているはずです。
例)
外部公開用ポート番号を58000にし、ダイナミックDNSサービスで取得したドメイン名を、test.hoge.com とした場合、
http://test.hoge.com:58000/
というURLにブラウザから接続する事で、ネットワークカメラの設定画面にアクセスできると思います。

4.Androidアプリの設定

今回使用したアプリは、フリーの「Tiny DVR」です。Android Marketからダウンロード可能です。
いろいろなメーカーのネットワークカメラに対応しています。
Settingsから、以下のように設定します。

Enabled → チェックあり
Edit Camera Name → カメラの呼称(任意の文字列)
Choose Camera Vendor → Edimax
Edit hostname → 上記3.で取得したドメイン名
Edit port number → 上記2.で設定した、外部公開側のポート番号
Choose camera codec → MotionJPEG
Edit username → 上記1.で設定したユーザー名
Edit password → 上記usernameに対応するパスワード


以上です。
自宅の様子を出先にて、Pocket Wifi経由で参照していますが、3fpsくらいのフレーム更新はあります。結構思っていたより、スムーズで快適です。

端末は縦横画面共に使用できます。Nexus oneに横画面で表示したイメージはこんな感じ。
home_shoji.png






posted by いしいっち at 00:37| Comment(0) | TrackBack(0) | Android利用関係 | このブログの読者になる | 更新情報をチェックする