这是一个偏向实战的接入方案,主要针对芯步的5位分控PDU(因为总控只能一起开关,分控才能玩联动)。我会尽量写得详细且口语化一些,方便你直接拿去参考或落地。
一、 我们到底要解决啥?
很多朋友找我聊,说机房或者设备柜里放着服务器、散热风扇、监控硬盘录像机、工控机一堆设备。平时维护还好,一旦遇到紧急情况(比如温度过高、或者某台设备死机了),还得亲自跑过去拔电源重启,非常麻烦。
这次咱们就基于芯步的5位分控智能PDU,通过它开放的HTTP接口,把这些物理上连在一个排插上的设备,变成逻辑上“可联动、可编排”的智能设备。
二、 认识一下今天的主角
我们要用的是5位分控版PDU。千万别选错了,虽然芯步也有5位总控版,但“分控”意味着你可以单独控制第1口给路由器供电,同时单独掐断第2口让监控摄像头断电重启,互不干扰。
核心优势:接口开放得很彻底,只要你懂一点代码(甚至用现成的工具),就能直接调接口。
网络要求:只支持2.4G WiFi,这一点配网的时候要留心。
三、 接入前的准备工作
在敲代码之前,先把环境跑通,大概花5分钟。
1. 注册与创建“工作台”
去芯步官网注册个账号,进控制台创建一个“工作台”。你可以把这个工作台理解成你的专属虚拟机房,所有设备都挂在这个下面。
2. 设备配网(最关键的一步)
刚拿到手的PDU指示灯应该是快闪的。你需要先把手机热点(或现场WiFi)的SSID和密码改成你路由器真实的名称和密码,频段一定要2.4G。然后用芯步的小程序或者网页后台,把这个WiFi配置推送给PDU。一旦指示灯常亮,说明PDU已经连上家里的网络了。
3. 拿到两把“钥匙”:AppID 和 AppSecret
在后台的“开发设置”里,找到这两个字符串。AppID是你的用户名,AppSecret是你的密码。调用接口的时候需要用它们算签名,防止别人乱动你的设备。
四、 接口怎么调?先试试手动控制
你可以先用电脑自带的CMD(命令行)或者Postman这类工具试一下,这样对接口理解更直观。
芯步的接口地址是统一的:https://api.thingboot.com/{你的AppID}/device/control/
1. 搞清楚怎么算签名(Sign)
为了防止接口被轻易破解,它的签名算法是这样的:
先把 AppSecret 进行一次 MD5 加密。
把加密后的字符串加上当前的时间戳(ts)。
再对整个字符串做一次 MD5 加密,得到最终的 Sign。
简单说,代码里就这么写(概念示例):Sign = md5( md5(AppSecret) + ts )
2. 下发一条指令
假设你的设备ID是 pdu_5_slot_01(在后台能看到),我想把第3个插口打开。
请求参数
device: pdu_5_slot_01order:{"power3": 1}(注意:分控PDU的命令是 power1, power2, power3... power5;1是开,0是关)
只要返回成功,你就已经打通了“软件到硬件”的通道。
五、 实战联动:服务器过热自动重启风扇
这是最典型、最实用的场景。假设机房温度高了,自动打开PDU上的第5口(接了大功率排风扇)吹风;温度降下来就关掉,省电又降噪。
这个逻辑不能跑在云端(万一断网就完了),最好跑在局域网内的电脑或树莓派上。
1. 需要哪些东西?
5位分控PDU:接风扇。
温湿度传感器(芯步家的或者其他的都行,只要能采集温度)。
一台24小时在线的电脑/服务器:跑我们的联动脚本(Python示例)。
2. 实现逻辑(伪代码思维)
我们用Python写一个简单的脚本,思路如下:
六、 进阶玩法:死机自动重启
如果你的软路由或者工控机死机了,怎么远程修?答案是放弃软件检测,改用硬件看门狗。
原理:利用Ping命令。如果P不通网关(路由器),或者P不通外网(如114.114.114.114),说明设备挂死了。
执行
服务器脚本检测到Ping不通目标设备。
脚本立即调用接口:
{"power2": 0}(给死机的设备断电)。等待10秒。
调用接口:
{"power2": 1}(重新通电,设备自动启动)。
七、 几个踩坑经验
关于分控 vs 总控:一定要买分控(每个插孔独立开关)。总控虽然便宜,但一关全关,没办法做精细联动。
局域网控制(私有化):如果你的外网断了,还想控制PDU怎么办?芯步的设备支持局域网控制。只要你的电脑和PDU连着同一个路由器,直接调用
http://设备的局域网IP(需要在后台看)也行,不经过外网,延迟更低、更稳。不要频繁轮询:PDU是继电器机械开关,虽然寿命长,但没必要每秒都去读状态(如果不需要实时采集电量的话)。联动触发靠事件(比如温度超标那一刻)或者1分钟一次的轮询就足够了。
总结一下,芯步这套PDU的接口设计逻辑非常清晰,只要跑通了一次签名,剩下的就是对着设备ID发JSON指令了。搞定这个,你就再也不用跑腿去机柜面前按开关了。