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数组中数据不可能完全相同。
IRremoteESP8266库 红外控制空调方法相关推荐
- 0.1元成本柿饼派实现红外控制空调了
本文由RT-Thread论坛用户14510690原创发布:https://club.rt-thread.org/ask/article/2893.html 柿饼派实现红外红控制 突发奇想,柿饼派如果可 ...
- 【奇思妙想】0.1元成本柿饼派实现红外控制空调了
柿饼派实现红外红控制 突发奇想,柿饼派如果可以控制红外设备是不是很方便?遗憾的发现空调的UI界面,没有红外输出控制设备的能力,于是决定自己动手实现! 查阅资料发现,柿饼派只剩下一个引脚,PE10了,这 ...
- ESP8266美的空调红外控制库(Arduino)
有关美的空调的ESP8266的红外控制库,适用于Arduino平台,需配合IRremoteESP8266库使用. 文件基于IRremoteESP8266库文件编写. 个人网站上的文章www.songz ...
- 单片机加红外编解码模块(自带破解空调遥控器功能)实现控制空调开关
单片机加红外编解码模块(自带破解空调遥控器功能)实现控制空调开关 获取空调遥控器的红外编码(制冷模式) 格力空调遥控器:YAP0F3型号 制冷开机编码 制冷关机编码 制冷调高一度编码 制冷调低一度编码 ...
- Esp8266 mqtt无线控制空调
对于空调的控制 一般都是红外控制.这样我们就可以将esp模块和红外模块联合使用 这样来对空调进行远程的无线的控制 演示视频:链接 红外接收 使用的是引脚11 使用波特率是9600 调用的IRremot ...
- 红外控制解码原理与实现
背景介绍: 作为一种近距离通讯的方法,红外通讯在我们的日常生活中就有很多应用,电视遥控器,空调遥控以及风扇遥控这些都是典型应用,但是红外控制具体是怎么样实现的,这里将为大家做简单讲解. 内容概述: 1 ...
- 基于android开发手机控制空调的程序(硬件+软件)
本文适用于在没有红外发射器的手机上,利用音频接口连接相关发射器进行信号发射.效果展示:http://t.cn/RLhOuCf 2016年2月28日更新: 使用音频还是要给手机插音频线,所以具有相当大的 ...
- Arduino IRremoteESP8266库 调用说明以及示例
Arduino IRremoteESP8266库 调用说明以及示例 空调支持表 :http://github.com/crankyoldgit/IRremoteESP8266/blob/master/ ...
- 红外控制LED灯的亮灭———Arduino
Arduino的中文社区:https://www.arduino.cn/ \黑脸,今天烧坏一个二极管. 原因:正负极没反,没接电阻. 把自己头打烂了- 1. 所需硬件 开发板,led灯(多个),遥控器 ...
最新文章
- swift 错误集合 ------持续更新中
- 免sudo使用docker
- Spring定时器--时间设置规则
- 使用fiddler进行app弱网测试
- 串口通信寄存器/库函数配置、实例编写
- 火了!女教授把自己P成女娲,登上学术期刊封面
- [html] HTML5中新添加的表单属性有哪些?
- 基于deepin-wine的windows软件打包deb安装包教程
- 清华 | 量化卷积神经网络加速芯片
- 2017春季学期编译原理期末实验报告
- 做企业需要一点逆向思维
- 鸡尾酒排序Cocktail Sort
- 虚拟服务器的外部跟内部端口,虚拟服务器设置 外部端口
- 升级 Node.js 版本遇到的 co 和 pm2 问题解析
- 鉴相,鉴频以及环路跟踪算法的理解:
- python连接oracle12c
- 【win+linux双系统如何正确卸载linux系统】
- 漫画 | 妹子让我写个程序,我却搞砸了...
- c语言作业数据加密,C语言实现无规律数据加密、解密功能
- 深入理解JVM底层原理——运行时数据区
热门文章
- 软件工程团队项目------Beijing Subway
- 热乎的过万字GameFramework讲解笔记文档
- topm java cpu3.3_快讯:TOPM 3-0 XQ,TOPM强势压迫,势如破竹喜获三连胜
- 了解RESTful接口设计风格
- 大数据读心术丨这15条数据统计准爆了!
- 机器人坐标系基本概念
- 斐讯路由器设置linux,斐讯N1盒子如何做主路由器的详细教程
- java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to yo
- 知乎上对 国内机器视觉行业的发展的 讨论-经典
- 【Python入门教程】第85篇 常用字符串方法之大小写判断