IRremoteESP8266库 红外控制空调方法

您所在的位置:网站首页 万能遥控器怎么打开格力空调开关 IRremoteESP8266库 红外控制空调方法

IRremoteESP8266库 红外控制空调方法

2024-07-10 13:38| 来源: 网络整理| 查看: 265

笔者最近在学习使用esp8266控制空调,其控制方法有如下三种,各方法均验证成功。

下载安装IRremoteESP8266

想要通过ESP8266控制空调,首先需要下载安装库,具体方法请读者自行查阅。

方法一

第一个方法,也是最简单、最常见的方法,通过红外接收头接收并解析红外原始数据,再通过send函数发送出去。 红外接收解析程序为该库自带例程IRrecvDumpV2。 烧录好,根据例程连接上红外接收头后,便可将红外发射的红外数据通过串口显示出来(本文以实验室的美的空调为例,因为没有遥控器,所以先用手机自带的万能遥控器)。 按下手机上空调遥控开机键后,串口打印出如下信息,将稍后其中的rawData数组复制到发送程序中。 在这里插入图片描述 本方法发送程序如下。

#include #include #include const uint16_t kIrLed = 4; IRsend irsend(kIrLed); //Timestamp : 000155.307Library : v2.7.19 //Protocol : COOLIXCode : 0xB29F40 (24 Bits)Mesg Desc.: Power: On, Mode: 0 (Cool), Fan: 4 (Min), Temp: 24C, Zone Follow: Off, Sensor Temp: Off uint16_t rawData[199] = {4418, 4488, 510, 1656, 534, 542, 536, 1632, 510, 1656, 510, 566, 510, 568, 510, 1658, 508, 568, 514, 564, 534, 1632, 512, 566, 510, 568, 518, 1674, 494, 1672, 486, 566, 512, 1656, 512, 1656, 512, 564, 516, 560, 518, 1650, 510, 1658, 534, 1632, 510, 1656, 510, 1656, 512, 566, 510, 1656, 512, 1654, 512, 566, 514, 564, 512, 566, 510, 566, 512, 566, 510, 566, 512, 1654, 514, 566, 534, 542, 512, 566, 510, 568, 512, 566, 512, 564, 512, 1656, 512, 566, 510, 1658, 510, 1658, 510, 1658, 508, 1656, 512, 1656, 510, 1656, 510, 5284, 4444, 4460, 512, 1656, 510, 566, 536, 1632, 512, 1656, 512, 566, 512, 566, 512, 1656, 514, 562, 512, 566, 512, 1656, 512, 566, 512, 566, 512, 1656, 510, 1658, 510, 566, 510, 1658, 510, 1656, 510, 566, 512, 566, 510, 1658, 510, 1656, 510, 1658, 510, 1656, 510, 1656, 512, 566, 512, 1656, 510, 1656, 510, 566, 512, 566, 512, 566, 510, 566, 512, 566, 516, 560, 512, 1656, 512, 566, 510, 566, 512, 566, 512, 566, 512, 566, 512, 566, 512, 1656, 512, 566, 510, 1656, 510, 1656, 512, 1658, 510, 1656, 510, 1656, 510, 1658, 510}; // COOLIX B29F40uint64_t data = 0xB29F40; void setup() { Serial.begin(115200); irsend.begin(); delay(1000); } void loop() { irsend.sendRaw(rawData, 199, 38); delay(2000); }

烧录好发送程序,可通过接收程序进行验证。

方法二

使用方法二,首先也需要通过红外接收程序解析出红外遥控器所用的协议,再创建对应协议类,便可随意更改参数并控制空调。 本方法发送程序如下。

#include #include #include #include const uint16_t kIrLed = 4; IRCoolixAC ac(kIrLed); void setup() { Serial.begin(115200); ac.begin(); delay(1000); } void loop() { ac.on(); ac.setMode(kCoolixCool); ac.setFan(4); ac.setTemp(24); ac.send(); delay(2000); } 方法三

方法三,在通过红外接收程序解析出协议数据后,便可以直接发送数据。 比如方法一中解析到的数据为COOLIXCode : 0xB29F40 本方法发送程序如下。

#include #include #include #include const uint16_t kIrLed = 4; IRsend irsend(kIrLed); //Timestamp : 000155.307Library : v2.7.19 //Protocol : COOLIXCode : 0xB29F40 (24 Bits)Mesg Desc.: Power: On, Mode: 0 (Cool), Fan: 4 (Min), Temp: 24C, Zone Follow: Off, Sensor Temp: Off uint64_t data = 0xB29F40; void setup() { Serial.begin(115200); irsend.begin(); delay(1000); } void loop() { irsend.sendCOOLIX(0xB29F40); delay(2000); } 注意事项

1、在使用各种协议时,需要在程序前面引用对应协议的头文件。 该库具体包含有哪些协议,可以到库文件中查看。 文件位置如下。 在这里插入图片描述 2、在进行红外数据解析时,注意将红外发射头对准接收头,同时应避免强光干扰。为获得正确解析数据,可能需要多发射接收几次,直到多次解析出的数据相同。 3、如果情况正常,每次解析出来的十六进制应是相同的,但是rawData数组中数据不可能完全相同。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3