芯步的8路远程开关模块通过HTTP API即可集成,签名认证是唯一的技术门槛。以下方案涵盖从设备配网到接口开发的完整流程,创客可直接复用。
解决方案:基于芯步开放API的8路远程电源控制集成方案
1. 背景与适用场景
在创客项目(如智能家居中枢、无人售货柜、实验室设备远程重启、工厂自动化产线)中,多路远程电源控制是一个高频需求。芯步的“智能8路远程开关控制模块”提供了WiFi联网能力,并通过其开放平台提供了标准HTTP API。
本方案的目标是指导开发者如何在不用芯步官方App的情况下,通过调用底层HTTP接口,将8路继电器模块深度集成到自己的现有系统(如Node-RED、Home Assistant、自有微信小程序、PC端控制软件)中。
2. 硬件与协议准备
| 项目 | 说明 |
|---|---|
| 硬件 | 芯步智能8路远程开关控制模块(WiFi版) |
| 网络环境 | 2.4GHz WiFi网络,设备需覆盖信号 |
| 接口协议 | HTTP API(请求地址:https://api.thingboot.com) |
| 数据格式 | JSON |
| 核心难度 | 签名鉴权(Sign加密) |
3. 对接全流程步骤
3.1 环境准备
注册登录:访问芯步官网注册开发者账号。
设备配网
给8路模块上电。
关注公众号“芯步”或使用官方调试App,通过热点配网模式将设备连接到你的本地路由器。此时设备会获得IP并连接云端。
提示:如果在无App环境下配网,可以利用微信AirKiss技术或查看设备出厂是否带有二维码,具体参考产品手册。
3.2 获取密钥
登录 -> 进入“物联网控制台” -> 点击“开发设置”。
AppID:项目的唯一标识。
AppSecret:接口调用的秘钥。
调试模式:开发初期开启“调试模式”,此时系统不校验签名和时间戳,方便快速测试通断,待逻辑跑通后再关闭调试模式进行严格签名开发。
3.3 设备ID获取
在控制台的“设备管理”页面,找到已配网的8路模块,记录下 Device ID(通常是纯数字,例如 820720)。
3.4 核心开发:签名算法
在正式环境(关闭调试模式)下,每次API调用都需要生成 sign。这是唯一的障碍,Python示例代码如下:
签名规则公式:sign = MD5( MD5(AppSecret) + ts )。
3.5 接口调用示例
使用POST方法控制设备,假设我们要打开8路模块的第1路,关闭第2路。
URL
https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}Header
Content-Type: application/jsonBody (JSON)
注:对于8路设备,通常支持 power1 至 power8 的指令。具体支持情况请查阅对应产品的《产品手册》。
3.6 进阶控制指令
除了简单的“开/关”,API还支持工业级时序控制:
| 指令类型 (JSON Key) | 功能描述 | 示例参数 | 应用场景 |
|---|---|---|---|
| powerX | 基础通断 | {“power1”: 1} | 普通开关灯 |
| point | 先通后断 | {“point”: {“relay”: [1,3], “interval”: 1000}} | 控制电机点动(按下启动,1秒后自动停止) |
| reset | 先断后通 | {“reset”: {“relay”: [2], “interval”: 5000}} | 远程重启路由器(断开,等待5秒,再通电) |
| batch | 批量控制 | {“batch”: {“relay”: [1,2,3], “power”: 0}} | 一键全部关闭 |
4. 代码实现(极简封装)
你只需要封装一个通用函数,即可在任何编程语言中调用。以下是 Python 和 JavaScript 的核心思路:
Python 请求示例 (使用 requests 库)
5. 常见问题与调试技巧
为什么设备没反应?
检查
deviceID是否填成了整数而非字符串格式。检查JSON格式,例如
{“power1”:1}中power1是否加引号。检查签名:确保时间戳是秒级(10位数),不是毫秒级。
检查WiFi:设备指示灯是否常亮(已联网),若闪烁则需重新配网。
关于局域网通信
上述方案走的是广域网(云端) 控制,只要有网就能控制。
如果追求低延迟且仅在局域网内使用,可查看产品是否支持本地API(通常需要查看产品手册或抓包获取本地IP和指令格式)。
获取设备状态
除了控制,你也可以通过API查询设备当前状态(通常为
device/status接口),以便在本地UI上同步显示开关状态。
6. 总结
通过上述步骤,你可以在10分钟内将市售的成品8路继电器变成你自己项目的一个执行单元。无需关心底层WiFi保活和重连机制,只需通过简单的HTTP POST请求,即可在你的创客项目中实现可靠的远程电源管理。