リモート機器制御

WiringPiを使ってCGI経由のGPIOポート制御はできたので、これを以前に試したMotionアプリによるWebカメラ配信と組み合わせれば、遠隔地の機器をブラウザでOn/Offさせて、その結果をリアルタイムにブラウザで確認する事ができる。

実はこれがやりたくてWebカメラやCGIの実験をあれこれと行ってきたのだ。

WebカメラWiringPi(2) CGI編で書いた内容に従って、ブラウザでWebカメラの画像の表示と、CGIでLEDのOn/Offが行える状態にようになっていれば、あとはそれを組み合わせれば良いのでそれほど面倒ではない。
HTMLファイルにWebカメラの動画表示と、その下にインラインフレームでLED制御のCGIを実行できるように記述する。

<html>
<head>
<style type="text/css">
    body { 
    text-align:center;
    background-color:#ffffff;
    }
    .container {
    width:100%;
    }
    .motion {
    border: 0;
    width: auto;
    height: auto;
    }
    .clear {
    clear:both;
    }
</style>
</head>
<body>
<h1>WebCam View</h1>
<a href="http://192.168.1.9:8081"><img class="motion" src="http://192.168.1.9:8081" /></a>
<iframe src="/cgi-bin/wiringcgi.py" name="cgiframe" width="100%" frameborder="0"></ iframe> ※
</body>
</html>

(※blogの制限でiframeタグを記述すると消されてしまうので、閉じるタグに余分なスペースを入れてある)

このHTMLファイルをcgi-binフォルダの上の階層にあるフォルダに保存したら

$ sudo mkdir -p /var/run/motion
$ sudo motion
$ gpio export 23 out
$ gpio export 24 out
$ gpio export 25 out
$ python -m CGIHTTPServer

でMotionとCGIサーバを起動。

ブラウザから”[Raspberry PiのIPアドレス]:8000/motion.html”にアクセスすれば、以下のようにWebカメラの画像とLEDのOn/Offボタンが表示されるはずだ。

webled

ブラウザをクライアントとしてLEDをOn/Offさせるだけなら、Arduino+ネットワークシールドでも可能だが、Webカメラ配信まで自力でやろうと思ったらかなり困難だろう。
もちろんArduinoにはArduinoの良さがあるし、部品を買ってきて自分で安価に作れてしまうのは非常に大きなメリットなので、用は適材適所。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中