IRremoteESP8266库 红外控制空调方法

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

下载安装IRremoteESP8266

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

方法一

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

#include <Arduino.h>
#include <IRremoteESP8266.h>
#include <IRsend.h>

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 <Arduino.h>
#include <IRremoteESP8266.h>
#include <IRsend.h>
#include <ir_Coolix.h>

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 <Arduino.h>
#include <IRremoteESP8266.h>
#include <IRsend.h>
#include <ir_Coolix.h>

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数组中数据不可能完全相同。

  • 12
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
要使用ESP8266控制空调,可以使用方法二或方法三中提到的IRremoteESP8266。首先,你需要连接ESP8266到你的电脑,并在Arduino IDE中安装ESP8266的扩展。然后,你需要安装IRremoteESP8266,这个可以用于发送和接收红外信号。安装IRremoteESP8266可以通过在线安装或离线安装两种方法进行。***然后在Arduino IDE中选择离线安装的ZIP。安装完成后,你可以使用IRremoteESP8266提供的函数来发送红外信号控制空调。在你的程序中,你可以创建一个对应空调协议的对象,例如IRCoolixAC对象,并使用该对象设置空调的模式、风速、温度等参数。最后,通过调用ac.send()方法发送红外信号来控制空调。请确保你在程序中正确设置了红外发射器所连接的引脚(一般是D4引脚)。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [IRremoteESP8266 红外控制空调方法](https://blog.csdn.net/weixin_44625313/article/details/120094910)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [使用ESP8266通过Blinker平台接入天猫精灵控制电视/空调](https://blog.csdn.net/qq_36243942/article/details/104833831)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值