パソコン用学習リモコン PC-OP-RS1(その4)

今日は仕事中に、昨夜の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(その3)

赤外線リモコン「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(その2)

本日は、昨日届いた「パソコン用学習リモコン PC-OP-RS1」をWebからコントロールするための仕掛けに挑戦してみました。

CGIスクリプトは、昨日紹介した、「仙石浩明氏」のスクリプトを流用。
HTMLでボタンを表示させ、ボタンを押すとCGIスクリプトが起動して目的のLED電球をオン・オフさせると言う簡単なものです。
しばらくHTMLとCGIのコーディングから遠ざかっていたので、LED電球の制御はできるものの、何やらエラーが表示される。
まあ、致命的なエラーでは無いようなので、時間をかけてHTMLを再勉強するか・・

とりあえずは、Webサーバーにアクセスして制御できることは確認できたが、インターネットからアクセスするには、ポートを慎重に選定することと、パスワード等によるアクセス制限も考えないと・・・

あと、SW付きOAタップの制御についても、トライしてみたいと思っている。
自宅にはSW付きOAタップが5個もあり、22個のSWを一々手動でオン・オフを行っているのだから、何とも非効率な部屋だ。
これをWeb経由でオン・オフを行えれば非常に効率的になるのだが・・・
それに、欲を言えば、それぞれの動作状態を把握でき、個々のコンセントの消費電力も把握できれば・・何て、夢は次から次と広がってくる。

パソコン用学習リモコン PC-OP-RS1

元旦に発注したBUFFALOの「パソコン用学習リモコン PC-OP-RS1」が今日、届きました。

早速、我が家のサーバーに接続して動作を確認しました。
我が家のサーバーは「FreeBSD 8.3-RELEASE-p5」で、この「PC-OP-RS1」はWindowsを対象としたリモコンなので、動作させるためには自前でソフトを作ってやらねばなりません。
発注後にネットで調べてみると、「仙石浩明氏」のブログに丁度良いスクリプトが紹介されていたので、使わさせてもらいました。
しかし、記事の説明はLinuxでの説明でしたので、FreeBSDではデバイスの指定が異なる(/dev/ttyUSB0 ⇒ /dev/ttyU0)のとパーミッションの変更を行わないとそのままでは動作しないので注意しなければなりません。

今回、試しにコントロールしてみたのは、「ELPA」のLED照明です。
3個のLED電球はそれぞれ、赤外線コントローラで点灯を制御できます。

前述のスクリプトを修正し、コマンドレベルでコントローラのボタンを押すと、ボタン対応の制御信号を拾う事ができました。
その後、収集した制御信号をスクリプトに埋め込み、スクリプトを実行するとオン・オフの制御が出来ました。

今後は、インターネット越しにHTTPベースで制御して見ようと考えてます。

2013年正月

今年もまた新年が来て、元旦も何事も無く過ぎて行く。
また一つ歳を取り・・・この歳になるともう、歳を重ねるのに寂しさを感じてしまう。
今年は何をしようか、とか目標をあれこれと思案していた頃が懐かしく感じてしまう。
年末は、BSで高倉健の「幸せの黄色いハンカチ」「駅 STATION」を見ながら、昭和の良き時代の北海道を懐かしんでいた。(昭和は本当に良かった・・・)
年末はあれほど荒れた天候だったのに、今年の元旦は穏やかな1日だった。

で、今年は何をしようか、ということだが、年末にいろいろと考えていた家電の電源コントロールについて、自分なりに試してみることを目標にした。
まずは、BUFFALOの「学習リモコン PC-OP-RS1」が自分が考えていることに使えそうなので、Amazonに発注した。
2~3日で手元に届くだろうから、ネットで情報収集して、我が家のサーバーから制御する仕組みを実験してみようと思っている。
若い頃の様な根気が無くなってきているので、多少時間はかかると思うが、今年度で退職、4月からは契約社員となる身だから、時間はたっぷりとあるので暇つぶしには丁度良いかもしれない・・・・。