芯步的开放接口设计得很清晰,用HTTP请求就能直接和设备“对话”。下面我从硬件选型、接口调用逻辑到自动化场景,一步步拆解这个空调遥控模块的二次开发方案。
一、开篇:这玩意儿能干啥?
兄弟们,咱们今天聊点实在的。
你有没有遇到过这种情况:夏天在公司吹着空调,突然想起家里卧室的空调没关?或者大冬天躺在被窝里,懒得下床去关空调?
这时候,“空调自动化控制模块”就派上用场了。说白了,就是利用 “红外转发” 技术——让一个联网的智能硬件模仿你手中的空调遥控器,发射红外信号。你只需要通过手机APP或者你写的程序,告诉这个硬件“嘿,给空调发个关机指令”,它就照办。
今天我们拿芯步(YoyoIOT)的硬件来开刀。他们有现成的智能空调遥控器,也有万能红外转发器。我的任务就是教你怎么“指挥”它。
二、准备工作:你需要什么?
别紧张,不需要你是嵌入式大神,懂点HTTP请求(比如 curl 命令或者Python/Java发请求)就够了。
硬件设备:芯步的 “智能空调遥控器” 或者 “智能红外遥控器” 。这东西长得很低调,通常有个黑色的外壳,带红外发射头。
账号与凭证:注册芯步的开放平台。
AppID(开发者ID):相当于你的用户名。
AppSecret(开发者密码):相当于你的密码(这个要藏好)。
空调:随便什么牌子都行,只要你的原装遥控器是红外的(99%的家用空调都是)。
网络:2.4G Wi-Fi,给硬件连上网用的。
三、核心原理:它是怎么“学习”并“转发”的?
要实现二次开发,你心里得有个底:这个盒子是怎么学会控制你家空调的?
流程一般是这样的:
学习阶段(录码)你的设备上有个“学习”功能。你把原装空调遥控器对着它,按下“制冷26度”的按钮。盒子上的红外接收头会记下这串独特的“光信号”,并把它转换成二进制数据(比如一串
101010),存进盒子的Flash存储器里。转发阶段(发码)当你通过API发送指令(比如
{"command":"ac_on", "code":"xxxxx"})给这个盒子时,盒子里的红外发射管会把这串数据重新调制回38kHz的红外光波射出去。空调接收到,就执行了。
我们的“二次开发”主要做的是第二步的“发码”,也就是怎么把转发指令写得像“老司机”一样顺滑。
四、实战:二次开发与接口对接
好,不扯虚的,打开你的编辑器(或者Postman),咱们开干。
1. 搞定签名(Sign)
芯步的接口是安全的,为了防止别人乱刷你的设备,发指令前必须计算签名。官方给的公式是:sign = md5(md5(AppSecret) + ts)
用Python举个例子,很容易懂:
温馨提醒:开发的时候可以在控制台打开“调试模式”,这样就不用纠结签名了。但上线记得关掉!
2. 核心:下发红外指令
一旦设备联网并在控制台显示为“在线”,你就可以招呼它了。
API地址POST https://api.thingboot.com/{AppID}/device/control/
请求体
注意:不同的产品型号,order 里的字段名可能不同,有的可能是 {"ir_send":"xxx"},具体要看产品手册。
3. 高级玩法:怎么拿到那个“数据码”?
这时候你可能会问:“那个 send_ir 里面那一长串乱码一样的数字我哪知道?”
这就是考验二次开发细致程度的地方了。通常有两种方式获取:
方法A(懒人法):有些万能遥控器厂商提供了云码库。你只需要发
{"brand":"Gree", "key":"power"},云端自动给你匹配码值。但芯步的传感器类产品更多是透传模式。方法B(硬核法,推荐):直接利用设备本身的 “学习”事件。
芯步的设备有一个触发事件机制。当你按下设备上的“学习按钮”并用遥控器对着它发送信号时,设备会通过消息推送把刚学到的码值上报给你的服务器。
实现逻辑
写代码监听芯步平台推送过来的消息(Webhook)。
收到
{"event":"ir_learn", "code":"这里是学习到的原始数据"}后,把这个code存到你的数据库里,并起个好名字叫“客厅空调_关机”。下次调用接口时,直接从数据库取出这个
code,塞进order里发出去。
这样就完成了 “学习 -> 存储 -> 自动转发” 的闭环。
五、体验进阶:搭一个“自动化智能场景”
光能手动发指令还不够“智能够”,咱得搞联动。
这时候你引入“人体存在传感器”。
想象一下这个场景:“人走空调关,节能又省钱”。
我们需要在逻辑里判断,当“人体传感器”的状态变成“无人”,且“空调”还在运行时,就自动触发转发关机指令。
伪代码逻辑(在你的后端服务器跑):
如果你觉得搭服务器麻烦,也可以利用芯步控制台自带的“场景联动”或者“定时任务”。当然,既然我们要“二次开发”,肯定还是写代码最灵活,比如你可以设定:“当室外温度低于20度,且时间在半夜,强制空调转为送风模式”。
六、踩坑与避坑指南(划重点)
红外信号的“视线”问题红外线跟光一样,走直线,穿不了墙。这是最大的坑! 你的芯步盒子必须放在能“看见”空调的地方(一般挂在墙上,对着空调内机)。虽然有反射,但为了稳定,确保没有柜子、玻璃门完全遮挡。
码库的兼容性有些空调(比如大金、三菱电机)用的不是标准NEC协议,或者是变频独有的控制码。如果发现学习出来的码发出去没反应,可以试试多学几次,或者看看是不是需要校验位。官方说支持90%以上,那剩下10%就得碰运气了。
私有化部署(局域网)如果你是做项目集成,不希望数据经过外网。芯步支持私有化部署,也就是你的服务器可以直接在局域网里跟网关通信,延迟能做到几十毫秒,爽歪歪。
七、总结
说白了,二次开发芯步的空调控制模块,就是 “调API” 。
设备配网,拿到
DeviceID。学会 “学习码” 的接收逻辑,把红外码存进你的数据库。
写好 “发码” 的HTTP请求函数。
结合 传感器 和 逻辑判断(if else),实现自动化。
这一套搞下来,你不仅能控制空调,家里的电视、风扇、投影仪,只要带红外遥控器的,都能被你集成到自己的系统里。动手试试吧,兄弟!