这是一份关于“无人值守门店机柜电源控制”的解决方案。
我们将以芯步的8位智能PDU(总控/分控型)为例,手把手教你如何把它对接到你的软件项目里。
一、 为什么需要对接PDU?
在无人值守门店(如共享自习室、迷你KTV、无人便利店、远端基站)的场景中,最头疼的不是设备坏了,而是设备“死机”了没人去按重启键。
比如路由器死机了、工控机蓝屏了、服务器卡住了,如果专门跑一趟去拔插电源,人力成本太高。我们的目标是:通过软件,远程给设备“断电-通电”,硬重启。
芯步的智能PDU(特别是8位总控/分控型号)正好解决这个问题。下面我们聊聊具体的对接过程。
二、 准备工作:了解你的“武器”
在写代码前,我们先要搞清楚手头这个PDU是什么型号。根据你的业务需求,芯步通常有两种规格
8位总控: 只能一次性控制所有插口的通断。适合那些只需要整体重启机柜(一起开、一起关)的场景。
8位分控: 可以单独控制每一个插孔。比如只重启“路由器”,而保持“服务器”不断电。
它支持两种对接模式,我你根据网络环境选:
公有云模式(最简单):设备连上WiFi,芯步云端转发指令。适合单门店、远程查看状态。
私有化/局域网模式(最稳、最快):指令完全走内网,不经过外网云端。适合机房、有公网IP的总部或对延时敏感的系统。
三、 核心对接步骤
这里我们不讲废话,直接看两种最实用的对接方式。
方案A:公有云API对接
适合快速开发,不需要管复杂的网络配置。
芯步的开放接口很标准化,本质就是通过HTTP请求发指令。
1. 先拿到设备ID你需要知道控制的是哪台设备。调用“获取设备详情”接口,拿到那个唯一的设备ID。
请求示例:
http(s)://api.thingboot.com/{你的AppID}/device/info/?device=设备ID重点关注返回数据里的
state字段(如果是总控,可能只有一个power字段;如果是分控,会有power1到power8)。
2. 发送控制指令这是最核心的一步。假设你的路由器接在插口1,现在死机了,你需要把它“关掉再打开”。
业务逻辑:不要直接开,而是执行 “断开 -> 等待 -> 通电” 的完整重启流程。
在代码逻辑上,你需要连续调用设备控制接口(具体命令格式可参考通用API文档):
第一步(断电):发指令把对应位设为
0。第二步(等待)
Thread.sleep(3000)或等待5秒,让电容放完电。第三步(通电):发指令把对应位设为
1。
方案B:局域网/私有化直连
适合追求极速响应、断网也能控制、或者数据安全的场景。
这种方式不需要通过芯步的云服务器,你的软件直接在局域网里调用PDU的IP地址。
1. 发现设备PDU拿到IP后(通过路由器后台或设备配网日志),你的软件直接访问: http://[设备IP地址]/control
2. 直接下发指令私有化协议的优点是极轻量。如果你的项目是用Python、Java或Go写的,直接POST一个JSON过去就行。
常见的指令格式(具体看产品手册):
全部开启:
{"power": "on"}控制指定插口:
{"power1": "on"}或{"power1": "off"}
这种模式没有网络延迟,点一下按钮,PDU的继电器“咔哒”就响了,体验最好。
四、 实战:写一个“重启”函数
用口语化的逻辑,代码大概是这样的(伪代码逻辑,很容易转成真实代码):
五、 避坑指南
在实际落地中,有几点小