笔者最近在学习使用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数组中数据不可能完全相同。

IRremoteESP8266库 红外控制空调方法相关推荐

  1. 0.1元成本柿饼派实现红外控制空调了

    本文由RT-Thread论坛用户14510690原创发布:https://club.rt-thread.org/ask/article/2893.html 柿饼派实现红外红控制 突发奇想,柿饼派如果可 ...

  2. 【奇思妙想】0.1元成本柿饼派实现红外控制空调了

    柿饼派实现红外红控制 突发奇想,柿饼派如果可以控制红外设备是不是很方便?遗憾的发现空调的UI界面,没有红外输出控制设备的能力,于是决定自己动手实现! 查阅资料发现,柿饼派只剩下一个引脚,PE10了,这 ...

  3. ESP8266美的空调红外控制库(Arduino)

    有关美的空调的ESP8266的红外控制库,适用于Arduino平台,需配合IRremoteESP8266库使用. 文件基于IRremoteESP8266库文件编写. 个人网站上的文章www.songz ...

  4. 单片机加红外编解码模块(自带破解空调遥控器功能)实现控制空调开关

    单片机加红外编解码模块(自带破解空调遥控器功能)实现控制空调开关 获取空调遥控器的红外编码(制冷模式) 格力空调遥控器:YAP0F3型号 制冷开机编码 制冷关机编码 制冷调高一度编码 制冷调低一度编码 ...

  5. Esp8266 mqtt无线控制空调

    对于空调的控制 一般都是红外控制.这样我们就可以将esp模块和红外模块联合使用 这样来对空调进行远程的无线的控制 演示视频:链接 红外接收 使用的是引脚11 使用波特率是9600 调用的IRremot ...

  6. 红外控制解码原理与实现

    背景介绍: 作为一种近距离通讯的方法,红外通讯在我们的日常生活中就有很多应用,电视遥控器,空调遥控以及风扇遥控这些都是典型应用,但是红外控制具体是怎么样实现的,这里将为大家做简单讲解. 内容概述: 1 ...

  7. 基于android开发手机控制空调的程序(硬件+软件)

    本文适用于在没有红外发射器的手机上,利用音频接口连接相关发射器进行信号发射.效果展示:http://t.cn/RLhOuCf 2016年2月28日更新: 使用音频还是要给手机插音频线,所以具有相当大的 ...

  8. Arduino IRremoteESP8266库 调用说明以及示例

    Arduino IRremoteESP8266库 调用说明以及示例 空调支持表 :http://github.com/crankyoldgit/IRremoteESP8266/blob/master/ ...

  9. 红外控制LED灯的亮灭———Arduino

    Arduino的中文社区:https://www.arduino.cn/ \黑脸,今天烧坏一个二极管. 原因:正负极没反,没接电阻. 把自己头打烂了- 1. 所需硬件 开发板,led灯(多个),遥控器 ...

最新文章

  1. swift 错误集合 ------持续更新中
  2. 免sudo使用docker
  3. Spring定时器--时间设置规则
  4. 使用fiddler进行app弱网测试
  5. 串口通信寄存器/库函数配置、实例编写
  6. 火了!女教授把自己P成女娲,登上学术期刊封面
  7. [html] HTML5中新添加的表单属性有哪些?
  8. 基于deepin-wine的windows软件打包deb安装包教程
  9. 清华 | 量化卷积神经网络加速芯片
  10. 2017春季学期编译原理期末实验报告
  11. 做企业需要一点逆向思维
  12. 鸡尾酒排序Cocktail Sort
  13. 虚拟服务器的外部跟内部端口,虚拟服务器设置 外部端口
  14. 升级 Node.js 版本遇到的 co 和 pm2 问题解析
  15. 鉴相,鉴频以及环路跟踪算法的理解:
  16. python连接oracle12c
  17. 【win+linux双系统如何正确卸载linux系统】
  18. 漫画 | 妹子让我写个程序,我却搞砸了...
  19. c语言作业数据加密,C语言实现无规律数据加密、解密功能
  20. 深入理解JVM底层原理——运行时数据区

热门文章

  1. 软件工程团队项目------Beijing Subway
  2. 热乎的过万字GameFramework讲解笔记文档
  3. topm java cpu3.3_快讯:TOPM 3-0 XQ,TOPM强势压迫,势如破竹喜获三连胜
  4. 了解RESTful接口设计风格
  5. 大数据读心术丨这15条数据统计准爆了!
  6. 机器人坐标系基本概念
  7. 斐讯路由器设置linux,斐讯N1盒子如何做主路由器的详细教程
  8. java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to yo
  9. 知乎上对 国内机器视觉行业的发展的 讨论-经典
  10. 【Python入门教程】第85篇 常用字符串方法之大小写判断