芯步的AC4-30A这款模块,说实话它的开放接口设计得还是比较清晰的。要实现“过流自动断电”,核心思路就是:用你的服务器做大脑,实时看电流数据,一旦超过阈值就发指令把开关拉下来。
下面我把整个对接流程和代码逻辑梳理一下,你可以参考这个思路来开发:
一、 准备工作:先把硬件“管”起来
在写代码之前,得先把基础打好。
硬件接线:这个不用多说,AC4-30A是串在电路里的。记得火线进、火线出,零线直接接负载。这玩意儿能扛30A,带个大功率设备完全没问题。
配网与获取凭证
先去芯步官网注册个账号,创个工作台。
给AC4-30A通上电,根据说明书把它连上你家路由器。
在后台的“控制台”里,你会找到两个至关重要的东西:AppID 和 AppSecret(开发者密码),这就相当于你调用接口的“账号密码”。还有那个设备ID,等下控制它全靠这个编号。
二、 核心逻辑:怎么判断“过流”?
要实现自动断电,你肯定需要一个“流”的数值。虽然官方文档里没有明确说明如何订阅实时的电流数据流(通常是MQTT协议上报的),但在解决方案的逻辑上,一般都是服务端轮询或监听
方案A(推荐):通过MQTT协议订阅设备状态。AC4-30A通常会实时推送
{"current": 12.5}这样的数据。你只要在代码里判断,if current > 30就触发断电。方案B:如果你的业务逻辑比较简单,或者服务器环境受限,可以用HTTP接口定期去查询设备状态。
注:既然你问的是“接入”,那我们就假设你已经能从某个渠道(MQTT回调或HTTP查询)获取到当前的电流值了。
三、 动手写代码:实现自动断电
这里是重头戏。假设你的服务器检测到电流超过了30A(或者你设定的25A安全阈值),现在要立刻断开AC4-30A。
芯步的接口签名规则稍微有点绕,是 MD5(MD5(密码) + 时间戳)。我写了一段 Python 代码,你可以直接复制拿去改:
代码里的几个关键点解释一下:
签名算法:这个比较容易踩坑。不是直接 MD5 密码,而是先加密一次密码,加上时间戳,再整体加密一次。上面的
generate_sign函数已经帮你把这个逻辑写好了。控制命令:对于AC4-30A这类通断器,关就是
{"power": 0},开就是{"power": 1}。电流数据源:上面的代码里
get_current_value()是写死的演示数据。在实际工程里,这个地方应该替换成监听MQTT消息的代码,或者是调用查询设备状态的API。
四、 进阶一点:玩转“自动恢复”和“时长控制”
除了简单的开和关,这个模块其实还能玩点花活。比如有时候电流波动是瞬时的,你想让它在断电后尝试重启:
先断后通(Reset):如果你想实现“跳闸后过5秒自动合闸”,可以用
{"reset": 5000}命令,单位是毫秒。这个功能在防止误报导致长时间停机时非常有用。先通后断(Point):这个是用来做“点动”控制的,相当于按一下按钮触发一下,一般用在电机控制上。
五、 总结一下这套方案
数据采集:你的服务器通过MQTT接收AC4-30A上报的实时电流。
逻辑判断:写一行
if代码,判断电流是否大于30A。执行动作:调用
https://api.thingboot.com/{AppID}/device/control/接口,传参{"power": 0}。安全闭环:你甚至可以再加一个逻辑——断电后发个邮件或者企业微信通知给运维人员。
这样一来,你的AC4-30A就不再是一个单纯的手动开关,而是一台具备自动保护功能的智能断路器了。