CATALOG

共享设备柜的电源管理经常会遇到用户离开后忘记断电的问题,既浪费电也影响设备寿命。芯步的智能控制器(4路/通断器)配合开放API,可以很好地解决定时控制这个需求。以下是具体的接入方案。

1. 背景与需求分析

在共享经济模式日益普及的当下,共享充电宝柜、快递储物柜、共享按摩椅、共享洗衣机等设备在城市中大量部署。运营者在实际运营中常遇到以下痛点:

  • 能耗浪费:设备在空闲时段(如深夜)仍处于待机通电状态,产生不必要的电费开销。

  • 设备损耗:电子屏幕、主板等部件长期不间断通电,会加速老化,增加硬件故障率。

  • 安全隐患:长时间无人监管的通电状态存在一定的电气火灾风险。

  • 运营灵活性差:遇到系统维护或恶劣天气时,无法远程批量切断设备电源,需人工到场处理。

目标:利用芯步智能硬件(智能通断器/4路控制器)及开放API,搭建一套“共享设备柜电源智能控制系统”,实现按策略定时开关、远程独立分控、状态实时可视

2. 系统架构

本方案基于云-管-边-端设计,利用标准的HTTP协议进行通信,无需复杂的MQTT协议封装,适合快速开发对接。

架构层级:

  1. 设备端(感知层) :芯步智能控制器4路(交流版)智能通断器。安装在共享设备柜内部,串接在柜内插排或主电源线上,控制总电源或格子门的电磁锁电源。

  2. 网络层(传输层):设备通过2.4G WiFi直连云平台,无需额外网关。支持局域网和公网两种模式。

  3. 云平台层(芯步):负责设备连接管理、指令转发、签名验证、定时任务存储。

  4. 应用层(业务服务器/SaaS):运营商的共享设备业务系统。通过调用芯步开放API,下发定时指令或即时控制指令。

graph LR
    subgraph 设备柜端
        A[共享设备柜] --> B[智能控制器/通断器
芯步硬件] end subgraph 云端 C[芯步云平台
API接口/消息路由] D[运营商业务服务器
订单/定时任务逻辑] end subgraph 管理端 E[管理员APP/小程序] end B -- WiFi/HTTP --> C C -- HTTP API交互 --> D D -- 定时策略/控制指令 --> C C -- 设备状态推送 --> D E -- 业务管理 --> D D -- 下发定时任务 --> C

3. 硬件选型

针对“共享设备柜”的不同应用场景,推荐以下两款芯步产品,它们均开放了标准的HTTP接口:

产品型号推荐场景核心功能开放接口能力
智能控制器4路 (AC交流版)共享储物柜、快递柜、共享按摩椅提供4路独立交流输出,可直接控制4个独立柜格或4台设备的电源支持单路/批量通断控制,支持定时任务,支持状态查询
智能通断器 AC4-20A单柜体总控、充电桩、共享洗衣机1路大功率输入输出,适合整体控制整个机柜的总电源支持总闸开关,支持远程定时任务,支持电量监测

接线方案对于多格口共享柜,采用“1个4路控制器+电磁锁”方案或“1个4路控制器+格子电源”方案。将220V输入接入控制器,输出端分别接至各格口的用电设备或插座。

4. 业务逻辑与接口实现

本章节详细阐述如何通过编程实现“定时开关电源”。核心逻辑分为两部分:即时控制(如用户取件后立即断电)和周期定时(如深夜23:00自动断电)。

4.1 签名算法与鉴权

每次调用API前,必须进行签名计算,以保证安全性。根据芯步开放平台规则,签名生成规则如下

  • AppID:应用唯一标识

  • AppSecret:应用密钥(需MD5一次)

  • ts:当前Unix时间戳(秒)

签名公式Sign = md5( md5(AppSecret) + ts )

代码示例(Python)

4.2 第一种场景:创建定时任务(周期性断电)

需求: 每天晚上 23:00 切断所有共享设备柜的总电源,早上 06:00 恢复供电。

方案 A:业务层定时(推荐,最灵活)运营商业务服务器利用Linux Cron或Windows Task Scheduler,在指定时间点触发HTTP请求。

API调用详情

  • URLPOST https://api.thingboot.com/{AppID}/device/control/

  • 参数

    • device:设备ID(例如 882341,可从控制台获取或设备上线事件中获取)。

    • order

      • 断电指令{"power1":"0", "power2":"0", "power3":"0", "power4":"0"}(如果使用的是4路控制器)

      • 批量控制指令{"batch":{"relay":[1,2,3,4],"power":"0"}}(更简洁)

