ウエブカメラで見守り

USB ウェブカメラで定期的に画像を撮影し、先にアカウント登録で取得した view_id を指定して MONITOR™ に定期的に送信します Web Browser は常に MONIOR™ からの最新の画像を表示します

必要なもの

どのような USB ウェブカメラでも利用できます。何年も前に使っていた中古の Web 会議用のカメラでも、2$程度で購入できる安価なカメラでも問題ありません

カメラと通信を制御するための安価なボードコンピュータが必要です Raspberry Pi や BeagleBone、およびその類似品などの安価な市販品の使用を想定しています Linux が動作し、USBが利用できて、インターネットに接続できるのであれば PC でもかまいません

インターネットへの接続手段は固定の定額制ネットワークでも、3G通信網でもかまいません 3G通信網への接続のコストは一般に高価になりがちなのですが、MONITOR™ は静止画による見守りなので送信間隔を調整することで海外の多くの地域も含めて月額 10$ 程度の通信費に収めることができます 3G通信網の効果的な利用方法についてはこちらが参考になるものと存じます

撮影と送信を行うソフトウェア "View" をこちらに用意してあります。以下、View のインストールと設定について説明しますが、もし "View" を使用せずに御自身でソフトウエアをご用意される場合は本稿末尾の Apendix をご参照ください

準備

前述の通り Linux が動くきインターネットに接続できるボードコンピュータを用意します
コンソールを開き、ソフトウェア "View" のインストールをおこないます

View のインストール

release から最新版の .zip をダウンロードして展開するか、下記のように git clone を行ってください

git clone https://github.com/UedaTakeyuki/view.git

View のセットアップ

インストールしたディレクトリに入り、下記の setup.sh コマンドで必要なインストールと設定をおこないます

./setup.sh

view_id の設定

下記の setid.sh コマンドで view_id を "View" に設定します 例として view_id が axwdjqwy であれば、以下のようにコマンドを実行してください

./setid.sh axwdjqwy

テスト

ボードコンピュータに USB ウェブカメラを接続し、view.sh コマンドでカメラ画像を撮影して送信します

./view.sh

下記のような一連のログが表示され、すべてが正常に動作した場合は末尾が {"ok":true} となります

--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Delaying 1 seconds.
--- Capturing frame...
Skipping 20 frames...
Capturing 1 frames...
Captured 21 frames in 0.67 seconds. (31 fps)
--- Processing captured image...
Writing JPEG image to '/tmp/20180823190339.jpg'.
{"ok":true}

この時、Web Browser で MONITOR™ を見ると送信した写真で画面が更新されています

なにかがうまくいっていない場合、末尾は {"ok":false,"reason":"XXX"}となります 例えば

{"ok":false,"reason":"ViewID not valid"}

このように表示された場合は view_id が正しく設定されていません

デバッグ

MONITOR™ の画面が更新されない場合は、view.sh コマンドに下記のように test オプションをつけて試してみてください

./view.sh test

test オプションがあると view.sh はウエブカメラを使わずに、自身の持つテストパターンを使って画像の送信を試みます
下記のようなテストパターンがMONITOR™ に表示されれば、ボードコンピュータと MONITOR™ サーバの間のネットワークの接続は問題がないので、カメラの接続に問題があるのかもしれません
テストパターンも表示されないのであれば、そもそもボードコンピュータがインターネットに接続できていない可能性が高いです

テストパターンが問題なく表示されていた場合は次に、keep オプションをつけて試してみます

./view.sh keep

keep オプションがあると view.sh は送信後の画像ファイルを削除せずに "/tmp" /tmp/20181114201302.jpg のような撮影日時をファイル名とする .jpg ファイルを残します
このファイルがない、画像アプリで開けないなどの問題がある場合は、ウエブカメラ自身の問題、もしくはウエブカメラとコンピュータの接続の問題である可能性が高いです

自動起動設定

電源起動後に5分間隔で自動的に撮影と送信を行うには、下記のように autostart.sh コマンドを実行します

# set autostart on
./autostart.sh --on

以下で、自動起動を止めることもできます

# set autostart off
./autostart.sh --off

技術的には、autostart.sh は内部で view.sh を systemctl の timer service に設定します
autostart.sh を使うかわりに御自身で crontab に設定してつかっていただいてももちろん問題ありません

自動起動の現在の状況は --status オプションで確認できます

./autostart.sh --status

正常に設定されている場合は下記のような一連の表示が戻ります

pi@raspberrypi:~/view-v_1.1.1 $ sudo systemctl status view.service 
● view.service - Take photos & Post to the monitor
   Loaded: loaded (/home/pi/view/view.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) since Wed 2018-11-14 20:42:26 JST; 5s ago
  Process: 7057 ExecStart=/home/pi/view/view.sh (code=exited, status=0/SUCCESS)
 Main PID: 7057 (code=exited, status=0/SUCCESS)
● view.timer - Take photos & Post to the monitor
   Loaded: loaded (/home/pi/view/view.timer; enabled; vendor preset: enabled)
   Active: active (waiting) since Wed 2018-11-14 18:38:51 JST; 2h 3min ago

Nov 14 18:38:51 raspberrypi systemd[1]: Started Take photos & Post to the monito

画面が入力待ちになる場合は "q" キーを押してください

自動起動が止まっているときは以下の表示になります

Unit view.service could not be found.
Unit view.timer could not be found.

APPENDIX A. 画像送信のインターフェース

御自身でアプリケーションをつくられる場合、下記 URL への HTTPs での画像のポストをおこなってください

https://monitor3.uedasoft.com/postpic.php

この際、viewid パラメタに送信先の view_id を指定してください

例えば、view_id が axwdjqwy、fswebcam を使って撮影した画像を curl で送信する場合は以下のようになります

your_view_id=axwdjqwy

filepath=/tmp/`date +%Y%m%d%H%M%S`.jpg
fswebcam $filepath -d /dev/video0 -D 1 -S 20 -r 320x240
curl https://monitor3.uedasoft.com/postpic.php -F viewid=$your_view_id -F upfile=@$filepath

撮影画像のサイズは前述のサンプルのように 320x240 にしてください
320x240 の画像一枚は、撮影条件にもよりますが 100KByte 程度になります

送信間隔は1分以上開けてください
3G通信網を利用して送信する場合、1Gバイトに付き500円〜1000円程度の通信費であることが多いようです
月の通信費を 1Gバイト程度に収めるには、月に1万回程度、つまり一日330回程度、1時間に13回程度、 つまり、5分に一回程度の送信頻度が妥当になります

参考までに、古いウエブカメラや安価なウエブカメラを使う場合はこのサンプルの -D 1 -S 20 ように撮影までのディレイを指定したり、最初の数枚を捨てたりすると上質な画像が得られることが多いです

results matching ""

    No results matching ""