芯步的按键版智能密码门禁支持通过HTTP接口直接下发开门指令,这意味着你可以把任何能联网的系统——小程序、App、内部办公软件——变成远程遥控器。下面这份方案涵盖了从硬件接线、接口调用到集成落地的完整路径。
1. 解决概述
1.1 背景与需求
在许多场景下(如公寓管理、办公室访客接待、无人值守机房),管理员需要在未携带门禁卡或不知晓门禁密码的情况下远程开门。传统的按键版密码门禁通常仅支持本地键盘输入,无法满足此需求。
1.2 方案简介
本方案基于芯步“智能密码门禁[按键]” 硬件(型号:UNI-MJ-MM-AJ)及其开放的HTTP API接口。通过将门禁接入WiFi网络,外部业务系统(如微信小程序、内部管理系统、智能语音助手)可通过发送HTTPS POST请求,直接控制门锁的“通电开锁”或“断电开锁”,实现远程一键开门。
1.3 核心技术优势
无需网关:设备直连WiFi 2.4G网络,降低硬件成本和故障点。
接口简单:标准的HTTP协议,签名生成仅需MD5加密,兼容所有编程语言。
私有化部署:支持局域网直连或自建消息服务器,保障数据安全。
2. 硬件连接与接线指南
在进行软件开发之前,需要确保硬件接线正确。锁的类型决定了门禁的工作模式。
2.1 接线原理
芯步按键门禁本质上是一个继电器控制器。通过控制继电器的“通”与“断”来瞬间切断或恢复电锁的电源,从而实现开锁。
2.2 两种常见锁的接线方式
| 锁具类型 | 日常状态 | 接线说明 | 对应API指令 |
|---|---|---|---|
| 电磁锁 / 电插锁 | 通电上锁,断电开锁 | 将锁的正负极接在门禁的 COM 和 NC(常闭)端口。设备工作时,电路导通,锁具吸合;设备(继电器)断开时,电路切断,锁具打开。 | {"power":0}或{"reset":"1000"} |
| 阴极锁 / 电控锁 | 通电开锁,断电上锁 | 将锁的正负极接在门禁的 COM 和 NO(常开)端口。设备工作时,电路导通,锁具瞬间通电弹开。 | {"power":1}或{"point":"1000"} |
注意:根据锁具类型选择合适的“先断后通”(reset)或“先通后断”(point)指令,以毫秒级脉冲控制开锁,避免长时间通电烧毁线圈。
2.3 上电与配网
供电:设备支持DC 12V或AC/DC供电(视具体型号),请按要求接入电源。
网络配置:通过芯步控制台或设备配网模式,将设备连接到办公/现场的2.4G WiFi网络。设备支持配置5组WiFi,自动选择信号最强的连接。
3. HTTP 接口对接开发详解
芯步的开放接口是本次集成的核心。接口地址为:https://api.thingboot.com/{AppID}/device/control/
3.1 准备工作:获取凭证
在芯步开放平台(ThingBoot Open)中:
注册开发者账号,创建工作台。
在“开发设置”中获取 AppID 和 AppSecret。
在控制台获取设备的唯一标识 Device ID(可从控制台查看或通过接口拉取)。
3.2 签名算法(Sign)
API 请求需携带签名进行鉴权。算法规则如下Sign = md5( md5(AppSecret) + ts )
注:ts 为当前Unix时间戳(秒);+ 表示字符串拼接。
示例计算流程(伪代码):
3.3 API 调用实战:远程开门
以“脉冲开锁”(按下门铃按钮般的瞬间导通)为例,这种方式最安全,适合绝大多数电锁。
接口信息:
Method:POST
URL
https://api.thingboot.com/{你的AppID}/device/control/?sign={计算出的sign}&ts={当前时间戳}Header
Content-Type: application/jsonBody (JSON)
解释:{"reset": "1000"} 指令会让继电器断开1秒,然后重新吸合。对于“通电上锁”的锁具,这1秒的断电就会触发开锁动作。
cURL 命令示例
成功响应示例:
4. 场景与集成案例
本方案可以灵活嵌入各种业务系统中,以下是两个典型的应用场景:
4.1 第一种场景:小程序/APP 远程开门 (To C)
用户需求:住户忘带钥匙,通过手机APP点击“开门”。
实现路径
用户打开微信小程序,点击“开门”按钮。
小程序后端服务器(或云函数)接收到请求,校验用户权限(该用户是否是此房间的租客)。
权限校验通过,服务器调用芯步API(封装上述HTTP请求)。
门禁设备收到指令,继电器动作,门锁打开。
手机端收到“开门成功”反馈。
代码逻辑参考
4.2 第二种场景:企业内部系统对接 (To B)
用户需求:访客在前台登记后,前台人员在电脑上点击“授权开门”,或访客输入预约码自动开门。
实现路径
前台人员录入访客信息,点击“允许通行”。
OA系统生成一次性临时密码(通过门禁的密码管理接口下发)或直接调用开门指令。
利用芯步的密码管理接口,可以远程设置密码、删除密码或清空密码列表,实现访客权限的精细化时间管理。
高级联动:可配合芯步的“智能语音音柱”,在开门时播报“欢迎XX公司张先生”等自定义语音,提升接待体验。
5. 常见问题与排障
设备离线怎么办?
检查设备供电是否正常。
现场WiFi信号是否稳定(不支持5G WiFi,需切换至2.4G)。
若需比较高稳定性,采用芯步支持的有线(以太网)版本控制器进行改造。
签名错误(Sign Error)
检查时间戳
ts是否为秒级(例如:1712134567),不是毫秒级。检查MD5结果是否为32位小写十六进制字符串。
确认AppSecret前后无多余空格。
设备响应成功但门未开
指令不匹配:确认锁的类型(通电开锁 vs 断电开锁)与
order参数是否逻辑相符。如果是断电开锁的锁,却发送了{"power":1}导致线圈一直吸合,是无法开锁的。使用reset或point脉冲指令。接线松动:检查门禁的COM口与锁的接线是否牢固。
私有化部署
如果是在纯局域网环境,可以修改Hosts指向自建的API服务器,利用芯步支持的私有化协议进行控制,数据完全不经过公网。