ラズパイを学習リモコンにしてスマートホーム
ラズパイを学習リモコンに
RaspberryPi4とUSB接続の学習リモコンを使い家電コントロールにチャレンジ
使うのはこれ、ビットトレードワンの赤外線リモコンアドバンスADIR01P
パソコンでリモコンコードを受信・保存・送信出来る製品。専用のPCアプリを使いリモコン対応機器のコントロールやリモコンでPCをコントロールできるという物。ラズパイ用のコマンドラインツールが公開されていてWEB記事も多数有りこれなら何とかなるかなと。本体以外に通信の出来るminiBケーブルが別途必要
ラズパイの前にPCで
まずはPCと送信設定アプリケーション v1.2で試してみる。レグザTVリモコン(CT-90352)の電源ボタンを記憶させ送信。問題なくON・OFF出来た。
ラズパイでセッティングしてみたが
ラズパイと接続し$ lsusbコマンドで接続を確認。libusb-1.0.0 libusb-1.0.0-devとコマンドラインツールbto_advanced_USBIR_cmd-1.0.1をインストールしターミナルからコマンドを実行。受信・受信停止・ファイルに書き込みまではOKだが下記送信コマンドを実行しても送信LEDは点灯するがTVは反応しない。
$ bto_advanced_USBIR_cmd -d `cat data.txt`
READMEや諸先輩方の投稿をみてもこれで動作しているらしい。似たような名前のツールで試して見るが結果は同じ、通信速度を変えたら出来た的な方もいて自分もきっとそうだ!と都合よく脳内変換。しかも通信速度変更コマンドもエラーになってしまい挫折(パッチを当てて解消!って投稿があったがそんな高等な事理解出来ず。誰か教えて)さらに先のPC用ツールでコピーしたファイルで出来たという話もあり試すがダメ。家電協・NEC等コードのコマンドもダメ。行き詰まる。しばしフリスクケース作成に逃避<*:*>
気を取り直してツールの中にあるGUIラッパーなる物を試してみると、あれTVが付いた!!と言うことはコード学習は間違っていない。送れてない?という事で改めてADIR01Pの投稿をあさりまくり、ついに見つけた(自分で学習せい)
bto_advanced_USBIR_cmd -d $(cat data.txt)
緑の様に打ち込むと出来た。ファイルの指定の仕方が間違っていただけ?これって当たり前の事?
エアコンのリモコンを学習
TVのオンオフが出来たので次にエアコン(三菱)のリモコンを学習してみる
TVの時と同じようにADIR01Pに向けて学習させてみるが、ピーとエアコンから音がするだけでONしない、何度か試しているうちに違和感に気付く。エアコンONの時の音はピィなのにピィーと鳴る、明らかにOFFを学習している感じ。どうしてかは分からないがいつも通りにリモコンをエアコンに向けてONさせながら学習させたら上手くいった。OFFも同じ、実際に作動状態からOFFにする所で学習させる事でコード取得出来た。エアコンのコード学習は難しい?みたいだが以外とこんな所に気付いてないだけかも。
学習出来たリモコンリスト
学習出来たリモコンを随時アップとりあえずON・OFFだけ確認(型番はリモコン型番)
やはり、実際にリモコンで機器を操作させる時の信号を読み取らせないと学習出来ないまた、リモコンのボタン操作の時間も同じでないと上手く行かない(いつも通りの押し方・時間で)