红外学习控制器

2026-06-22 接口:网口/RS485/红外 R2
你将学到
  • 搞懂红外学习控制器是什么、在展厅链路里处于哪个位置
  • 掌握红外学习流程:学习遥控器码 → 保存码库 → 通过中控发码
  • 理解红外控制的核心局限:单向发送,无状态反馈
  • 学会红外学习控制器和中控软件(SoftControl)的对接方法
  • 拿到选型对比表和故障排查表

项目里有几台展项用的是消费级电视,只有遥控器,没有 RS232 串口、没有网口控制接口——这是展厅集成里的老问题。你没法像控投影一样发串口指令,也没法 PJLink,唯一的控制手段就是遥控器。

展厅要做自动化:开幕时自动开电视、切到指定输入源、下班自动关机,总不能派人拿遥控器逐一操作。

红外学习控制器就是解决这类问题的。它学习遥控器的红外码,把学到的码存下来,联上局域网,中控软件通过 HTTP 或 Modbus 命令告诉它"发第 3 条码",它就把那条红外码打出去——相当于一台被中控软件控制的"万能遥控器"。

科星互联的红外学习控制器在展厅项目里是我们常备的型号,这一篇以它为主线,把完整链路和注意事项说透。

R2 内容,涉及红外学习控制器配置和中控对接。具体学习流程、码库容量、指令协议以科星官方产品手册为准(文末来源);文中步骤为说明性描述,以手册为准。


红外学习控制器在展厅链路里的位置

遥控器(学习阶段)
    │  红外信号(学习时对准接收头)
    ▼
红外学习控制器(接收头学习码,存入码库)

---

中控软件(SoftControl,运行中)
    │  HTTP API 或 RS485 Modbus(发送"第 N 条码"指令)
    ▼
红外学习控制器(从码库取出第 N 条码,通过红外发射头打出去)
    │  红外信号(发射头贴在设备接收窗前)
    ▼
被控设备(消费级电视/空调/老设备,收到红外码执行指令)

学习阶段(现场调试时做一次)和运行阶段(展厅日常运行)是两个独立过程。学习好之后,现场的物理遥控器可以收起来,日常控制完全靠中控软件经由学习控制器发射。


红外码的原理:为什么"学"就能用

红外遥控的本质是一段调制脉冲编码,不同品牌/设备/按键对应不同的编码序列(NEC、RC5、Sony SIRC、松下等格式……几十种格式,以实际设备遥控器为准)。

红外学习控制器做的事情:

  1. 用内置红外接收头捕获遥控器发出的调制脉冲波形
  2. 把这段波形的时序数据(脉冲宽度序列)完整记录下来,存为一条"原始码"
  3. 重放时,用内置红外发射管按照存储的时序把脉冲打出去

这种"原始录制 + 原样回放"的方式不需要知道编码格式,能兼容几乎所有遥控器型号——只要学得进去(接收头灵敏度和遥控器编码频率匹配),就能发。

💡 提示

少数设备的遥控器使用了滚码(每次发送的码不同,如汽车钥匙),红外学习对这类设备无效——学到的码只能用一次,下次设备不认。家用电视/空调/投影绝大多数是固定码,没有这个问题。


红外学习流程(以科星红外学习控制器为准)

具体操作步骤以科星官方手册为准,这里描述通用流程:

步骤 1:进入学习模式

通过网页配置界面(或配置工具)进入指定通道的学习模式,控制器进入等待接收状态。

步骤 2:对准遥控器发码

把遥控器的红外发射头对准控制器的红外接收头(距离 5~20cm,以手册建议为准),按下要学习的按键。控制器接收到信号后提示学习成功。

步骤 3:保存到指定码号

每一条学到的码分配一个编号(如码 1 = 电视开机,码 2 = 电视关机,码 3 = 切 HDMI1,码 4 = 切 HDMI2……),按项目需求有序命名。

步骤 4:测试发码

学习完成后,在配置界面点击"发送"测试,对准被控设备,确认设备有响应(电视开机/关机/切源)。

步骤 5:记录码表

把每条码的编号和对应动作整理成一张码表,存入项目文档。这是展厅运维的重要资产——换控制器时直接导入码库,不需要重新学习。

