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_DaikinLibrary修正讓Library傳送訊號更穩定。
| 日期 | 內容 |
|---|---|
| 2017/04/27 | 更新內容以符合新版本Library |
Trackbacks/Pingbacks