# 红外传输
**Repository Path**: deng-yongsheng/infrared-transmission
## Basic Information
- **Project Name**: 红外传输
- **Description**: 基于ESP32 Ardunino 的红外文本传输,上位机为C#语言。
- **Primary Language**: C#
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2021-10-19
- **Last Updated**: 2024-09-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 红外传输
### 介绍
基于ESP32 Ardunino 的红外文本传输,上位机为C#语言。
效果:
发送端

接收端

### 特性
- 38kHz的红外载波。
- 每个bit占用**24**个载波周期。
- 最少:5个周期,低于5个容易收不到消息
- 最佳:20~25个周期
接收端收到较稳定的型号
接收头和发射头的角度对数据也有较大的影响,图片左边半侧是传输不稳定,右边半侧是比较稳定的状态
- 发送端信号使用的是**软件调制**。
- 接收端信号经过接收头后,直接变成串口信号,使用ESP32的**Serial2硬件接收**。
- 接收端将载波信号直接转为串口信号:波特率为:**1583**,**1个起始位**为0,**8个数据位**,**8个停止位**,**无校验**位。
波特率计算公式:
$$
\begin{align}
BaudRate &= \frac{1}{(1/CarrierFrequency*CarrierCyclesInOneBaud)} \\
&=\frac{CarrierFrequency}{CarrierCyclesInOneBaud} \\
\end{align}
$$
### 缺陷
- **不支持透明传输和差错控制**
- 不支持持续接收。接收头每接收一个字节,需要停止40ms。不停止持续接收回导致后续数据丢失,这个缺陷原因还未知,应该是接收头本身的特性。
- 我参考了网上的一篇文章逆向的格力空调遥控协议,写出来后却不能够控制空调,目前认为是文章所给的协议的问题。
- 这是我参考的文章:[格力空调红外遥控器编码详解](http://www.51hei.com/bbs/dpj-119467-1.html)
- 另一篇也是格力空调,但是协议内容不一样的文章:[格力空调红外编码分析](https://blog.csdn.net/qq1518572311/article/details/80747508)
- 这两篇文章,一个提到了校验码,一个没有提到校验码