Arduino遙控大金(daikin)冷氣 (2)
前篇Arduino遙控大金(daikin)冷氣 (1)提到使用Arduino配合Arduino_DY_IRDaikin Library讓Ardino能夠控制大金冷氣讓它關啟或關閉及設定一些功能,距上篇到現在約一年左右,使用下來蠻有心得的,適逢夏季來臨,想必許多Maker可能也會想要嘗試一下,所以接下來會再說明清楚一點如何使用它。
功能示意圖參考(利用Arduino已完成具有控制大金冷氣及提供溫溼度功能,並且能提供無線2.4G(nRF24L01)與另一個Arduino帶有Ethernet Shield功能的模組連接將資訊回傳及接受命令)
IR電路
這是帶有將紅外線發射功率放大的電路,這會比之前提供的電路增加紅外線發射的範圍:
下載Library
請參考:Arduino遙控大金(daikin)冷氣 (1)中有說明,此篇不再詳述。 將Library安裝完成後載入範例:’DaikinDemo’
流程說明
Arduino_DY_IRDaikin
能支援以ARC/BRC搖控器為主的命令,為了共通性考量目前只提供幾個控制命令:
on();//電源開啟 off();//電源關閉 setSwing_on();//擺動開啟 setSwing_off();//擺動停止 setSwingLR_on();//左右擺動開啟(冷氣搖控器本身必需支援) setSwingLR_off();//左右擺動停止(冷氣搖控器本身必需支援) setMode(1);//設定功能:送風、冷氣、除溼、暖氣(冷暖機型專用)、自動(冷暖機型專用) setFan(4);//風速:0、1、2、3、4、(5)自動、(6)夜晚 setTemp(25);//溫度18~32度
這些命令是改變即送將要送出訊號的資料內容,最後不管如何仍需要使用另一個指令:
sendCommand();
將控制訊號經過組合產生IR訊號資料從Arduino Pin D3
傳送出去,也就是說如果你將其他的控制命令設定完成後未執行sendCommand()
時,它只是將資訊組合完成,並未透過Pin D3
將訊號送出,後這點千萬要記住。
如果不做任何設定,預設要將傳送的狀態為:
電源:關 擺動:停止 功能:送風 風速:低 溫度:25度
範例說明:
#include <DYIRdaikin.h> DYIRdaikin irdaikin; int isOn; void setup() { Serial.begin(9600); //IR資料設定開始 irdaikin.on();//啟動電源 irdaikin.setSwing_off();//擺動停止 irdaikin.setMode(1);//冷氣 irdaikin.setFan(4);//風速最大 irdaikin.setTemp(25);//溫度設定為25度 //IR資料設定結束 //傳送設定好的IR資料至Pin D3 irdaikin.sendCommand(); isOn = 0; } void loop() { while (Serial.available() > 0) { if (Serial.read() == '\n') { if (isOn == 0){ isOn = 1; //電源關閉 irdaikin.off(); Serial.println("Turn Off"); }else{ isOn = 0; //電源開啟 irdaikin.on(); Serial.println("Turn On"); } //傳送設定好的IR資料至Pin D3 irdaikin.sendCommand(); Serial.println("Execute Command!"); } } }
以上範例中因其他功能在setup()
中已經設定好,於loop()
中只針對電源:開啟/關閉來控制,所以在將電源開啟時,相應的將功能設定為:
電源:關 擺動:停止 功能:冷氣 風速:最大 溫度:25度
結論
此篇簡略的將Library功能做個說明,補足前篇僅提供功能完成的訊息介紹,接下來會準備Arduino遙控大金(daikin)冷氣 (3) – 網路
說明如何配合Ethernet Shield
完成網路控制的展示,另外未來會提供新版的Arduino_IRremote_Daikin
Library修正讓Library傳送訊號更穩定。
日期 | 內容 |
---|---|
2017/04/27 | 更新內容以符合新版本Library |