Arduinoライブラリでエアコン(HEAT PUMP)を制御 家庭でできるIoT! 1パルス目 [ESP32]
寒くなってきたので、エアコンを制御してみましょう!と言う話です。
カテゴリはESP32ですが、使っているのはESP8266です。あまり変わりませんが!
さて、とっくに寒くなってるじゃんね~!って感じですが、昔からやっているネタの再発掘。
エアコン、業務用とかではなければ赤外線リモコンが付属していると思います。
このエアコンの赤外線制御は結構面倒くさい感じでして、
1.メーカーがリモコンコードの仕様を出さない
2.コード長が100bitを超える
など自分の家のエアコンのコードを解析するのも一苦労です。
んが、世の中には地道にコード解析、ライブライを提供してくれる人もおるんですね!
ここで公開されているライブラリを利用しています。
https://github.com/ToniA/arduino-heatpumpir
HEATPUMPで検索すれば、Arduino IDEからライブラリ管理でインストールできます。
また、ライブラリ管理からIRremoteESP8266もインストールしておきます。多分、、、
ソースコードが有るので、Arduino以外の環境への移植も可能な気がします。
ダイキンのエアコンの電源入り切りサンプルです。
ESP8266の12ピンに赤外線LEDを接続しました。12ピン側がアノード、カソード側は100Ωの抵抗を通してGNDに接続しています。
赤外線が出ているかどうかは見れば、、、いえ目で見ても判らないので、スマフォのカメラを通してみればなんとなく判りますね。
/* ダイキンのエアコンの制御サンプル 以下のライブラリを利用する。 Arduinoのライブラリマネージャーからもインストールできる。 https://github.com/ToniA/arduino-heatpumpir */ #include <DaikinHeatpumpIR.h> /*************************************************************************/ /* defines */ /*************************************************************************/ #define IR_CONT 12 // Ir control /*************************************************************************/ /* instances */ /*************************************************************************/ IRSenderBitBang irSender( IR_CONT ); /* 赤外線送信用インスタンスの生成。引数は赤外線LEDが接続されているピン番号 */ HeatpumpIR *airCon = new DaikinHeatpumpIR(); /* ダイキンのエアコンのインスタンスの生成 */ /*************************************************************************/ /* setup */ /*************************************************************************/ void setup() { Serial.begin( 115200 ); pinMode( IR_CONT, OUTPUT ); digitalWrite( IR_CONT, LOW ); while ( 1 ) { /* ir instance,power,mode,fan,temperature,swing vertical,swing horizontal */ airCon->send( irSender, POWER_ON, MODE_HEAT, FAN_3, 24, VDIR_DOWN, HDIR_AUTO ); /* power on */ delay( 30 * 1000UL ); airCon->send( irSender, POWER_OFF, MODE_HEAT, FAN_3, 24, VDIR_DOWN, HDIR_AUTO ); /* power off */ break; delay( 10 * 1000UL ); } } /*************************************************************************/ /* loop */ /*************************************************************************/ void loop() { }
ライブラリを組み込んでみればエアコンの制御は非常に簡単だと思います。つくづくライブラリ提供者に感謝です。
自分の家のエアコンにどのリモコンコードを適用すればイイのか?は、ライブラリの作例にsimpleが有り、これを実行すれば判ります。
ライブラリの使い方が判ってしまえば、これをBlynkで制御!とか余裕ですね!
2019-12-06 12:00
nice!(0)
コメント(0)
コメント 0