芯步的智能空调遥控器本身就是为这类改造设计的——它是个带红外的WiFi设备,可以像普通遥控器一样对着空调发指令,同时又能联网接收API调用。但核心问题是:你按的本地按键(比如墙上贴的一个自复位开关)怎么让这个设备知道要发什么指令?
下面我把整个方案拆成几步讲,你跟着走就行。
一、先搞清楚你需要买什么硬件
这里说的“本地按键控制”,不是让你去按空调遥控器,而是在墙上装一个物理按键,按下就能直接开关空调或调温度。
你需要准备以下东西:
芯步智能空调遥控器(核心设备)这个设备能发射红外信号,可以控制市面上90%以上的空调(开关、模式、温度、风速都行)。它通过WiFi联网,同时也能接收本地信号。
一个支持GPIO输入的芯步智能硬件(作为按键接收器)比如他们的智能墙壁触摸开关或智能通断器。这类设备本身有物理按键接口,你接一个自复位开关上去,按键按下时,这个设备的状态会变化(比如从“关”变成“开”)。
一个自复位机械开关(就是按下去弹回来的那种,像门铃按钮)几块钱的东西,装在墙上,用来给人按。
为什么不能直接把按键接到空调遥控器上?因为空调遥控器没有外接按键的接口。所以我们需要一个“中间人”——按键先触发一个智能硬件,这个硬件再通过网络告诉空调遥控器去发红外指令。
二、整体逻辑是怎么跑的
说白了就是事件触发的逻辑链条:
你按一下墙上的自复位开关
开关接通,触发智能墙壁开关的GPIO输入(你可以理解为给那个智能硬件一个“高电平信号”)
芯步的智能硬件检测到这个输入变化,产生一个设备状态上报(比如“button_pressed = 1”)
芯步的云平台或者你本地的服务器收到这个状态变化
你的程序判断出“有人按了按键”,于是调用芯步的设备控制接口,向智能空调遥控器下发红外指令
智能空调遥控器收到指令,发射红外信号给空调
空调执行动作(开机/关机/调温等)
看起来步骤多,但实际上从你按下去到空调响应,也就一两秒的事。
三、具体怎么对接芯步的接口
芯步的开放接口是HTTP+MQTT两种方式,这里用HTTP来讲,因为逻辑最直白。
第一步:让你的程序接收按键事件
你有两种方式拿到“按键被按了”这个信号:
方式A:用云平台的消息推送(推荐)芯步的设备状态变化会上报到云端,你可以配置一个HTTP回调地址(webhook),设备一有动静,平台就主动往你的服务器推数据。这样你不需要一直轮询。
方式B:主动查询设备状态如果不想搞回调,也可以让你的程序每隔1秒去查一下设备的最新状态。但这种方式效率低,不推荐实时控制场景。
第二步:收到按键事件后,下发空调指令
这是核心。芯步控制设备的接口是这样的
接口地址(POST方式):
http(s)://api.thingboot.com/{你的AppID}/device/control/?sign={签名}&ts={时间戳}请求参数(以JSON格式为例):
如果你要调温度、改模式,就把order里的内容换成对应的命令。比如:
设置温度26度:
{"temperature":"26"}制冷模式:
{"mode":"cool"}
具体命令字段要看你的空调型号支持什么,产品手册里有说明。
签名怎么算(这个要小心,容易错):
sign = md5( md5(你的开发者密码) + ts )
其中ts是当前时间的10位秒级时间戳。md5(开发者密码)这一步可以提前算好缓存起来,不用每次都重新算。
第三步:写一个简单的处理脚本
下面给个Python伪代码,你可以跑在树莓派或者任何一台能联网的电脑上:
四、注意事项(坑点)
红外信号要对准智能空调遥控器要放在能正对空调内机红外接收窗的位置,中间不要有遮挡。距离最好在8米以内。
按键去抖动机械开关按下去的时候会有一连串的抖动,可能一次按压触发好几次。硬件层面可以加电容滤波,软件层面也要做防抖处理(比如检测到变化后等50ms再确认一次)。
网络延迟整个链路依赖WiFi和云端,如果你家里网络不稳定,按了可能没反应。可以搞个本地MQTT方案,不经过云端直接局域网内发指令,响应更快。
设备ID别搞混控制空调的时候,
device参数填的是空调遥控器的设备ID,不是按键开关的ID。这个在芯步控制台里都能查到。设备要配网买回来的硬件要先通过芯步的小程序或者控制台配网,连上你家的2.4G WiFi。
五、总结一下这套方案
你不需要改空调内部的任何线路,也不需要拆遥控器。核心就是用一个智能开关捕获按键动作,再通过芯步的API驱动空调遥控器发红外。
如果想让体验更好,你还可以:
加一个指示灯,空调开关的时候灯也跟着亮/灭,这样按的时候有反馈
用MQTT代替HTTP轮询,实时性更高
做长按、双击等复杂交互
有任何具体对接的问题,直接找芯步的技术支持,他们免费提供全程指导。