CATALOG

芯步8路控制器的开放接口采用HTTP签名机制,对接的核心在于正确构造sign参数和理解order命令格式。以下方案从设备选型、接口鉴权到业务代码实现,给出完整的技术路径。

解决方案:基于芯步8路控制器的共享充电场景智能化改造

1. 背景与选型

在共享充电场景(如共享自习室、电瓶车充电桩、街边充电插座)中,核心需求是对每个充电端口进行独立的功率控制、计费通断以及远程状态监测。

采用芯步 智能控制器8路(UNI-KZQ-AC-8) 作为硬件,具备以下优势:

  • 独立控制:支持8路继电器独立控制,每路可承载最大2200W阻性负载,完全覆盖手机、电瓶车、乃至小型家电的充电需求

  • 接口开放:全系产品开放标准HTTP API,无需复杂的物联网协议栈开发,只需简单的HTTPS请求即可完成控制,适合快速迭代的软件团队

  • 成本效益:无需购买网关,设备直连2.4G WiFi,且开放平台接口免费使用

2. 系统架构与对接原理

本方案采用标准的 云云对接 架构:

  1. 设备层:8路控制器接入220V市电,输出端连接8个独立的充电插座(或照明/风扇单元)。

  2. 网络层:设备通过WiFi连接互联网,与芯步开放平台保持长连接。

  3. 应用层:您的业务服务器通过调用芯步的HTTP API,向指定设备下发指令。

核心逻辑:您的后端服务器扮演“指挥官”角色,通过 AppIDAppSecret 和时间戳生成的签名(Sign)来鉴权,从而安全地控制硬件。

3. 详细对接实施步骤

3.1 准备工作与开发设置
  1. 硬件接线

    • 供电:将控制器的N、L输入端接入市电(AC 220V)。

    • 负载:将充电插座的其中一根线(通常是火线)串联到控制器的“输出1”端子上。例如,控制第1路充电口,就将该插座的火线剪断,串入“输出1”和“输出COM”端。

    • 上电:设备通电后,等待蓝色指示灯熄灭(常灭代表连网成功)或根据配网操作进行配网

  2. 平台配置

    • 登录芯步物联网控制台,获取 AppIDAppSecret(开发者密码)。

    • 将控制器绑定至平台账户下,获取唯一标识 Device ID

    • 在控制台的“开发设置”中,将您的业务服务器公网IP加入白名单(可选,增强安全性)

3.2 API 鉴权机制

所有接口请求必须携带签名(Sign),这是一个防篡改防盗用的关键机制。签名生成规则如下:

  • 参数

    • ts:当前Unix时间戳(秒级),如 1710000000

    • AppSecret:开发者密码(后台获取)。

  • 算法(以Node.js为例):

注意:若使用Python或Java,请一定要注意空字符串处理和编码格式(UTF-8)

3.3 核心控制逻辑:开/关充电

这是对接中最核心的功能——远程控制继电器通断(即充电口的供电)。

  • 接口地址POST https://api.thingboot.com/{AppID}/device/control/

  • 请求参数(Body JSON):

    • device:设备ID。

    • order:控制指令(JSON字符串)。

业务场景实现(充电桩逻辑):假设用户扫码请求“开启1号端口充电”,您的服务器需要构造如下指令:

操作Order 参数值业务含义
开启端口1{"power1":"1"}继电器吸合,插座/充电口通电
关闭端口1{"power1":"0"}继电器断开,停止充电
紧急全开/全关{"batch":{"power":0}}全部端口断电,用于异常熔断保护
先通后断(场景少用){"point":{"interval":500}}全部端口闪烁,用于演示模式或寻找设备

代码示例(Python后端处理用户充电请求):

3.4 状态同步与定时任务
  • 主动查询:通过 device/status 接口查询当前8个端口的通断状态(用于用户刷新页面)。

  • 被动推送:平台支持消息推送。可以配置Webhook地址,设备状态变化时实时通知您的服务器,确保计费系统准确无误。

  • 本地定时:如果不想每次都依赖服务器下发指令,可以直接在物联网控制台配置远程定时任务。例如:设置每天晚上24:00自动切断所有未结束的订单,进行安全巡检

4. 适配共享场景的功能增强

借助8路控制器的扩展能力,可以提升用户体验:

4.1 物理开关联动

该控制器提供8路开关量信号输入。您可以将轻触开关接在输入端,然后放置于桌面上。

  • 逻辑:当用户物理按下按钮时,控制器会触发IO变化,平台可以通过消息推送通知您的服务器,实现“物理按键启停充电”,这对于不方便掏手机的老人或临时需要暂停的场景非常友好

4.2 多路批量管理

在共享充电车棚或自习室场景,通常有多个设备并列。API支持批量控制:

  • 指令{"batch":{"relay":[1,3,5,7],"power":0}}

  • 高效性:该指令可一次性关闭所有设备的1、3、5、7号口。这对于管理端进行“一键断电复位”时,网络请求效率比较高,无需循环发送8次请求

5. 常见问题与排障

  1. 签名错误(Code 5006)

    • 原因:时间戳格式不对或MD5拼接顺序错误。

    • 解决:确认 ts 是10位秒级;确认拼接字符串是 md5(密钥) + ts 作为整体再MD5,不要带任何其他字符。

  2. 设备离线

    • 现象:接口调用成功,但硬件无响应。

    • 排查:检查设备蓝灯是否熄灭(熄灭代表在线)。共享充电场景中WiFi信号若不稳定,开启设备的多WiFi备用功能或使用外置天线版

  3. 负载安全

    • 注意:如果是用于电瓶车充电,属于感性负载,每路最大支持350W。切勿接入大功率电动车快充,否则会烧毁继电器

6. 总结

通过芯步8路控制器的开放接口,您可以在2周内快速完成共享充电项目的硬件改造。只需关注业务逻辑(扫码支付 -> 验签 -> 调用 device/control -> 记录开始充电 -> 轮询/回调结束 -> 调 device/control 断电),复杂的硬件通信与WiFi重连机制均由芯步平台封装完毕。