次にこの
リモコンキットを玄箱Proで動作させます。
インターネットを調べると色んな情報があり、有り難く参考にさせて頂きます。
参考ページ
PC-OP-RS1 on Linuxに関するメモ赤外線学習リモコン PC-OP-RS1 を使ってみたwebからリモコン操作ちなみに、私の玄箱ProはDebian 6.0 (squeeze)ベースにApache+PHPをインストールしてます。
手順としては以下の流れにそって行います。
1) リモコンキットを玄箱Proで認識させる
2) リモコンテストを行う。
3) Web上からリモコンを制御する。
リモコンキットを玄箱Proで認識させる1) モジュール追加
> /sbin/modprobe ftdi_sio vendor=0x0411 product=0x00b3
2) リモコンキットを玄箱Proにさす。
3) 認識しているか確認。
> dmesg
以下の一行が表示されてttyUSB0にAttacheされてればOK!
[ 59.888239] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0
4) デバイスのパーミッションを変更。
> chmod 666 /dev/ttyUSB0
折角なので・・・玄箱Proがリブートしたり、USBの抜き差しをしても認識するようにしておきます。
5) modprobeを自動的に行うようにする。
> echo "/sbin/modprobe ftdi_sio vendor=0x0411 product=0x00b3" >> /etc/rc.local
6) パーミッションの変更も自動で行えるように、以下のファイルを作成。
/etc/udev/rules.d/52-ftdi-serial.rules
そのファイルに以下の一行を追加。
BUS=="usb", SYSFS{ idVendor}=="0411", SYSFS{ idProduct}=="00b3", MODE="0666"
これでUSBを抜き差ししても、リモコンキットは認識されます。
リモコンのテストを行う1) リモコンを制御するプログラムの入手。
ここからrc_rec.c, rc_send.cをダウンロード。
2) コンパイル
> gcc rc_rec.c -o rc_rec
> gcc rc_send.c -o rc_send
3) リモコンの学習
以下のコマンドで、学習開始。
> ./rc_rev test.data /dev/ttyUSB0
test OK
init OK
rec start
リモコンキットの受光部にリモコンを近づけて送信してrec OKが表示されたら完了。
4) リモコンの送信
>/rc_send test.data 1 /dev/ttyUSB0
ちゃんと動くかどうか確認します。
ちなみに、1というのはリモコンの送信部のポート番号を表していて、以下のように割り当てられています。
1: A - 黄色のシール(送信部付近)
2: A - シールなし
3: B - 黄色のシール
4: B - シールなし
Web上からリモコンを制御する1) webサーバーの準備
ここに書いてあるようにちゃんとパーミッションを分けて管理することをオススメします。
私の場合、外からアクセスできないようにしているので、var/www/rcというディレクトリにrc_rec, rc_send, リモコンデータ等、全部放り込みました。
リモコンデータのファイル名にルールを決めて、テレビであれば"tv_xxx"という風に先頭の文字で判断できるようにしました。
参考までにphpファイルをここに置いておきます。
{cmVtb3RlX2lwaG9uZXNa.php}
CSSファイルは面倒なので載せませんが、適当に追加して下さい。
2) iPhoneからアクセス
safariで以下のアドレスを開くとこんな感じで表示され、ボタンを押すとちゃんと動作します。
http://玄箱ProのIPアドレス/rc/remote_iphone.php
3) 動かない場合は・・・
ちなみに、動かない場合はディレクトリやデバイスのパーミッションを怪しんで下さい。
添付のPHPの以下の箇所を変更して、メッセージを表示するようにして下さい。
//$dev="/dev/ttyUSB0"; <- コメントを外す
$dev="/dev/ttyUSB0 > /dev/null &"; // background <-コメントアウトする
また、/var/www/rc/rc_send.logというログファイルも作られているので、参考になります。
これで寝室にいてもリビングの照明やエアコンなどのコントロールができ、更にグータラ生活に拍車がかかりました。(笑)