AC1-10A是一款支持10A额定电流控制的WiFi智能通断器,通过开放的HTTP接口可实现远程通断控制。下面从准备工作、签名算法、接口调用到代码示例,逐步说明对接方案。
1. 产品理解与准备
在开始对接之前,首先需要明确AC1-10A智能控制模块的核心特性。这款模块本质上是一个支持10A额定电流(最大16A)的智能通断器,适用于控制照明、电机、家电等各类设备。
| 项目 | 说明 |
|---|---|
| 产品型号 | UNI-TDQ-AC1-10A |
| 控制方式 | 1路继电器输出,支持通/断控制 |
| 额定电流 | 10A(阻性负载2200W),峰值16A |
| 通信协议 | Wi-Fi 2.4GHz |
| 接口协议 | HTTP、WebSocket |
| 特色功能 | 支持自定义动作(如延时通断)、状态实时上报 |
准备工作:
登录,获取 AppID 和 AppSecret(开发者密码)。
为设备通电并完成配网,获取 设备ID(Device ID)。如果没有实体设备,可以使用平台提供的“演示设备”进行测试。
准备一个支持发起HTTP请求的工具(如Postman、cURL)或开发环境(Python、Java、Go等)。
2. 接口鉴权与签名机制
芯步的开放接口采用动态签名的方式进行身份验证,这是保障接口安全的关键步骤。每次请求都需要计算一个特定的 sign 参数。
签名算法步骤如下
第一次MD5加密:
encrypt_secret = md5(AppSecret)拼接时间戳:
sign_str = encrypt_secret + ts(其中ts为当前的Unix时间戳,单位:秒)第二次MD5加密:
sign = md5(sign_str)
调试小技巧:在开发初期,可以在芯步控制台的“开发设置”中开启调试模式。在该模式下,系统会暂时忽略
sign和ts的校验,方便开发者快速验证业务逻辑。
3. 实现10A额定电流控制(通断指令)
对接的核心目标是实现对10A负载回路的接通与断开。AC1-10A模块的控制指令通过向特定API接口发送JSON格式的 order 参数来实现。
3.1 接口地址与请求结构
请求URL
https://api.thingboot.com/{AppID}/device/control/请求方法:POST
请求头(Header)
Content-Type: application/jsonQuery参数:需要携带计算好的
sign和ts。
主要控制指令说明:
开启(闭合继电器)
{"power1": 1}关闭(断开继电器)
{"power1": 0}
3.2 请求示例
假设你的 AppID 为 abc123,Device ID 为 10086,需要闭合开关(开启10A回路)。
1. 计算签名:
2. 组装请求并发送:
4. 实战代码场景(Python示例)
以下是一个完整的Python函数,封装了对AC1-10A模块的控制逻辑,可以直接集成到你的管理系统或自动化脚本中。
5. 进阶与可靠性保障
5.1 状态实时同步(WebSocket/回调)
仅仅发送控制指令是不够的,系统通常需要知道设备最终是否真的执行了动作(例如:是物理按键关闭了设备,还是网络故障)。AC1-10A支持状态主动推送机制。
配置回调URL:在芯步控制台中设置接收地址。
机制:当设备状态发生变化(无论是通过API控制、APP控制,还是手动按压模块上的按键),平台会立即向你的服务器推送当前最新的设备状态。
:你的业务系统应监听并存储这些推送过来的状态,而不是单纯依赖控制接口的返回结果,这样能保证数据库中的状态与物理设备真实状态一致。
5.2 特殊应用:自定义动作(脉冲模式)
在某些工业场景下,如果只是想让设备短暂接通(例如触发门禁或点动电机),AC1-10A支持自定义动作指令,可以让设备在开启后自动关闭,无需业务方额外发送关闭指令。
场景:控制一个电磁阀喷水500毫秒。
指令示例
{"power1": 1, "power1_delay": 500}(具体格式请以最新的产品手册为准,通常是结合定时任务或特定参数实现)。
6. 总结
对接芯步AC1-10A模块以实现10A额定电流控制,在技术上是一个“低代码”过程。主要工作总结如下:
核心逻辑:重点在于正确实现MD5动态签名,这是所有接口调用的通行证。
控制方式:通过
/device/control/接口配合{"power1": 1/0}指令,即可稳定实现10A大电流回路的通断。架构:生产环境启用状态回调机制,确保系统状态与物理设备状态强一致,同时利用调试模式加速开发联调效率。