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 |