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

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