LED照明のコントロールスクリプトのエラーが相変わらず未解決。
いろいろ調べると、CGIスクリプトの最後に、画面表示させるスクリプトが必要との情報を得た。
<xmp> my $url="http://runrun.dip.jp/index.html"; print "Location: $url\n\n"; </xmp>
USBポート制御の後に上記を追加したところ、見事にエラーが無くなった。
CGIは本当に難しいね。
頑張らないけど良いでしょう
LED照明のコントロールスクリプトのエラーが相変わらず未解決。
いろいろ調べると、CGIスクリプトの最後に、画面表示させるスクリプトが必要との情報を得た。
<xmp> my $url="http://runrun.dip.jp/index.html"; print "Location: $url\n\n"; </xmp>
USBポート制御の後に上記を追加したところ、見事にエラーが無くなった。
CGIは本当に難しいね。
今日は仕事中に、昨夜のLED照明のコントロールスクリプトのエラーの原因を考えていました。
ネットで調べていると、HTMLからcgiスクリプトを呼ぶ例題があったので、早速試してみました。
—— HTML から cgi を呼び出す HTML文 ————
<xmp> <FORM METHOD="post" ACTION="http://blue.runrun.dip.jp/cgi-bin/irrc.cgi"> <SELECT NAME="LED"> <OPTION VALUE="P1">LED 1</OPTION> <OPTION VALUE="P2">LED 2</OPTION> <OPTION VALUE="P3">LED 3</OPTION> </SELECT> <INPUT TYPE="submit" VALUE="PUSH"> </FORM> </xmp>
—————————————————
cgiで、HTMLからパラメータを抽出するには以下のようにします。
—— cgi —————————————-
<xmp> my $buffer=""; if ($ENV{'REQUEST_METHOD'} eq "POST"){ read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } my @pairs = split(/&/,$buffer); </xmp>
—————————————————
後は、HTMLでVALUEに設定した「P1」から「P3」のパラメータを取り出して、事前に収集した「P1」から「P3」対応の赤外線コントローラの該当データをUSBポートに送出して無事、動きました。
赤外線リモコン「PC-OP-RS1」を使ってLED照明をコントロールする仕掛けをWebサーバーに作っているが、動作はするものの、ログにエラーを吐いている。
エラーとなるCGIに渡されるパラメータを取り出す部分。
エラーログは以下のとおり。
[Mon Jan 07 23:09:45 2013] [error] [client 192.168.1.13] Use of uninitialized value $name in string eq at /usr/local/www/cgi-bin/irrc.cgi line 56., referer: http://blue/
しばらくHTML何ぞメイキングしていないので、何故、エラーになるのかわからない。
本日は、昨日届いた「パソコン用学習リモコン PC-OP-RS1」をWebからコントロールするための仕掛けに挑戦してみました。
CGIスクリプトは、昨日紹介した、「仙石浩明氏」のスクリプトを流用。
HTMLでボタンを表示させ、ボタンを押すとCGIスクリプトが起動して目的のLED電球をオン・オフさせると言う簡単なものです。
しばらくHTMLとCGIのコーディングから遠ざかっていたので、LED電球の制御はできるものの、何やらエラーが表示される。
まあ、致命的なエラーでは無いようなので、時間をかけてHTMLを再勉強するか・・
とりあえずは、Webサーバーにアクセスして制御できることは確認できたが、インターネットからアクセスするには、ポートを慎重に選定することと、パスワード等によるアクセス制限も考えないと・・・
あと、SW付きOAタップの制御についても、トライしてみたいと思っている。
自宅にはSW付きOAタップが5個もあり、22個のSWを一々手動でオン・オフを行っているのだから、何とも非効率な部屋だ。
これをWeb経由でオン・オフを行えれば非常に効率的になるのだが・・・
それに、欲を言えば、それぞれの動作状態を把握でき、個々のコンセントの消費電力も把握できれば・・何て、夢は次から次と広がってくる。
元旦に発注したBUFFALOの「パソコン用学習リモコン PC-OP-RS1」が今日、届きました。
早速、我が家のサーバーに接続して動作を確認しました。
我が家のサーバーは「FreeBSD 8.3-RELEASE-p5」で、この「PC-OP-RS1」はWindowsを対象としたリモコンなので、動作させるためには自前でソフトを作ってやらねばなりません。
発注後にネットで調べてみると、「仙石浩明氏」のブログに丁度良いスクリプトが紹介されていたので、使わさせてもらいました。
しかし、記事の説明はLinuxでの説明でしたので、FreeBSDではデバイスの指定が異なる(/dev/ttyUSB0 ⇒ /dev/ttyU0)のとパーミッションの変更を行わないとそのままでは動作しないので注意しなければなりません。
今回、試しにコントロールしてみたのは、「ELPA」のLED照明です。
3個のLED電球はそれぞれ、赤外線コントローラで点灯を制御できます。
前述のスクリプトを修正し、コマンドレベルでコントローラのボタンを押すと、ボタン対応の制御信号を拾う事ができました。
その後、収集した制御信号をスクリプトに埋め込み、スクリプトを実行するとオン・オフの制御が出来ました。
今後は、インターネット越しにHTTPベースで制御して見ようと考えてます。