实现逻辑

  1. 服务器检测到当前时间为 23:00。

  2. 遍历数据库中所有在线的共享设备柜ID列表。

  3. 对每个ID发起上述HTTP POST请求。

  4. 记录操作日志。

4.3 第二种场景:延时单路断电(用户归还后自动断电)

需求: 用户在共享储物柜存放物品后,柜门关闭,系统应延时5分钟切断该格口的电源(仅保留控制板供电),防止浪费。

方案 B:利用“先通后断”指令芯步控制器支持 “先通后断” (Point) 模式,非常适合此场景。该命令执行逻辑为:立即接通电源 -> 等待指定时间 -> 自动切断电源。

API调用详情

  • URLPOST https://api.thingboot.com/{AppID}/device/control/

  • 参数

    • device:对应的格子控制器ID。

    • order{"point":{"relay":[1],"interval":300000}} (间隔单位为毫秒,300000ms = 5分钟)。

时序流程

  1. 用户扫码开柜。

  2. 服务器收到订单开始。

  3. 服务器下发 {"power1":"1"} 或直接下发 point 指令。如果是 point 指令,电磁锁/设备亮灯。

  4. 用户存取物品,关门。

  5. 5分钟后:控制器硬件内部计时触发,自动物理断开第1路电源,无需服务器再次发送指令,可靠性高。

4.4 第三种场景:状态监测与上报

为了确保定时任务执行成功,系统需要感知设备当前状态。

设备主动上报机制当设备状态发生变化(如被手动按键关闭、定时关闭、重新上电)时,芯步云平台会主动推送消息到开发者预设的URL地址

接收示例(JSON格式)

应用策略:运营服务器收到上报后,若发现 power1 状态为 0(关闭),可更新数据库中该设备的状态为“休眠/待机”,用于统计设备使用率。

5. 关键功能配置与优化

5.1 上电状态设置(安全策略)

为避免停电后突然来电导致设备瞬间全部启动(造成浪涌电流过大),在芯步控制台配置设备的“上电后状态”。

  • 配置:设置为“保持断电”或“恢复断电前状态”。

  • 效果:凌晨3点停电,凌晨4点来电,设备依然保持断电状态,直到早上6点服务器通过API指令主动唤醒,确保安全

5.2 高并发处理

如果运营的共享设备数量巨大(例如数万台),在整点执行定时任务(如23:00)时,容易产生“惊群效应”,导致服务器或API网关压力过大。

  • 优化:在业务代码中加入随机延迟机制。例如定时任务触发后,在0-5秒内随机发起请求,避免所有请求在同一毫秒冲向芯步API。

5.3 异常告警联动

结合芯步生态中的传感器(如烟雾传感器、温湿度传感器),增加控制策略

  • 场景:当安装在柜内的烟雾传感器检测到浓度超标时,服务器优先调用 order={"power1":"0"} 强制切断所有电源,并通知管理员,实现消防联动。

6. 开发步骤摘要

如果不考虑附件文档,纯代码层面的实施步骤可归纳如下:

  1. 注册开发者账号:在芯步开放平台注册,获取 AppIDAppSecret

  2. 硬件配网:将4路控制器通电,使用“芯步”APP进行SmartConfig或AP配网,将其绑定到你的账号下,记录下 Device ID

  3. 测试API连通性

    • 使用Postman工具,填入计算好的签名、时间戳。

    • Body填入 {"device": [Device ID], "order": {"power1": "1"}}

    • 观察控制器对应的指示灯是否亮起,继电器是否吸合。

  4. 配置消息推送:在控制台配置“消息推送URL”为你自己的服务器地址(例如 https://yourdomain.com/api/yoyo/callback),用于接收状态变更

  5. 编写核心逻辑:根据第4章的伪代码,编写针对性的定时任务脚本。

7. 总结

通过接入芯步的开放接口,共享设备柜运营商可以快速实现“定时开关电源”功能。本方案利用 HTTP API 的简洁性(无需关心底层协议)和设备端硬件定时point 指令)的稳定性,有效解决了共享场景下待机能耗高设备维护难的问题。

该方案不仅实现了基础的定时控制,还通过签名鉴权、状态上报和传感器联动,构建了一套安全、智能、可远程运维的共享设备电源管理体系。