# 示例码表(以实际项目为准)
码 01: 展区 A 电视 - 开机
码 02: 展区 A 电视 - 关机
码 03: 展区 A 电视 - 切 HDMI 1
码 04: 展区 A 电视 - 音量 +
码 05: 展区 A 电视 - 音量 -
码 06: 展区 B 空调 - 开机(制冷 26℃)
码 07: 展区 B 空调 - 关机
…

和中控软件对接:两种方式

科星红外学习控制器(联网型)提供网络控制接口,中控软件通过这些接口触发发码。

方式一:HTTP API

走网口,中控软件发 HTTP 请求触发发码(以科星手册为准,URL 格式和参数以官方文档为准)。

典型请求格式(说明性举例,以官方文档为准):

GET http://192.168.1.80/sendcode?channel=1&code=01

意思:向 IP 为 192.168.1.80 的控制器,发第 1 通道第 01 号红外码(展区 A 电视开机)。

Python 调用示例:

import requests

IR_CONTROLLER_IP = '192.168.1.80'  # 替换为实际 IP

def send_ir_code(channel: int, code: int) -> bool:
    """
    向红外学习控制器发码
    channel: 通道号(控制器支持几个发射通道以手册为准)
    code: 码库中的码编号
    返回: True=发送成功,False=失败
    注意: 请求成功只代表"指令发出",不代表设备收到并执行(红外单向无反馈)
    """
    url = f'http://{IR_CONTROLLER_IP}/sendcode'
    params = {'channel': channel, 'code': code}
    
    try:
        resp = requests.get(url, params=params, timeout=3)
        if resp.status_code == 200:
            print(f"发码成功:通道 {channel},码 {code}")
            return True
        else:
            print(f"发码失败,HTTP 状态码:{resp.status_code}")
            return False
    except requests.RequestException as e:
        print(f"网络错误:{e}")
        return False

# 示例:开启展区 A 电视
send_ir_code(channel=1, code=1)  # 码表:1 = 展区 A 电视开机
💡 提示

HTTP API 接口格式以科星官方手册为准——以上 URL 格式和参数名是说明性举例,真实接口可能不同。在 SoftControl 里配置设备时,参照手册填正确的 URL 模板和参数。

方式二:RS485 Modbus RTU

通过 RS485 总线挂在中控链路上,用 Modbus 写保持寄存器触发发码(以科星手册为准,寄存器地址和数据格式以官方文档为准)。

适用于展厅已经有 RS485 总线、不想再拉网线的场合;或者控制器不带网口、只有 485 接口的型号。


多通道红外发射头布置

展厅有多台设备需要红外控制时,红外学习控制器通常支持多路独立的红外发射头(以具体型号为准)。每路发射头贴在各自设备的红外接收窗前,互不影响。

红外学习控制器
    ├── 通道 1 红外发射头 ──→ 展区 A 电视(接收窗贴着)
    ├── 通道 2 红外发射头 ──→ 展区 B 空调(接收窗贴着)
    └── 通道 3 红外发射头 ──→ 展区 C 老投影(接收窗贴着)

发射头和设备接收窗的距离:通常贴近或接触,确保信号可靠。距离越远,信号衰减越大,可靠性越低。


红外控制的核心局限:单向,无反馈

这是使用红外控制必须清楚的最大局限,不理解这一点会在联调时吃大亏。

红外是单向通信:学习控制器只能发信号,无法知道设备有没有收到、有没有执行。你发了"开机",控制器回应"发码成功",但这个"成功"只代表红外码发出去了,不代表电视真的开了。

可能出现的情况:

  • 发射头位置偏了,电视没收到 → 控制器以为成功了
  • 电视已经开着,再发开机码,很多电视会解释为"关机"(toggle 逻辑)
  • 展区有干扰光源(阳光直射、强荧光灯)干扰红外接收
  • 遥控器码使用环境温度变化后偶尔识别失败

对比一下有反馈的控制方式:

控制方式 能否确认执行 适用设备
RS232 串口 能(设备返回应答帧) 工程级投影/显示器
PJLink TCP 能(查询状态命令) 支持 PJLink 的投影
网口控制(HTTP API) 能(设备返回状态) 支持网控的设备
红外学习控制器 不能(单向发码) 只有遥控器的消费级设备
💡 提示

