版本:v1.0 | 创建日期:2026-03-02
适用模组:CI-33T、CI-03T(带UART1串口输出功能)
素材来源:SmartPi官方文档(红外控制FAQ/UART配置)+ 技术交流群真实案例

前言

在语音控制空调、电视、机顶盒等红外设备的产品开发中,一个核心问题是:语音模组如何控制红外发射?

CI-33T模组本身不集成红外发射功能,但可以通过UART1串口输出控制外部红外发射模块。这种方案的优势在于:

  • 红外发射模块可以独立安装,获得更好的发射角度
  • 支持多种红外协议(NEC、RC5、RC6等)
  • 语音识别与红外发射解耦,便于调试

本文将系统讲解CI-33T通过UART1控制外部红外发射模块的完整方案。


一、方案架构

1.1 系统组成

┌─────────────┐     UART1_TX     ┌──────────────┐
│             │ ───────────────>  │   外部红外    │
│   CI-33T    │    (3.3V TTL)     │   发射模块    │ ─── IR ───> 被控设备
│  语音模组    │                   │  (NEC/RC5等)  │
│             │                   │              │
└─────────────┘                   └──────────────┘

1.2 各部分功能说明

组件功能关键参数
CI-33T语音识别,识别结果转换为串口指令UART1_TX,3.3V电平
红外发射模块接收串口指令,发射红外信号支持NEC/RC5等协议
被控设备接收红外信号,执行对应操作空调/电视/机顶盒等

二、硬件选型:红外发射模块

2.1 常用红外发射模块类型

模块类型通信接口支持协议优势劣势
NEC协议模块UART/IONEC使用广泛,成本低协议单一
RC5/RC6模块UARTRC5/RC6适用于飞利浦设备应用范围较窄
可编程模块UART多协议灵活性高成本较高

2.2 硬件连接注意事项

电平匹配:

  • CI-33T的UART1_TX输出3.3V TTL电平
  • 大多数红外发射模块也支持3.3V逻辑电平
  • 如果使用5V模块,需要添加电平转换电路

典型连接:

CI-33T                  红外发射模块
─────────────────────────────────────
B2 (UART1_TX) ───────> DIN/UART_RX
GND ────────────────> GND
VCC (可选) ─────────> VCC (如需供电)

三、SmartPi平台配置

3.1 启用UART1功能

步骤1:Pin脚配置

在SmartPi平台的Pin脚配置页面:

  1. 找到B2引脚(或其他支持UART1_TX的引脚组)
  2. 将其配置为UART1_TX功能

注意:CI-33T的UART1功能可以在B2/B3、B6/B7等多组引脚之间切换,选择其中一组作为UART1使用即可。

步骤2:波特率配置

在串口配置中设置:

  • 波特率:9600(与红外模块匹配)
  • 数据位:8
  • 停止位:1
  • 校验位:无

3.2 配置语音指令触发串口输出

示例:空调控制

命令词控制动作串口输出数据
打开空调端口输出 → UART1_TXAA 01 55
关闭空调端口输出 → UART1_TXAA 02 55
制冷模式端口输出 → UART1_TXAA 03 01 55
制热模式端口输出 → UART1_TXAA 03 02 55

配置步骤:

  1. 在命令词页面添加命令词
  2. 在控制详情中添加端口输出动作
  3. 选择UART1_TX作为控制类型
  4. 输入十六进制数据(如AA 01 55)
  5. 生成并烧录固件

四、红外发射模块配置

4.1 NEC协议红外模块配置示例

以常见的NEC协议红外模块为例,展示如何将CI-33T输出的串口数据转换为红外信号。

串口数据格式(示例):

帧头    设备ID    命令    帧尾
AA     00 FF    01     55

红外模块处理逻辑(伪代码):

// 红外模块端处理逻辑
void uart_handler(uint8_t data) {
    static uint8_t buffer[16];
    static uint8_t index = 0;

    buffer[index++] = data;

    // 检查接收完整性
    if (buffer[0] == 0xAA && buffer[index-1] == 0x55) {
        // 提取设备ID和命令
        uint8_t device_id_high = buffer[1];
        uint8_t device_id_low = buffer[2];
        uint8_t command = buffer[3];

        // 发射NEC协议红外信号
        nec_transmit(device_id_high, device_id_low, command);

        index = 0;
    }
}

