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程式,並且:Arduino_DY_IRDaikin
之後
選擇加入.ZIP程式庫(Add Library...)
來加入新的Library,選擇剛下載好的`Arduino_DY_Daikin-master.zip如下圖:
加入成功後就能看到~以目錄~名稱為Arduino_DY_IRDaikin
的Library已經加入:
開啟範例程式
Library已經有一個範例可以測試,所以開啟Arduino程式並且開啟範例PowerOnOff
:
接下來就會開啟一個視窗並且會看到範例程式的內容:
按下上傳(Upload)鍵上傳就完成基本動作。
首先解說一下範例程式,程式載入至Arduino開發版時,你開啟Arduino內建的Serial Monitor
後,傳送New line
(\n
、Enter
)就能傳送開、關的遙控訊息至大金冷氣,此時你要確認一下大金冷氣是不是會有這樣的動作(發射正確、接收也正確時,大金冷氣會嗶嗶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 搖控
- 大金冷氣 搖控
- 大金 紅外線