智能空调解决方案:8266+红外控制模块
前言
炎炎夏日, 你是否有这样的困惑:
睡觉时,并不觉得热,然而后半夜被热醒,然后在极其不爽的情绪下,开启空调继续谁?
睡觉时,空调温度刚刚好,然而后半夜下雨了,被冻醒?
看完我们今天的内容,我相信以上两个问题都能被解决,而且方法绝对简单,好了,废话少说,让我们直接开始吧。
智能空调解决方案
准备工作
环境准备
这块我们就不展开讲了,包括Arduino IED
的安装和配置、esp8266
开发板的使用等, 可以参考我们之前的内容。
材料部分
序号名称数量备注1esp8266开发板1开发板2红外发射模块1用来发射控制信息,38KHZ3红外接收模块1用来接收空调遥控器红外信号,解码信息,38KHZ4DHT11温湿度传感器1用来采集房间内的温度和湿度5杜邦线若干模块连接
本次项目成本总计15
元左右,最贵的是esp8266
开发,12
元左右
解码空调遥控器信息
这里主要是通过红外接收模块和esp8266
开发板,接收并解析红外信息,为后面控制空调做准备,也就是把空调各种控制信息,包括开、关、温度加减、风速等控制信号输出并保存,这样我们在后续的控制中,可以直接通过esp8266
+红外发射模块来发射这些信息,从而实现空调的智能控制。
接收端接线
这里的接线比较简单,因为红外模块只有三个引脚,一个信号线,两个电源引脚,所以连接很简单:
序号 红外引脚 esp8266
1 out d5(GPIO14)
2 VVC 3V
3 GND G

电源部分可以连接3V3
或者5V
都可以,发送端建议连接5V
,不然距离太远发送的红外信号太弱,空调接收不到。
解码
这里解码我们要用到IRremoteESP8266
包下的一个示例项目,如果没有这个包的小伙伴先去安装这个包:

安装完成之后,连接esp8266
,然后打开Arduino IDE
,打开IRremoteESP8266
的示例项目IRrecvDumpV2
:

因为示例项目的默认接收引脚是14
,这也是我们前面接线用14
号引脚的原因:

将示例代码上传至esp8266
,然后我们打开串口监视器,端口115200
,拿遥控器对准红外接收模块,按下对应的键,终端便会展示该按键对应的控制信息:

这里我们把相关信息保存下,方便后面使用。
空调控制红外信息发射
发射端连线
序号 红外引脚 esp8266
1 out d2(GPIO4)
2 VVC VV
3 GND G
esp8266
的vv
引脚是5v
,电压高一点确保红外信号可以发射远一点

温湿度传感器连线
序号 红外引脚 esp8266
1 out d5(GPIO14)
2 VVC 3V
3 GND G

发射端编码
编码本身很简单,主要还是实现思路,先说我的需求:
通过温度传感器来采集温度,温度作为控制依据;
当温度高于某个值(比如30度),且空调未开启,则发送开启空调指令;
当温度低于某个值(比如26度),且空调是开启的,则发送关闭指令
下面是代码实现
当然你还可以根据你的需要增加控制指令,比如温度低于某个温度(比如18度),开启制热模式,或者根据当前室温调整空调温度,方法类似。
结语
这个项目完全是兴起之作,本来以为应该很简单,然而当真正开始的时候,才发现我对红外通信知之甚少,比如NEC
协议,比如红外编码解码,所以毫无意外刚开始就卡在遥控器解码这里了,结果差点放弃,然后我又不死心地搜了一些相关博客,最终顺利完成。
参考内容:https://www.elecfans.com/d/1939738.html
- END -