CATALOG

这是一份关于“无人值守门店机柜电源控制”的解决方案。

我们将以芯步的8位智能PDU(总控/分控型)为例,手把手教你如何把它对接到你的软件项目里。

一、 为什么需要对接PDU?

在无人值守门店(如共享自习室、迷你KTV、无人便利店、远端基站)的场景中,最头疼的不是设备坏了,而是设备“死机”了没人去按重启键

比如路由器死机了、工控机蓝屏了、服务器卡住了,如果专门跑一趟去拔插电源,人力成本太高。我们的目标是:通过软件,远程给设备“断电-通电”,硬重启。

芯步的智能PDU(特别是8位总控/分控型号)正好解决这个问题。下面我们聊聊具体的对接过程。

二、 准备工作:了解你的“武器”

在写代码前,我们先要搞清楚手头这个PDU是什么型号。根据你的业务需求,芯步通常有两种规格

  • 8位总控: 只能一次性控制所有插口的通断。适合那些只需要整体重启机柜(一起开、一起关)的场景。

  • 8位分控: 可以单独控制每一个插孔。比如只重启“路由器”,而保持“服务器”不断电。

它支持两种对接模式,我你根据网络环境选:

  1. 公有云模式(最简单):设备连上WiFi,芯步云端转发指令。适合单门店、远程查看状态。

  2. 私有化/局域网模式(最稳、最快):指令完全走内网,不经过外网云端。适合机房、有公网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的继电器“咔哒”就响了,体验最好。

四、 实战:写一个“重启”函数

用口语化的逻辑,代码大概是这样的(伪代码逻辑,很容易转成真实代码):

五、 避坑指南

在实际落地中,有几点小