アフィリエイト広告を利用しています

エアコンのリモコンの解析

はじめに

これからエアコンのリモコンについて話をしよう。

普通の家電のリモコンは、すごくシンプルな作りになっている。

例えばテレビのリモコンでONというボタンを押したら、1種類の赤外線データしか飛ばないようになっている。
もしかしたら、リモコンによってはON/OFFが同じボタンかもしれない。

それでもやはり同じで、基本的には一つのキーに1種類のデータしか割り当てられていない。

学習リモコンで簡単にキーを割り当てられる。


しかし、エアコンのリモコンは違う

冷房の電源をONした場合、温度設定が25Cの時と26Cの時では出力されるデータが若干違ってくる。
仮に同じ25Cの時でも、風向きが上と下の時ではやはり異なる。

つまり冷暖房の種類、風量、温度、風向き、その他諸々の設定によって電源ONのデータは何種類も存在する。

この煩わしい問題にXBeeシステムでは冷房ONと各温度設定のコードを用意していて、以下のように2種類のリモコンデータを送っていた。

1.冷房の電源をON (風量・風向きは全て自動に固定)
2.冷房の28C設定 (風量・風向きは全て自動に固定)

温度だけは変えられるけど、それ以外の設定(風向き・風量・その他)は決め打ちであったので、本物のリモコンにはかなわなかった。

基本ソフトウェアなので全ての組み合わせをキャプチャしてテーブル化するというのも一つの手段だが、今回は実際に解析をして本物のリモコンをエミュレーションするようなソフトウェアを作成することにした。

私の家では、2006年の三菱製と2011のシャープ製の2種類のエアコンを使っている

2006年三菱製

ここからは本当に地道な作業なのだが、何パターンもデータを取ってエクセルシートにまとめ、そこから法則性を見つける

Screen Shot-M.png

上記のデータから以下のような法則性がわかる。

1) データが必ず0~17の18byteの固定長であること。
2) 最後の17byte目がCheck Sum(0~16byte目の足し算の合計)になっていること。
3) 冷房の電源ON、暖房から冷房、温度切り替えの3種類の動作において、最終設定が同じであればリモコンコードは同じになる。(B,D,E)
4) 電源OFFの時は5 Byte目が変わる。(F)
5) 風速切り替えは9 Byte目の下3bitに割り当てられている(F,G,H,I)
6) 風上下は同じく9 Byte目の上5bitに割り当てられている(J,K)
7) 風左右は8 Byte目の上位4bitに割り当てられている(K,O,P)
8) 温度は7 Byte目に割り当てられておいる。(W,X,Y)

というような具合にルールを見つけ、コツコツとSWを作っていく。
実は、こんな地味な作業をするよりテーブル化した方が早いかもしれない。。

2011年シャープ製

Screen Shot-S.png

前述した三菱とやはりルールが異なり、ざっと書くとこんな感じだ。

1) 0~12 byteの13byteの固定長。
2) 12byte目の上位4bitが0~12byte(下位4bit)のXORになる。
3) 最終設定が同じでも、OFF->ON、温度切り替え、風量変更、風向き変更など動作によってデータが異なる。(C,D,E,F,G,H)
4) 5 byte目と10byte目が動作に関係してそう。(C,D,E,F,G,H)
5) 温度設定は4byte目に割り当てられている。(J,K)

というような具合になる。

さいごに

そんなこんなでインプリするとこんな感じ。
エアコンのリモコンのメニューに風向きや風量などの設定が追加されて使い勝手がよくなった。

thumb_IMG_1029_1024.jpg

トラックバック

コメント

お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのコメント

   
検索
検索語句
記事ランキング
最新記事