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