CATALOG

共享充电宝机柜的电源控制核心挑战在于:如何在不更换硬件的前提下,将机柜内嵌的PDU(电源分配单元)无缝接入现有运营系统。本文基于芯步UNI-PDU-ZK-5智能PDU的开放API,提供一套完整的对接方案,涵盖接口鉴权、命令下发、状态同步及故障处理机制。

解决方案:基于芯步开放接口的共享充电宝机柜电源集成方案

1. 概述

在共享充电宝的运营中,机柜的电源控制是核心环节。我们需要通过程序化手段实现对机柜内5个插座位(对应不同充电宝仓位或主控板)的单独通断电控制,以实现远程重启、能耗管理或故障隔离。

芯步的 智能PDU[总控] 5位 (UNI-PDU-ZK-5) 支持通过 HTTP API 进行控制,这意味着你可以直接通过后端服务器向机柜下发指令,无需中间网关。

技术路径你的业务服务器 <--HTTPS--> 芯步API <--WiFi--> 机柜PDU设备

2. 准备工作:开发与设备配置

在开始编码前,需要完成以下基础配置:

  1. 硬件上电:将UNI-PDU-ZK-5接入220V市电,并插入网线或通过WiFi进行网络配置,确保设备联网(状态灯正常)。

  2. 获取凭证

    • 登录芯步开发者平台。

    • 在“开发设置”中获取 AppIDAppSecret

    • 在设备列表中找到机柜中对应的PDU设备,记录其 Device ID(如 1102001)。

  3. 了解负载:确认单孔位支持1500W,总额定功率3000W,确保充电宝满载时不超过阈值

3. 核心技术实现:API对接流程

芯步的接口采用动态签名验证机制。你需要实现一个签名生成函数,然后在每次请求时附带该签名。

3.1 签名算法 (Sign)

为了防止接口被恶意篡改,请求必须携带动态签名。公式如下:Sign = MD5( MD5(AppSecret) + ts )

  • Step 1:将你的 AppSecret 进行一次MD5加密,得到字符串 S1

  • Step 2:获取当前的 Unix 时间戳(秒级) ts

  • Step 3:拼接字符串 S1 + ts,再进行一次MD5加密,得到最终的 Sign

代码示例 (Python实现核心签名)

3.2 控制指令下发

你需要向 https://api.thingboot.com/{AppId}/device/control/ 发送POST请求。

  • 单路控制(仓位独立管理)假设机柜的1号仓位死机,需要断电重启。由于PDU是5位的,我们可以控制对应的孔位。

    • 指令{“power1”:0} (关闭孔位1) -> 等待5秒 -> {“power1”:1} (开启孔位1)。

    • 注意:若需要延迟重启,请请一定要在业务代码中实现“先断后通”的间隔逻辑,避免瞬间电流冲击

  • 批量控制(紧急情况)如机柜发生故障需要整体复位。

    • 指令{“power1”:0,“power2”:0,“power3”:0,“power4”:0,“power5”:0}

请求示例 (cURL)

3.3 设备状态同步(消息推送)

单纯的“下发命令”是单向的,你需要知道“命令是否执行成功”以及“当前电流电压是多少”。

为了实现这一点,配置消息推送机制:

  1. 回调地址:在你的服务器上开放一个API接口(如 http://yourdomain.com/iot/callback),并在芯步控制台配置该地址。

  2. 数据接收:当PDU状态变化(如手动按了按钮、电流过载跳闸、命令执行反馈)时,平台会主动将数据 POST 到你的服务器。

  3. 数据结构处理:你需要解析回调的 JSON 包,更新数据库中对应机柜的“在线状态”和“电流负载”。

4. 项目中高可用的逻辑设计

要在生产环境中稳定运行,不能仅调用API,还需规划以下逻辑:

  • 断网重连与离线指令PDU依赖WiFi,机柜若处于地下室信号差怎么办?

    • 策略:PDU配置5组WiFi,包括手机热点作为备用。同时,芯步平台支持定时任务。如果你的业务逻辑是“凌晨3点重启”,可以直接在平台上预设定时任务,这样即使服务器断网,设备本地也会执行。

  • 多设备并发控制你的项目可能管理着成千上万个机柜。由于API接口是通过 AppId 鉴权的,不存在所谓的“连接数限制”。

    • 优化:在协程或异步框架(如 Go 的 Goroutine, Java 的 CompletableFuture)中,可以并发发送 device 参数不同的请求,API 响应速度通常在 80-120ms 内

  • 负载均衡与过载保护利用API接口可以实时读取(或通过回调获取)PDU的功率数据。

    • 场景:如果发现总功率接近3000W峰值,你的业务系统可以自动触发策略——拒绝新柜弹出充电宝,直到功率回落,防止跳闸导致整个机柜离线。

5. 总结

利用芯步智能PDU的开放接口,你可以仅通过全平台通用的HTTP协议完成对接。整套方案的核心是签名算法的实现和消息回调的解析。

对于你的项目来说,这意味着:

  1. 开发成本低:无需了解底层复杂的485协议或Modbus,直接使用RESTful API

  2. 运维可控:远程即可复位死机的充电宝仓位,减少现场维护成本。

  3. 扩展性强:未来如果要加入“机柜温度过高自动断电”功能,只需读取温湿度传感器的回调,并调用PDU API即可实现联动