Arduino遙控大金(daikin)冷氣 (1)

Arduino 遙控大金冷氣

今年夏天實在太熱了,剛好正在試Arduino,心想到是不是可以用Arduino + 紅外線來遙控家中的大金冷氣,如果成功後,再配上網路模組就能實現遠端控制,這也能算是個IoT吧?

準備工作

  • Arduino 目前只試過UNO、Leonardo這兩款
  • Arduino UNO/Leonardo、ESP8266、Ameba、STM32Duino F1
  • IR LED 需要的是發射端
  • Arduino_IRremote_Daikin 這是適用於Arduino的Library,整合修改後的IRremote與自制的IRdaikin
  • Arduino_DY_IRDaikin 這是適用於Arduino的Library,整合IRremote宣告PWM內容與自制的DYIRDaikin
  • 具備Arduino程式修改與上傳動作的能力

連接紅外線

將紅外線發射LED接至Arduino,如下面的示意圖:

紅外線LED的接地接至GND,另一端接至接腳3,如果您是Leonardo請接接腳2,這樣就完成電路連接非常簡單,但建議你可以將紅外線LED線延長,之後完成紅外線LED要與冷氣紅外線接收做個對準的動作會比較方便。

依照上圖的電路連接紅外線LED與NPN電晶體,NPN電路具有電流放大的功能,讓紅外線LED亮度可以達到最亮的程度讓搖控的範圍較大一點。

下載 Arduino_DY_IRDaikin

請到Github下載Arduino_DY_IRDaikin,這是將許多資訊整合後的版本給大金冷氣使用:

下載並解開後,將目錄名稱修成Arduino_DY_IRDaikin之後開啟Arduino程式,並且:

選擇加入.ZIP程式庫(Add Library...)來加入新的Library,選擇剛下載好的`Arduino_DY_Daikin-master.zip如下圖:

加入成功後就能看到~以目錄~名稱為Arduino_DY_IRDaikin的Library已經加入:

開啟範例程式

Library已經有一個範例可以測試,所以開啟Arduino程式並且開啟範例PowerOnOff

接下來就會開啟一個視窗並且會看到範例程式的內容:

按下上傳(Upload)鍵上傳就完成基本動作。 首先解說一下範例程式,程式載入至Arduino開發版時,你開啟Arduino內建的Serial Monitor後,傳送New line(\nEnter)就能傳送開、關的遙控訊息至大金冷氣,此時你要確認一下大金冷氣是不是會有這樣的動作(發射正確、接收也正確時,大金冷氣會嗶嗶2聲),並且Serial Monitor也會看到訊息:

Arduino_DY_IRDaikin Library

最基本的遙控函數如下:

 on();
 setSwing_off();
 setMode(1);
 setFan(4);//FAN speed to MAX
 setTemp(25);
 //----everything is ok and to execute send command-----
 sendCommand();

函數設計成當你所有的參數都設定完成時,再執行sendCommand()才會將資料轉成紅外線訊號出去,使用時必需要先在setup()中自行設定一組預設值,像上面的範例一樣,之後就能在loop()根據你的方式去變更,但一定要記住一點,你都變更完成時,一定要執行sendCommand(),否則紅外線訊號是不會發送的。

結語

Arduino 與紅外線在使上非常容易,也有現成的IRremote的Library能使用,但較難的是你要如何去解出遙控器的編碼這才是重點,這次的大金冷氣使用的方式較特別,當你每按一個遙控器按鍵時,它是將整個遙控機按鍵的控制資料全都送至紅外線,與一般的電視遙控器不同,電視遙控器每按一個鍵只送出那個按鍵的編碼,對觀察遙控器編碼比較單純,但大金遙控器使用的方式卻不同。

有了上面基本的基礎後,可以試著自行增加網路模組來完成網路控制的項目,現接段Danny已經有完成並測試約二個月左右,當你人不在家時,在回家前就能用手機先將冷氣開啟,回到家後就能享受涼快感,這也是不錯的DIY成就感。

參考資料

更新日誌

日期 內容
2017/04/26 更新內容以符合新版的Library
2014/08/27 初版

關鍵字

  • 大金 Arduino 搖控
  • 大金冷氣 搖控
  • 大金 紅外線