芯步的8路控制器支持通过HTTP接口直接控制每路开关,要实现“点动”(按一下触发一次)和“自锁”(按一下保持状态)的切换,其实就是在你的业务代码里维护一个状态变量,然后给设备发不同的指令。
下面给你详细说说怎么搞定这事儿。
1. 先摸清硬件情况
首先要确认你手头的是哪款8路控制器,这两款虽然命令一样,但接的负载不同:
智能通用控制器:交直流都能用,接小负载可以直接接,大负载需要加接触器。
智能控制器8路(直流版):专门用来接电磁锁、电插锁这类直流设备,常见于售货柜、快递柜。
两款都支持 HTTP API,只要设备连上网,你就能随时随地调接口控制它。
2. 核心接口:控制设备
要实现点动和自锁,全靠这个接口。
请求地址:
(签名生成方式请参考官方文档,一般是为了安全做的MD5加密)
请求参数:你需要传两个关键参数:
| 参数 | 说明 | 示例 |
|---|---|---|
device | 设备的唯一ID,可以在芯步控制台找到 | "10086" |
order | 控制指令(这是个JSON对象,具体见下表) | {"power1":"1"} |
3. 模式切换实战
现在我们来看看在代码层面,怎么把这两种逻辑玩转。
第一种场景:自锁模式
就像家里的电灯开关。按一下开,灯一直亮;再按一下关,灯熄灭。
点一下“开”:告诉设备把这路继电器吸合(通电),然后不管它。
点一下“关”:告诉设备把这路继电器断开(断电)。
接口调用示例(假设控制第1路):
开启(自锁状态ON):
{"power1":"1"}关闭(自锁状态OFF):
{"power1":"0"}
通俗理解: 你的程序需要记住这路现在是开还是关。用户点一下按钮,程序判断“当前是关”,就发“1”指令;再点一下,程序判断“当前是开”,就发“0”指令。
第二种场景:点动模式
就像门铃。按着的时候响(通电),松手就不响(断电)。在工业控制里,通常是指给一个短暂的脉冲信号。
操作一次:设备通电一瞬间马上断电,形成一个脉冲。常用于控制气缸、电机启动或者短按复位。
接口调用示例(控制第1路):由于HTTP接口本身是发一次指令执行一次动作,要实现点动,需要你的后端服务器在极短时间内连续发送两条相反的指令。
逻辑流程:
用户按一下“点动”按钮。
你的服务器发送:
{"power1":"1"}(通电)等待 200~500毫秒(这个时长根据你的设备需求调整,比如控制继电器线圈一般200ms就够了)。
你的服务器发送:
{"power1":"0"}(断电)
很多开发者会问,能不能让硬件自己完成?目前这款8路控制器主要执行单次指令,这种“通断时序”逻辑最好还是由你的业务代码来控制最灵活。
4. 附赠小技巧:更多玩法
技巧一:批量控制(省事儿)
如果你想一键全开或者只开某几路,不用写8行代码,用批量控制就行。
全开:
{"batch":{"power":1}}关掉奇数路(1,3,5,7):
{"batch":{"relay":[1,3,5,7],"power":0}}只打开第2和第4路:
{"batch":{"relay":[2,4],"power":1}}
技巧二:先通后断(Point)
这个功能在切换频道或者切换电路时非常有用。比如你想从线路A切换到线路B,如果先断A再通B,中间会有几十毫秒的断电时间,某些敏感设备可能会重启。这时候用 先通后断 模式:{"point":{"relay":[1,2],"interval":100}}意思是:先把线路2接通,等100毫秒之后,再把线路1断开。实现无缝切换。
总结一下
简单来说,这套方案就是把控制逻辑放在你的云端或本地服务器里:
自锁:服务器当“记忆开关”,记着状态,用户按一下就发相反的指令。
点动:服务器当“快手”,收到指令后,立刻发“开”,隔一会儿发“关”。
搞定这几个接口调用,你就能把这台8路控制器玩出花来了。