展厅采购设备时,能选带 RS232 或网口控制接口的工程款,就不要选只有红外遥控器的消费级产品。工程款贵一点,但"确认执行"和"故障预警"的运维价值远超差价。红外控制是退而求其次的方案,留给那些确实没有其他控制手段的遗留设备。


发码重试和状态验证的工程补偿

既然红外无法直接确认,展厅工程上有几种补偿手段:

发码重试(简单但不精准)

中控发一次码,等待 2 秒,再发一次——适用于概率性不响应的情况,但如果设备已经开着,再发一次开机码会关掉它(对 toggle 逻辑的设备)。这种方法适合"幂等"操作(如"切 HDMI1 源",切了再切一次没关系)。

结合独立反馈传感器

在无法靠红外确认的情况下,可以在被控设备旁加一个状态检测(如:用采集卡采集电视的视频信号——有信号 = 电视开着;或用功率检测传感器 + DI 模块检测设备是否通电)。中控发了红外开机指令后,读独立传感器确认状态变化。这是成本稍高但可靠性更好的做法。

发码后等待固定时间再执行联动

红外指令下发后,不立刻触发依赖这台设备的联动,而是等待 3~5 秒(设备启动时间,以实测为准),再发下一步指令。这个时间 buffer 减少因设备未就绪导致联动失败的概率。


展厅典型应用

开幕开机序列

每天上午 9:00,中控软件(SoftControl)定时触发"展厅开幕"场景:依次发红外码开启各展区电视/空调,每台之间间隔 5 秒(防止大量设备同时开机冲击用电),最后切换到展示输入源。

无串口老投影控制

某展区的老款投影机只有红外遥控,没有 RS232。学习遥控器的"开机/关机/音量+/音量-/画面模式"码,联到中控序列里,开幕自动开机,闭幕自动关机。

消费级空调场景控制

展厅分区空调(分体机,只有遥控器控制),展览期间需要按时段开关机和调温。红外学习控制器学习空调遥控器的各档指令(开机制冷 26℃、开机制热 20℃、关机),中控按时间表触发对应码。


选型对比表

维度 选项 怎么选
通信接口 网口(HTTP/Modbus TCP)/ RS485 Modbus RTU 优先网口,直接进交换机;已有 485 总线用 485 型
发射通道数 单通道 / 4 通道 / 8 通道 按需控制的设备台数,每台设备需要独立发射头
码库容量 几十条 / 几百条 按学习码的总量(通道数 × 每台设备按键数),留余量
学习频率 38kHz(最常见)/ 多频率兼容 少数设备(如松下某款)用非 38kHz,要确认学习控制器是否兼容
配置方式 网页配置 / PC 软件 / 按键配置 网页/PC 软件配置操作更直观,按键型配置调试不方便
导出/导入码库 支持导出为文件 选支持码库导出的型号,方便换机时迁移,不用重新学习
安装方式 导轨安装 / 桌面 展厅机柜装导轨型;发射头用胶带或磁座固定在设备旁

故障排查表

现象 最可能的原因 怎么查
发码后设备无响应 发射头位置偏 / 角度不对 用手机摄像头对准发射头(摄像头能看到红外闪烁)确认发射头在工作;调整发射头位置和角度,贴紧接收窗
发射头在发光但设备仍无响应 学习的码质量差 / 学习距离太远 重新学习:遥控器对准接收头 10cm 以内,按键保持 1~2 秒
发码指令发出但偶发失败(非 100% 有效) 现场光干扰(阳光/荧光灯)/ 发射头偏移 检查发射头是否松动;确认接收窗没有被强光直射
HTTP 请求超时 / 连接失败 IP 配错 / 控制器未联网 / 端口号错 ping 控制器 IP;确认控制器联网指示正常;查端口配置
RS485 Modbus 应答失败 波特率/地址不对 / A-B 接线 用 Modbus Poll 确认从机地址;检查 RS485 A/B 极性
发了开机码设备反而关机 设备是 toggle 逻辑(发一次开,再发一次关) 确认设备当前状态再发码;或学习"开机专用码"(有些遥控器有区分 on/off 的码)
学习时控制器不响应 遥控器电池没电 / 频率不兼容 换新电池;用手机摄像头确认遥控器有发红外;查控制器支持的学习频率范围
展厅多台设备互相干扰 发射头 IR 泄漏到其他设备接收窗 用黑胶带遮挡不需要照射的方向;或换定向角更小的发射头

