エアコンコントローラーを買ってみた

I2Cコマンドを使う

メルカリで買ってみた


メルカリのページ
IchigoJamプログラミング例
読み出した温度が22.5℃未満だったら、パナソニックのエアコン(その2)を、温度25℃/風量2/風向上下2/風向左右自動で暖房運転する例です。
 10 R=I2CR(#37,0,0,#700,2)
 20 IF PEEK(#700)*16+PEEK(#701)<22*16+8 POKE #700,#12,2,25,2,2,0:R=I2CW(#37,#700,6)
読み出した温度を画面に小数点以下4位まで表示する例です。(但しこの例は、温度0℃以上だけに限定して簡略化してあります。)
 30 R=I2CR(#37,0,0,#700,2)
 40 ? PEEK(#700);".";
 50 T=PEEK(#701):IF T=1 ?"0";
 60 ? T*625

接続してみた


基板を購入して、配線図も付けてもらった
PICマイコン・赤外線LED・温度センサーをI2Cコマンドで制御する。
なので、マイコンのプログラムがわからんとクローンは作れません。
IchigoJamのプログラムは簡単。I2CRで温度の読み出し、I2CWでエアコンにパラメータ送信
空いているR6 R7は拡張端子に抵抗を挿すか、他に基板を挿して対応する。


IchigoJamをケースに入れているとピンが届かないので拡張シールドの載せて、抵抗ではなくEEPROMシールドを挿入。

温度を測ってみた

温度センサーから値を読み出す。1分間隔で温度を計測しており直前の値が読み出される。
読み出した直後にも温度の計測が行われる。
R=I2CR(I2Cアドレス,コマンド送信アドレス,データ長,受信アドレス,データ長)
#700 温度の整数部
#701 温度の小数部 0〜15 1000/16=625 ×625で小数部が10進数表記になる。

10 'オンドセンサー
20 CLS
30 LC0,0
40 R=I2CR(#37,0,0,#700,2)
50 T=PEEK(#700)
60 ?T;".";
70 T=PEEK(#701)
80 IF T=1 ?"0";
90 ?T*625;
100 ?"゚C "
110 GOTO 30

エアコンを止めてみた

#700〜 パラメーターを書き込んで
R=I2CW(I2Cアドレス,コマンド送信アドレス,データ長) で
コマンドを送出
メーカー #11 #12 パナソニック #21 ダイキン #31 #32 三菱
動作 0オフ 1〜4はメーカーによる
温度 18〜30℃
風量 0自動 1〜5メーカーによる
風向上下 0自動 1〜6メーカーによる
風向左右 0自動 1〜5メーカーによる

エアコン側に受信した結果の表示がないので、動作でしか確認できないが。
信号送出に時間がかかるので、コマンド送信後は次のコマンド送信までにはWAITで2秒以上待つ必要がある。
10 POKE #700,#11,0,27,1,2,0
20 R=I2CW(#37,#700,6)

作れるかな?

設定した温度よりも上がったら、冷房運転開始 とか、下がったら暖房運転開始 とかの自動スタートプログラムが組めるかな
LEDの向きはとくにエアコンを狙わなくてもおおよそで反応している。
信号の送出機能が、エアコンのコントロールに特化しているので他の機器のリモコンは不可

タブを閉じる