一、我们聊点实际的
你有没有遇到这种情况:需要远程控制某个地方的设备开关,比如厂房的排风扇、养殖场的加温灯、或者仓库的照明?拉专线成本太高,人工跑过去又太麻烦。
芯步的“智能交流控制器2路”(型号UNI-KZQ-AC-2)就是专门解决这个问题的。这东西说白了就是一个可以装在电箱里的WiFi开关,能独立控制两路交流设备(灯、电机、水泵啥都行),关键是通过HTTP接口就能调用,你写几行代码就能让它听话。
下面我就把整个对接过程掰开揉碎了讲一遍,从准备工作到代码实现,再到一些坑怎么避,争取让你看完就能上手。
二、这个东西能干什么?
先看一下这个控制器的基本情况,心里有个底:
| 项目 | 说明 |
|---|---|
| 产品型号 | UNI-KZQ-AC-2 |
| 控制路数 | 2路(独立控制) |
| 工作电压 | 100-240V AC(直接接市电) |
| 每路最大电流 | 10A |
| 通信方式 | WiFi 2.4GHz |
| 接口类型 | HTTP API |
| 特殊能力 | 支持私有化部署、局域网控制 |
简单说:把它接上你家/厂里的WiFi,然后你的服务器(或者云端)通过HTTP发个请求过去,它就能开关对应线路上的设备。
三、对接之前要准备什么?
别急着写代码,先把这几样东西备齐:
3.1 硬件准备
智能交流控制器2路本体一台(废话)
220V交流电源(给它供电)
待控制的设备:比如两盏灯、两个排风扇,你随意
标准网线:配网时可能需要有线连接(具体看产品说明书)
3.2 软件/账号准备
注册芯步账号:去官网注册一个,免费
创建工作台:登录后进入控制台,创建一个工作台(相当于你的设备管理空间)
获取AppID和AppSecret:在“开发设置”里面能找到,这两个值是你的身份凭证,别泄露给别人
给设备配网:让控制器连上你家WiFi(这个步骤一般在控制台里操作,按提示来就行)
搞定这些,你的设备应该已经在控制台里显示“在线”了。
四、核心:怎么发指令控制它?
芯步的接口设计得比较直白,就是一个HTTP POST请求,带上签名和设备ID,然后告诉它你要干什么。
4.1 接口地址
4.2 签名是怎么算的?
这是最容易晕的地方,但其实没那么复杂。签名的计算规则是:
拆解一下:
先把你的AppSecret做一次MD5加密,得到一串字符串
把上一步得到的字符串,和当前时间戳(秒)拼接在一起
把拼接后的字符串再做一次MD5
打个比方:假设AppSecret是“abc123”,时间戳是“1700000000”第一步:md5(“abc123”) = “e99a18c428cb38d5f22e03”第二步:拼接得到 “e99a18c428cb38d5f22e031700000000”第三步:md5(上面这串) = 最终签名
注意:时间戳ts必须和签名里用的是同一个,而且服务器会校验时间差,一般5分钟内有效。
4.3 请求体要传什么?
请求体是JSON格式,需要两个字段:
device:你设备的唯一标识,在控制台里能看到
order:控制命令,是个JSON对象
{"power1": 1}表示打开第1路{"power1": 0}表示关闭第1路{"power2": 1}打开第2路{"power2": 0}关闭第2路
如果你想同时控制两路,也可以这样:
4.4 完整的请求示例(用curl示意)
假设:
AppID = “12345”
设备ID = “device_001”
当前时间戳 = 1700000000
计算出的签名 = “xxxxxx”
响应成功的话,会返回类似这样的结果:
五、实战场景:用Python写个定时开关脚本
假设你要控制厂房的排风扇,每天早上8点开,下午6点关。写一个简单的Python脚本丢服务器上就行。