4.2 红外发射角度与距离

因素建议值说明
发射角度30°-60°典型红外发射管角度
有效距离5-10米取决于发射功率和环境
安装位置设备正前方避免遮挡
环境光避免强光直射强光可能干扰红外接收

五、完整配置示例

5.1 空调控制完整配置

场景描述:用户通过语音控制空调开关和模式切换。

SmartPi平台配置:

命令词串口输出含义
“打开空调”AA 01 00 FF 55电源开
“关闭空调”AA 01 01 FD 55电源关
“制冷模式”AA 01 02 FD 55模式制冷
“制热模式”AA 01 03 FC 55模式制热
“风速小”AA 01 04 FB 55风速低速
“风速大”AA 01 05 FA 55风速高速

红外模块映射:

接收数据 → 设备地址=0x00, 命令码=0x01 → 发射NEC信号 → 空调执行

5.2 电视控制完整配置

场景描述:语音控制电视开关和频道切换。

命令词串口输出说明
“打开电视”BB 00 01 FE 55电视电源
“关闭电视”BB 00 02 FD 55电视待机
“频道加”BB 00 03 FC 55频道+
“频道减”BB 00 04 FB 55频道-
“音量加”BB 00 05 FA 55音量+
“音量减”BB 00 06 F9 55音量-

六、常见问题排查

6.1 串口有输出但红外不发射

排查步骤:

  1. 检查串口连接

    • 使用示波器或逻辑分析仪查看UART1_TX是否有波形
    • 确认TX连接到红外模块的RX/DIN引脚
  2. 检查数据格式

    • 确认红外模块期望的帧格式
    • 检查帧头帧尾是否正确
  3. 检查波特率

    • CI-33T配置的波特率必须与红外模块一致
  4. 检查供电

    • 确认红外模块供电正常
    • 检查发射管工作电流

6.2 红外发射距离短

可能原因与解决方案:

问题原因解决方案
发射距离<2米发射管角度过大更换小角度发射管
发射距离<2米驱动电流不足增加限流电阻或更换模块
发射距离<2米环境光干扰避免阳光直射

6.3 部分指令无效

排查方向:

  1. 确认红外协议:被控设备的红外协议可能与模块默认不一致
  2. 确认命令码:使用红外学习功能确认正确的命令码
  3. 检查数据完整性:确认串口数据没有丢失或错误

七、进阶应用

7.1 多设备控制

通过UART1输出不同地址的数据,控制多个红外设备:

地址0x00 ──> 空调
地址0x01 ──> 电视
地址0x02 ──> 机顶盒

7.2 红外学习功能

部分高级红外模块支持红外学习功能:

  1. 将遥控器对准红外模块
  2. 发送学习命令,模块记录红外信号
  3. 将学习到的信号与CI-33T输出的命令码关联

7.3 双向通信

部分红外模块支持双向通信(红外发射+接收):

  • 发射:CI-33T → UART1_TX → 红外模块 → 被控设备
  • 接收:被控设备遥控器 → 红外模块 → UART1_RX → CI-33T

八、方案对比

8.1 内置红外 vs 外置红外

对比维度内置红外(部分模组)外置红外模块
成本较低较高
灵活性固定协议可更换协议
发射距离受限于安装位置可优化安装位置
调试难度较高较低
适用场景固定设备多设备/远距离

8.2 直接IO控制 vs UART控制

控制方式优势劣势
GPIO直接驱动简单,成本低只能简单调制,协议单一
UART控制支持复杂协议,灵活需要外部MCU处理

九、总结

通过CI-33T的UART1串口控制外部红外发射模块,是一种灵活且可靠的语音红外控制方案。核心要点:

  1. 硬件连接:UART1_TX连接红外模块的RX,注意电平匹配
  2. 平台配置:在Pin脚配置中启用UART1_TX,设置正确波特率
  3. 数据格式:串口输出数据需与红外模块期望的格式匹配
  4. 测试验证:使用示波器或串口调试工具验证数据传输

对于需要控制多个红外设备或复杂协议的场景,推荐使用可编程红外模块,通过UART实现灵活控制。


参考资料

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