ESP8266-Arduino编程实例-红外接收

红外接收

1、红外接收器介绍

红外接收器或 IR 接收器是通过接收和解码信号将信息从红外遥控器发送到另一个设备的硬件。一般来说,接收器会输出一个代码来唯一识别它接收到的红外信号。然后使用此代码将来自遥控器的信号转换为其他设备可以理解的格式。它是从遥控器接收红外命令的设备的一部分。

按电源电压、载波频率、传输距离、封装类型和电源电流分类。最常见的载波频率大小是 36kHz、38kHz 和 40kHz。 还有载频高达 56kHz 的红外接收器。传输距离可以从8m到30m。

红外线接收器用于各种应用,包括空调、风扇、加热器、电视、DVD、机顶盒、计算机及外围设备、工业自动化、遥控玩具、通讯设备、摄影设备、商用机器、汽车电子、照明和其他领域。

在这里插入图片描述

本次使用的遥控如下:

在这里插入图片描述

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • 红外接收器模块一个
  • 标准红外遥控一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

在这里插入图片描述

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

本次使用到的红外驱动库如下:

1)导入依赖库头文件

1
2
3
4
5
6
7
8
9
#include <IRremoteESP8266.h>

// 红外接收引脚
int RECV_PIN = D4;

IRrecv irrecv(RECV_PIN);

decode_results results;

2)设备初始化

1
2
3
4
5
6
7
8
void setup()
{
// 初始化串口
Serial.begin(9600);
// 启动红外接收
irrecv.enableIRIn();
}

3)红外数据接收

1
2
3
4
5
6
7
8
9
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
// 接收下一个数据
irrecv.resume();
}
delay(100);
}

接收到结果如下:

FF6897
FF30CF
3D9AE3F7
FF7A85
FF10EF
FF38C7
FF5AA5
FF42BD
FF4AB5
FF52AD
FFE01F
FFA857

文章来源: https://iotsmart.blog.csdn.net/article/details/126328249