版本:v1.0 | 创建日期:2026-03-02 适用模组:CI-33T、CI-03T(带UART1串口输出功能) 素材来源:SmartPi官方文档(红外控制FAQ/UART配置)+ 技术交流群真实案例
在语音控制空调、电视、机顶盒等红外设备的产品开发中,一个核心问题是: 语音模组如何控制红外发射?
CI-33T模组本身不集成红外发射功能,但可以通过 UART1串口输出控制外部红外发射模块。这种方案的优势在于:
本文将系统讲解CI-33T通过UART1控制外部红外发射模块的完整方案。
┌─────────────┐ UART1_TX ┌──────────────┐ │ │ ───────────────> │ 外部红外 │ │ CI-33T │ (3.3V TTL) │ 发射模块 │ ─── IR ───> 被控设备 │ 语音模组 │ │ (NEC/RC5等) │ │ │ │ │ └─────────────┘ └──────────────┘
| 组件 | 功能 | 关键参数 |
|---|---|---|
| CI-33T | 语音识别,识别结果转换为串口指令 | UART1_TX,3.3V电平 |
| 红外发射模块 | 接收串口指令,发射红外信号 | 支持NEC/RC5等协议 |
| 被控设备 | 接收红外信号,执行对应操作 | 空调/电视/机顶盒等 |
| 模块类型 | 通信接口 | 支持协议 | 优势 | 劣势 |
|---|---|---|---|---|
| NEC协议模块 | UART/IO | NEC | 使用广泛,成本低 | 协议单一 |
| RC5/RC6模块 | UART | RC5/RC6 | 适用于飞利浦设备 | 应用范围较窄 |
| 可编程模块 | UART | 多协议 | 灵活性高 | 成本较高 |
电平匹配:
典型连接:
CI-33T 红外发射模块 ───────────────────────────────────── B2 (UART1_TX) ───────> DIN/UART_RX GND ────────────────> GND VCC (可选) ─────────> VCC (如需供电)
步骤1:Pin脚配置
在SmartPi平台的 Pin脚配置页面:
注意:CI-33T的UART1功能可以在B2/B3、B6/B7等多组引脚之间切换,选择其中一组作为UART1使用即可。
步骤2:波特率配置
在串口配置中设置:
示例:空调控制
| 命令词 | 控制动作 | 串口输出数据 |
|---|---|---|
| 打开空调 | 端口输出 → UART1_TX |
AA 01 55 |
| 关闭空调 | 端口输出 → UART1_TX |
AA 02 55 |
| 制冷模式 | 端口输出 → UART1_TX |
AA 03 01 55 |
| 制热模式 | 端口输出 → UART1_TX |
AA 03 02 55 |
配置步骤:
AA 01 55)以常见的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;
}
}
| 因素 | 建议值 | 说明 |
|---|---|---|
| 发射角度 | 30°-60° | 典型红外发射管角度 |
| 有效距离 | 5-10米 | 取决于发射功率和环境 |
| 安装位置 | 设备正前方 | 避免遮挡 |
| 环境光 | 避免强光直射 | 强光可能干扰红外接收 |
场景描述:用户通过语音控制空调开关和模式切换。
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信号 → 空调执行
场景描述:语音控制电视开关和频道切换。
| 命令词 | 串口输出 | 说明 |
|---|---|---|
| "打开电视" |
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 |
音量- |
排查步骤:
可能原因与解决方案:
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 发射距离<2米 | 发射管角度过大 | 更换小角度发射管 |
| 发射距离<2米 | 驱动电流不足 | 增加限流电阻或更换模块 |
| 发射距离<2米 | 环境光干扰 | 避免阳光直射 |
排查方向:
通过UART1输出不同地址的数据,控制多个红外设备:
地址0x00 ──> 空调 地址0x01 ──> 电视 地址0x02 ──> 机顶盒
部分高级红外模块支持 红外学习功能:
部分红外模块支持 双向通信(红外发射+接收):
| 对比维度 | 内置红外(部分模组) | 外置红外模块 |
|---|---|---|
| 成本 | 较低 | 较高 |
| 灵活性 | 固定协议 | 可更换协议 |
| 发射距离 | 受限于安装位置 | 可优化安装位置 |
| 调试难度 | 较高 | 较低 |
| 适用场景 | 固定设备 | 多设备/远距离 |
| 控制方式 | 优势 | 劣势 |
|---|---|---|
| GPIO直接驱动 | 简单,成本低 | 只能简单调制,协议单一 |
| UART控制 | 支持复杂协议,灵活 | 需要外部MCU处理 |
通过CI-33T的UART1串口控制外部红外发射模块,是一种灵活且可靠的语音红外控制方案。核心要点:
对于需要控制多个红外设备或复杂协议的场景,推荐使用可编程红外模块,通过UART实现灵活控制。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049243/viewspace-3178225/ ,如需转载,请注明出处,否则将追究法律责任。