CATALOG

DC-10A 是一款支持HTTP接口的智能通断器,可以直接通过WiFi接入,不需要网关,很适合做二次开发。下面从对接思路到代码示例,一步步说清楚怎么把它集成到你自己的项目里。

一、 为什么选择 DC-10A?先看看到底有多“开放”

在开始写代码之前,咱们得先摸清这个设备的“脾气”。根据芯步的官方资料,DC-10A 智能通断器有几个对开发者特别友好的特点:

  1. 拒绝网关,直连 WiFi:这可能是最香的一点。它不需要买额外的网关设备,只要家里有 2.4G WiFi 信号,它就能自己连上去。这在工厂或者分散的场所部署时,能省不少硬件成本

  2. 接口就是 HTTP:它没有搞复杂的私有协议,就是普通的 HTTP 请求。这意味着不管你后端是 Java、Python,还是前端写 JavaScript,甚至是用的低代码平台,只要它能发 HTTP 请求,就能控制它

  3. 实时状态反馈:像微信公众号消息一样,当设备状态变了(比如你本地按了开关,或者设备掉线了),它会主动往你指定的服务器地址推送消息。这对做设备监控大屏来说很关键

二、 集成前的准备工作

在动笔写代码之前,我们需要先去芯步的官网做点准备工作,花不了几分钟:

  1. 注册与创建应用:注册一个账号,进入控制台。你需要在这里创建一个“应用”,创建完成后,系统会分配给你两个关键字符串:AppIDAppSecret。这两个字符串相当于你在芯步平台里的“身份证”,调用接口时用来鉴权的

  2. 设备配网:先别急着写代码,用官方提供的“芯步”小程序,把 DC-10A 连上你附近的 WiFi。确保它在“物联网控制台”里显示为在线状态。

  3. 拿到设备 ID:在控制台的设备列表里,找到你刚才添加的 DC-10A,会有一串数字,那就是 Device ID。这就是你要控制的那个具体灯泡的门牌号。

三、 核心姿势:怎么发指令(也就是怎么控)

控制 DC-10A 的核心操作就是发一条 POST 请求。这里有个小难点是签名(Sign)计算,不过搞清楚套路后其实也就是几行代码的事。

HTTP 请求的全貌大概是这样的:

  • 请求地址https://api.thingboot.com/{你的AppID}/device/control/

  • 主要参数

    • device: 刚让你记下的那串数字(设备ID)。

    • order: 这是个 JSON 字符串,用来告诉设备干什么。比如 {"power1": 1} 就是“打开第一路”, {"power1": 0} 就是“关闭”

1. 加密签名(Sign)怎么算?

这是为了防止接口被恶意调用。芯步用的是一种比较常见的双重 MD5 加盐模式。公式:sign = md5( md5(AppSecret) + 当前时间戳 )

简单来说分三步:

  1. 把你的 AppSecret 做一次 MD5 加密,得到 secret_md5

  2. secret_md5 拼上当前的时间戳(比如 1701408000),得到一个组合字符串。

  3. 把这个组合字符串再做一次 MD5,最后得到的就是 sign

2. 实战代码演示(Python 版)

如果你是用 Python 写后端服务,集成代码大概长下面这样。我这里把注释写细一点,方便你复制粘贴:

特别注意: 如果你是想做网页版控制台,千万不要在前端代码里暴露 AppSecret!因为这样别人看网页源码就能拿到你的密钥。正确的做法是:前端点击按钮 -> 调用你自己的后端接口 -> 你的后端再像上面这样去调用芯步的接口。这样密钥永远只留在服务器里,是最安全的

四、 进阶玩法:局域网控制与实时反馈

如果觉得走云端的 api.thingboot.com 速度还不够快(虽然官方数据说平均 80-120ms),或者你希望断外网了也能控制,DC-10A 也支持局域网直连

1. 纯局域网控制

只要你的电脑和 DC-10A 连在同一个路由器下,你可以直接请求它的本地 IP 地址,完全不需要经过外网云服务器你只需要先获取设备的内网 IP(可以在路由器后台看,或者通过云端接口查询),然后直接 POST 请求:http://192.168.x.x/control,Body 里带上 {"power1": 1} 就行了。这让它的响应速度极快,几乎没有延迟,非常适合用在工厂自动化流水线这种对实时性要求高的地方

2. 让项目“活”起来:接收设备状态推送

很多时候我们需要知道设备到底有没有执行成功。比如你通过 App 关灯,但想知道是不是真的关了。DC-10A 支持状态主动推送。你需要在你的项目中准备一个公网可访问的 URL 地址(比如 https://你的域名/device_callback),然后在芯步控制台配置这个地址为“消息接收地址”。当设备状态发生变化时(不管是远程控制改变,还是物理按键改变),芯步的服务器会主动把最新状态(比如 {"power1": 0})POST 到你配置的这个地址上。这样,你的数据库里的设备状态就能实时保持最新了,用户体验会非常好。

五、 总结

总的来说,要把 DC-10A 集成到你的项目中,其实就三层逻辑:

  1. 控制:算好签名,发 HTTP 请求。

  2. 极速:局域网直连,绕过云端。

  3. 同步:配置回调接口,让设备主动“汇报”状态。

这套方案不仅适用于 DC-10A,也基本适用于芯步旗下的墙壁开关、其他路数的控制器等产品,因为它们的 API 鉴权逻辑都是通用的。你可以先拿一个 DC-10A 跑通流程,后续如果需要控制全厂的灯光,只需要把设备 ID 换掉,代码复制粘贴就行了。