DC-10A 是一款支持两路开关量输入的智能通断器,其开放接口允许开发者绕过厂商App,直接基于HTTP API构建自定义联动逻辑。以下方案涵盖技术架构、签名算法、核心实现代码及典型场景。
解决方案:基于芯步 DC-10A 开放接口的二次开发实现自定义联动控制
1. 背景与技术原理
DC-10A 智能通断器 不仅支持远程控制继电器通断,更关键的是它具备 两路开关量输入接口(DI1, DI2)。这意味它可以接入传统的物理按钮、门磁传感器或工业限位开关。
核心二次开发逻辑:利用 DC-10A 的开放 HTTP 接口,建立“外部触发 -> 云端/本地逻辑判断 -> 设备动作”的闭环。开发者可通过自建服务器接收设备状态变化(Input 状态),运行自定义业务逻辑(如延时、互锁、联动),再通过 API 控制输出(Power)。
2. 二次开发环境准备
在开始编码前,需要在芯步控制台完成以下配置:
获取凭证:在控制台的“开发设置”中获取
AppID和AppSecret。这是 API 调用的身份凭证。设备 ID:将 DC-10A 配置上网后,在设备列表获取唯一的
Device ID(如示例中的1878)。网络环境选择
公有云模式:直接调用
api.thingboot.com。私有化部署:DC-10A 支持局域网通信。若在纯内网环境,可将 API 地址指向自建的本地服务器,实现更高频、低延时的控制。
3. 接口签名与核心通信机制
所有二次开发都必须先解决鉴权问题。DC-10A 接口采用 MD5 双层加密 策略,这是实现安全控制的基石。
签名算法步骤(伪代码逻辑):
将
AppSecret进行一次 MD5 哈希:sec_md5 = md5(AppSecret)拼接时间戳:
str = sec_md5 + timestamp生成最终签名:
sign = md5(str)
请求结构(以控制“闭合继电器”为例):
URL
https://api.thingboot.com/{AppID}/device/control/Method:POST
Headers
Content-Type: application/jsonPayload
技术提示:通过
order字段可灵活控制。对于 DC-10A,{"power1":1}控制第一路,若要实现“点动”(类似按一下触发几秒),可在代码中组合{"power1":1}和延时后的{"power1":0}。
4. 自定义联动逻辑实战开发
本方案的核心在于 “状态感知” 与 “指令编排” 。DC-10A 的两路输入(DI)可以作为逻辑触发器。
场景案例:双输入互锁逻辑(电机正反转控制)需求:按下输入1(正转)时,必须先断开输出2,再接通输出1;按下输入2(反转)时反之。这是工业安全标准,防止短路。
由于 DC-10A 本身是纯硬件通断器,这种 “互锁逻辑” 需要通过外部服务器代码实现:
代码实现逻辑思路:
订阅/查询状态:DC-10A 支持向自建服务器推送状态变化,或者你也可以通过 HTTP 轮询获取 DI 状态。
处理输入 1 (DI=1)
接收到 DI1 触发信号。
先调用 API 断开输出 2:
{"power2": 0}(延时 50ms 确保硬件断开)。再调用 API 接通输出 1:
{"power1": 1}。
处理输入 2 (DI=2)
接收到 DI2 触发信号。
先调用 API 断开输出 1:
{"power1": 0}。再调用 API 接通输出 2:
{"power2": 1}。
场景案例:延时关闭与自定义联动需求:按下外接按钮(触发 DI1),灯亮,同时风扇开始排风,5分钟后自动关闭所有设备。
触发端:设备检测到 DI1 状态为
1(闭合)。逻辑层逻辑
调用
control接口:order={"power1":1}(开灯)。调用
control接口:order={"power2":1}(开风扇)。启动定时器(300秒)。
定时器到期后,调用接口:
order={"power1":0, "power2":0}。
优化点:DC-10A 硬件本身支持
point(先通后断)等基础动作,但在二次开发中,自行维护定时器数组可以实现更复杂的“排程逻辑”,且不受固件版本限制。
5. 高阶集成:私有化与消息驱动
对于需要高实时性、无云端延迟的场景(如自动化产线),利用 DC-10A 的 私有化部署 特性。
自建 TCP/HTTP 服务:在本地服务器(如工控机、树莓派)运行一个轻量级 Web 服务。
设备配置:在芯步控制台将设备的重定向地址指向该本地服务 IP。
本地闭环:所有 DI 触发信号直接上报给本地服务,本地服务运算后直接通过局域网 HTTP 接口控制设备继电器。整个过程不经过广域网,响应时间可缩短至毫秒级。
6. 总结
通过芯步 DC-10A 的开放接口,开发者完全可以摆脱原生 App 的限制。利用 HTTP API 作为“筋”,用自建服务器作为“大脑”,你可以将 DC-10A 从一个简单的通断器升级为复杂的 逻辑可编程控制器。无论是实现简单的微信小程序远程控制,还是复杂的工业级互锁、场景联动,这套基于签名鉴权的二次开发方案均能提供稳定、灵活的底层支持。