CATALOG

芯步的这款触摸式密码门禁控制器,开放接口做得挺实在的,HTTP接口直接调,不需要网关中转,局域网也能用。下面我把二次开发的核心步骤梳理一下,你可以直接拿去参考。

一、 搞清楚你的“硬件猎物”

在动手写代码之前,咱们先得看看手里到底是个什么宝贝。芯步的这款 “智能密码门禁[触摸]” ,其实就是一个带触摸屏的大脑,专门用来控制电插锁或电磁锁的。

根据它的产品手册开放平台资料,它有这几个“爽点”:

  • WiFi直连:这哥们儿自带WiFi,不需要买额外的网关,省了一笔钱

  • HTTP接口:这是核心中的核心。这意味着不管你用Python、Java、PHP,甚至是用Windows的cmd命令行,只要你能发HTTP请求,就能控制它

  • 双重环境:既支持公网远程控制(比如你在家控制公司的门),也支持局域网控制。如果你把网络搞好,哪怕外网断了,你内网的系统照样能开门,这是企业级稳定性的关键

二、 核心准备工作(3分钟搞定)

在写代码之前,你需要先去他们的开放平台拿到三把“钥匙”。这过程就跟注册APP一样简单:

  1. 注册账号:去芯步的控制台注册个账号。

  2. 添加设备:在后台把门禁器的设备ID(Device ID)记下来。这串数字就像是门禁的身份证,你待会儿发指令得指着它喊

  3. 获取密钥:找到你的 AppIDAppSecret(应用密钥)。注意!这个 AppSecret 非常重要,千万别写在网页前端代码里,不然谁都能开你的门了。

三、 签名生成(最关键的障眼法)

很多人在二次开发时卡在这一步,其实搞懂了就是个数学公式。为了防止接口被随便调用,所有的请求都要带一个动态的签名(sign)。

简单来说,就是这个算法:sign = md5( md5(AppSecret) + ts )

通俗点解释:

  1. 先把你手里的 AppSecret 加密一次。

  2. 把当前的时间戳(ts)拼在后面。

  3. 再把拼好的字符串整体加密一次。

为什么要这样做?因为这个 ts 时间戳一直在变,所以 sign 也一直在变。服务器会校对这个时间,如果时间差太大或者对不上密码,请求就被拒绝了。这就相当于每一把钥匙都有有效期的。

四、 实战开发现场

为了方便展示,我用通用的 curl 命令来演示,你理解思路后,换成任何语言都是一样的逻辑。

第一种场景:最简单的“开门”

假设你想要APP里有个大按钮,按一下就开门(通常是通过控制继电器闭合,相当于按了一下门禁背后的开门信号线)。

接口地址(记得替换 {AppID}, {sign}, ts):https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}

我们要发送的指令参数如下

  • device:填你的设备ID(比如:10086)。

  • order:这是命令内容。对于门禁控制开门,通常是模拟一个开关量信号。

芯步的设备支持多种命令。对于门禁,如果你想执行“开门”动作,往往是通过控制继电器的“先通后断”来实现瞬间开门。

实际代码示例(开门动作):假设我们想让门禁接通门锁1秒钟然后断开(这就是正常的开门动作),我们可以发送 point 命令(意为点动,即接通一段时间后断开)

解释"point": "1000" 代表“先通后断”,延时1000毫秒(即1秒)。发送这个命令后,门禁控制器的继电器就会闭合1秒,给电锁通电,门就弹开了

第二种场景:远程修改门禁密码

既然是密码门禁,肯定少不了远程改密码的功能。这个接口非常实用,比如租客退房了,你不需要跑去现场,直接后台删掉旧密码即可。

根据文档,门禁支持下发密码(pwd)

你只需要把 order 里的内容换成 {"pwd": "新密码"} 就行了。甚至还可以配合 list(查看密码列表)和 delete(删除密码)来管理所有用户的权限

五、 进阶技巧:扔掉“云拐杖”

这是芯步产品的一个加分项。如果你是在公司内部做二次开发,或者网络环境比较封闭,你可以不用去调 api.thingboot.com 这个公网地址。

私有化部署(局域网模式)由于门禁是 WiFi 直连的,如果你的服务器和门禁在同一个局域网(同一个WiFi下),你可能可以直接通过门禁的本地 IP 地址发送 HTTP 请求(具体是否支持直连IP请查阅设备进阶手册,通常标准HTTP API支持局域网寻址)。这意味着开门指令只在公司内部网络传输,速度快(延迟低至80ms),且不受外网宽带故障影响

六、 给你的避坑指南

  1. 关于返回值200:当你调用接口时,收到 {"code":200} 只代表云平台收到了指令,不代表开了。如果门没反应,先检查门禁设备是否在线(心跳)。因为那个200只是表示消息发出去了

  2. 声音反馈:实际开发中,你在调用接口成功后,不要只听“滴”声。可以配合门磁传感器(如果有的话)读取门的开关状态,或者在界面上做个明显的动效,不然用户会站在门口狂点APP然后骂软件卡了。

  3. 安全性:再次强调,签名算法 sign 一定要放在后端服务器执行。如果你在APP里直接写死了 AppSecret,只要有人反编译你的APP或者抓包,就能破解你所有的门禁系统。

总结

芯步的这套门禁系统二次开发门槛很低。你只需要:

  1. 组装URL(带上动态签名)。

  2. 写JSON(指定设备和开门指令 point)。

  3. 发POST请求

搞定这三步,你就可以坐在办公室里,优雅地敲下回车键,远程给忘带钥匙的同事开门了。