万能空调遥控器接入的核心难题是“单向控制”——只能发指令,无法确认空调是否真的执行了。以下方案结合芯步开放接口,通过电流检测+状态绑定机制来解决这一痛点。
1. 概述与挑战分析
在物联网项目中,普通空调(壁挂机、柜机)通常使用红外遥控。这就带来了物联网行业最经典的痛点:单向控制。传统的万能空调遥控器(如通过RS485或LoRa控制的红外发射器)只能发出指令,无法确认空调是否真的开机了、温度是否设定成功了,甚至可能因为人员手动干扰导致云端与实际状态不一致。
针对这一问题,本方案基于 芯步(ThingBoot) 的开放平台架构,设计了一套闭环控制系统。核心思路是:将“万能空调遥控器”(红外发射+传感检测)作为一个标准的物联网设备接入芯步平台,利用其物理传感器(电流/温度)数据反向推导空调状态,并通过“设备影子”或“属性上报”机制同步至云端。
2. 硬件选型与物理集成
要实现状态反馈,单纯的红外发射模块是不够的。必须集成传感模块。结合芯步的硬件生态及常见的工业解决方案,推荐采用以下硬件逻辑架构:
| 核心组件 | 推荐型号/方式 | 作用 |
|---|---|---|
| 通信与控制 | 芯步兼容的DTU或MCU(支持4G/WiFi) | 负责连接芯步云平台,执行HTTP/MQTT协议,驱动红外发射管 |
| 状态感知A | 电流检测环/互感器(如IAC-R10类似原理) | 套在空调电源线上。检测电流有无——这是判断开关机最准确的证据 |
| 状态感知B | 温湿度传感器 | 检测环境温度变化趋势。验证制冷/制热是否生效 |
| 红外执行 | 多角度红外发射管 | 覆盖空调接收窗,发射学习到的红外码 |
物理接线说明:
电源取电:从空调插座取电,为芯步控制器供电。
电流检测:将空调L线穿过电流互感器,信号线接入MCU的ADC/GPIO口。
红外布线:将红外发射头用双面胶固定在空调室内机的接收窗口附近。
3. 设备接入与接口配置(芯步侧)
根据芯步开放平台的规范,所有设备需通过HTTP API或MQTT进行数据交互 。
3.1 设备模型定义
在芯步控制台创建一个自定义产品,定义如下功能属性:
| 功能类型 | 标识符 | 数据类型 | 说明 |
|---|---|---|---|
| 属性 | power_state | Bool | 空调真实状态(ON/OFF)—— 由电流阈值计算得出 |
| 属性 | current_value | Float | 实时电流值(A) —— 传感器上行 |
| 属性 | room_temp | Float | 环境温度(°C) —— 传感器上行 |
| 属性 | target_temp | Int | 目标设定温度(16-30) —— 云端下发 |
| 服务 | send_ir | String | 下发红外码(HEX串) |
| 事件 | ctrl_result | Event | 控制执行后的反馈事件(成功/失败/待确认) |
3.2 设备数据上行(状态反馈的关键)
传统方案中,遥控器发射后不闻不问。本方案要求MCU 定时(如每30秒)通过HTTP POST向 https://api.thingboot.com/{AppId}/device/property 上报 current_value 和 room_temp。
核心算法(在MCU固件中实现):
4. 状态同步闭环流程(解决方案关键步骤)
以下详细解释了如何通过接口实现“下发指令 -> 执行 -> 确认结果”的闭环流程 。
步骤一:下发控制指令
业务服务器(SaaS)调用芯步开放接口:
Endpoint:
POST /device/control/Payload:
步骤二:万能遥控器执行动作
设备端收到芯步云推送的指令(或长轮询拉取)。
设备MCU解析指令:
target_temp: 24。查表:MCU查询内部Flash存储的红外码库(需提前学习:制冷24度、自动风对应的红外波形)。
发射:通过GPIO驱动红外LED发射特定编码。
本地记录:MCU在RAM中记录
Expected_State = "Cooling@24"。
步骤三:物理状态采集(核心反馈机制)
空调执行命令后,并不会主动告知物联网系统。我们的设备必须立即开始验证:
发射后30秒:MCU读取电流互感器值。
情况A:电流从 0A -> 5A。印证:空调已开机成功。
情况B:电流仍为 0A。印证:空调未响应(可能处于保护模式或遥控器码库不对)。
发射后2分钟:读取温度传感器。
若室温开始下降(如从28度降至27.5度),确认制冷生效。
步骤四:状态回写与影子同步
芯步设备通过以下方式将确认后的状态同步回服务器
接口调用:设备端调用芯步API
device/property/report。上报数据
云端同步:芯步平台更新设备影子。业务服务器订阅设备 Topic 或通过 API 查询,即可展示“空调已开启,当前室温正在下降”。
5. 关键难点解决方案:防冲突与状态校准
在房间内,用户可能同时使用原装遥控器,导致云端状态失效 。
解决策略:“人体+环境突变感知”
实时监测电流突变:MCU 每隔 1 秒检测一次电流。如果电流从 5A 突然降为 0.2A,但云端没有下发关机指令,说明用户手动关了空调。
主动上报机制:一旦检测到这种非受控状态变更,MCU 立即调用芯步的 事件上报接口。
告警推送:业务服务器接收到该事件后,可通过App推送:“监测到空调异常关闭,是否电路跳闸或人为误触?”
6. 总结
通过 “芯步开放接口(HTTP/MQTT) + 红外遥控执行器 + 电流/温度传感融合” ,可以有效解决万能遥控器状态反馈的难题——关键在于 “执行分离”:红外管负责“说”,电流环负责“听”:
| 传统方案弊端 | 本方案优势 |
|---|---|
| 状态盲区,不知道空调是否响应 | 电流数据客观证明设备启停状态 |
| 人为手动开关导致状态混乱 | 实时监测物理量,自动上报纠正影子状态 |
| 无法判断制冷效果 | 温度变化率反馈,可诊断空调故障 |
该方案完全兼容芯步现有的API规范,开发人员只需在设备端实现简单的 ADC 采样逻辑和红外码值匹配,即可将普通的红外遥控器升级为一款闭环的、可信赖的智能空调网关。