动手挑战

  1. 对一台家里的消费级电视(或空调),用红外学习控制器学习"开机"和"关机"两条码,然后用手机浏览器调 HTTP API(或 Modbus Poll)分别触发,确认设备响应——这是红外学习控制器的最小可用验证。
  2. 用手机摄像头对准红外发射头,调用发码指令,确认摄像头画面里发射头有闪烁(人眼不可见,摄像头传感器能看到)。这是排查"发没发出去"的最快方法。

本节学到的知识

  • 红外学习控制器干的就一件事:学遥控器的红外码 → 存进码库 → 中控软件按"第 N 条码"触发发射,等于一台被中控接管的"万能遥控器",专治只有遥控器、没 RS232 也没网口的消费级设备。
  • 它靠**"原始录制 + 原样回放"**工作——录下遥控器调制脉冲的时序波形再原样打出去,不需要知道编码格式(NEC / RC5 / Sony SIRC / 松下等几十种),所以能兼容几乎所有遥控器。
  • 最大的命门是单向、无反馈:控制器回你"发码成功"只代表红外打出去了,不代表设备真的收到并执行;这跟 RS232、PJLink、网口那些能回报状态的方式有本质区别,联调时必须标注清楚。
  • 滚码设备(如汽车钥匙)学不了——每次码都变,学到的只能用一次;好在家用电视 / 空调 / 投影绝大多数是固定码,没这问题。
  • 学习距离约 5~20cm(以手册为准),学习时遥控器对准接收头、按键保持 1~2 秒,学出来的码更干净。
  • 学习频率 38kHz 最常见,但少数设备(如松下某款)用非 38kHz,选型时要确认控制器是否兼容该频率,否则学不进去。
  • 对接中控两条路:网口走 HTTP API(如 sendcode?channel=1&code=01,URL 和参数以手册为准)或 RS485 走 Modbus RTU;已有 485 总线就用 485 型,否则优先网口直进交换机。
  • 多台设备用多路独立红外发射头,每路贴紧各自设备的接收窗——距离越远衰减越大、越不可靠;不需要照射的方向用黑胶带遮挡防串扰。
  • 很多设备是 toggle 逻辑(同一条码发一次开、再发一次关),所以重试要挑幂等操作(如"切 HDMI1"切两次没事),别对"开机"这类码盲目重发。
  • 单向缺陷的工程补偿三招:发码重试(仅限幂等)、加独立反馈传感器(采集卡看视频信号 / 功率检测确认通电)、发码后留 3~5 秒 buffer 再触发下一步联动。
  • 常见干扰源是阳光直射、强荧光灯,会让红外接收偶发失败;排查"到底发没发出去"最快的办法是用手机摄像头对准发射头看有没有闪烁(人眼看不见、摄像头能拍到)。
  • 选型盯这几项:发射通道数(按设备台数,每台一路发射头)、码库容量(通道数 × 每台按键数,留余量)、是否支持码库导出/导入(换机不用重学)、导轨安装(进机柜)。

小结 · 你掌握了什么

  • 你搞清楚了红外学习控制器(科星)的工作原理:学习 → 存码库 → 中控软件按地址发码 → 红外发射给设备。
  • 你理解了红外控制最重要的局限:单向无反馈——发出去不知道设备有没有执行,和 RS232/PJLink 等有回报的控制方式有本质区别,展厅中要明确标注这一点并做工程补偿。
  • 你拿到了完整的学习流程、HTTP 对接示例、多通道接线逻辑、选型对比表和故障排查表。

红外控制是展厅里的"兜底方案";优先推荐带 RS232 或网口的工程款设备,通过 SoftControl 直接发指令并获取反馈,参考 SoftControl 展厅中控系统;中控软件如何通过网络统一管理各类设备,参考 软件中控网关图鉴

📄 来源 / 自校链接

本文为公开资料整理,非亲测。关键参数与代码请结合实物与下列官方来源验证。

需要展厅软硬件方案或定制开发?