CATALOG

芯步的智能门禁产品通过开放的HTTP API接口,允许开发者用任何编程语言对电磁锁、电插锁进行远程控制。以下方案涵盖硬件选型、接口对接、签名算法和控制逻辑,帮助你在10分钟内完成二次开发。

一、 选型:核心控制设备

要实现远程控制,核心是需要一个支持 继电器输出接口开放 的智能开关,用来控制电磁锁/电插锁电源的通断。在芯步产品线中,最适配的产品是 智能墙壁出门开关智能墙壁复合开关

  • 推荐设备:智能墙壁出门开关(型号:UNI-MJ-MM-CM)

  • 选型理由

    • 直接驱动:该设备本身就是专为门禁设计,可直接串联在锁的电源线上

    • 兼容性强:普通电磁锁、电插锁通常工作电压为12V,该设备支持继电器控制,无论锁体是“通电开锁”还是“断电开锁”均能适配

    • 接口支持:该设备可直接接入 WiFi,无需额外购买网关,上电即连网

二、 硬件接线方案

在进行代码开发前,请确保物理线路连接正确。智能墙壁出门开关通常包含 输入端(L/N,接220V)输出端(COM/NO/NC,接锁具)

  • 常闭模式(断电开锁):这是电磁锁和电插锁常用的模式。将锁的火线接入继电器的 COMNC 口。此时锁保持通电吸合,门闭合;当软件下发“断开”指令时,继电器断开,门打开。场景应用:办公大楼消防联动,断电自动开门。

  • 常开模式(通电开锁):将锁的火线接入 COMNO 口。通电即开门,断电即闭门。优先级不高,安全性也相对较低。

  • 供电注意事项:大部分电插锁和电磁锁需要12V直流电。切勿将锁具直接接入220V。正确路径应该是:220V -> 智能开关(提供通断控制) -> 12V电源适配器 -> 门锁。

三、 二次开发核心:API对接

芯步开放了完整的HTTP API,这意味着你可以使用Python、Java、PHP、Go等任何语言进行二次开发。接口地址统一为:

http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}

1. 鉴权参数计算

为了防止接口被恶意调用,请求需要携带签名。签名规则如下:

  1. 将你的 AppSecret 进行一次MD5加密。

  2. 将加密后的字符串拼接上当前的时间戳(秒级)。

  3. 将拼接后的字符串再进行一次MD5加密。公式sign = md5( md5(AppSecret) + ts )

2. 核心控制指令

以控制“智能墙壁出门开关”为例,device 参数填写设备的序列号,order 参数决定了锁的动作

场景指令参数 (order)物理逻辑适用门锁类型
开门 (点动){"reset": "3000"}先断开(开锁) -> 3秒后自动闭合(闭锁)所有电插锁/电磁锁
长时间开锁{"power": "0"}直接断电开锁需要保持常开时使用
锁门{"power": "1"}恢复供电,锁舌弹出/电磁吸附系统复位处理

四、 代码实战示例

以下提供两种最常用的开发语言实现。你需要在芯步控制台获取 AppIDAppSecret 以及设备的 DeviceID

示例1:使用Shell/cURL(适用于Linux服务器或嵌入式脚本)

这是快速测试接口最通用的方式。使用 curl 指令即可在满足鉴权要求的前提下,向目标设备下发开锁指令

实现流程:首先根据 AppSecret 和当前时间戳按规则计算出 sign 签名,然后构建包含 deviceorder 参数的JSON请求体,最后通过 curl 携带签名和时间戳向API地址发送POST请求。以下是一个直接可用的脚本模板,将其中的 AppIDAppSecretDeviceID 替换为实际值即可运行。

示例2:使用Java (OkHttp)

在Java项目中,通常使用OkHttp库来处理HTTP请求。你需要在项目中引入OkHttp依赖,然后按照相同的逻辑生成签名并发送控制请求

五、 进阶功能与逻辑优化

在实现基础远程控制后,你还可以进一步集成以下功能来完善门禁系统:

  1. 远程开门记录:每一次API调用都可以在你的业务后端记录下来,形成人员进出日志。

  2. 定时任务:利用服务器的Cron Job,定时下发 {"reset":"3000"} 指令,实现如“每晚10点自动巡检锁门”。

  3. 状态反馈:查询智能开关的当前状态(power 值是1还是0),以此判断门锁当前的物理状态是否异常

  4. 多设备联动:如果你有多个门,一个请求中 device 字段支持传多个ID,可实现“一键全开/全关”

六、 排错指南

  • 返回签名错误:请检查时间戳是否为Unix秒级,以及MD5运算时字符串的拼接是否有多余空格。

  • 设备不在线:智能设备通过WiFi连接,确保安装位置信号良好(支持2.4G WiFi,不支持5G)。设备断网后指令无法送达,需等待重连

  • 锁吸不住/没反应:检查接线是接NC还是NO。电磁锁通常需要持续供电,请使用 reset 指令(短暂断电)而非 power:0(彻底断电)