芯步的门禁产品通过HTTP接口开放了底层控制能力,你可以直接调用reset(先断后通)命令来控制电磁锁/电插锁的断电开门与恢复上锁。以下方案涵盖接口对接、签名算法、多场景实现代码以及双锁类型适配说明。
解决方案:基于芯步开放接口的智能门禁二次开发
1. 概述与选型
针对电磁锁(通常为断电开锁型,即门禁正常工作时磁力吸附门板,断电时释放)和电插锁(通常为通电开锁型,但也有上电锁门型,需根据实际型号确认),芯步的智能墙壁出门开关或智能密码门禁是核心控制设备。该方案利用设备的“先断后通”(Reset)功能,确保门锁在触发后自动恢复供电状态,避免通道一直敞开。
| 产品型号 | 核心功能 | 适用场景 |
|---|---|---|
| 智能墙壁出门开关 | 单路继电器控制,支持220V或12V(根据选型),体积小,适合86盒安装 | 替换原有出门按钮,或隐藏式安装控制门锁 |
| 智能密码门禁[触摸] | 集成密码键盘 + 继电器输出,支持WiFi直连 | 需要在门外进行密码验证的场景 |
| 智能控制器4路 | 4路独立继电器输出,支持直流/交流 | 多门集中控制(如公司大门、会议室、仓库联动) |
推荐组合:保留原有的物理出门按钮,将“芯步智能开关”并联接入电磁锁电源回路,实现“物理按键+软件控制”的双重保险。
2. 核心控制逻辑:时序与接口命令
门禁系统的核心安全逻辑是“平时锁定,触发开门,几秒后恢复锁定”。为了防止长期断电导致门锁处于开启状态,不能简单地发送“断电”命令,而应该使用定时任务功能。
控制逻辑:开锁(例如断电5秒) -> 延时(人员通过) -> 自动上锁(恢复供电)。
对应接口功能:使用
reset命令或point命令。reset:先断开(断电开锁),持续指定毫秒后自动接通(恢复锁门)。point:先接通(上电开锁),持续后断开。
接口特点:芯步的开放接口采用HTTP协议,支持GET/POST,签名机制简单(MD5嵌套),无论是微信小程序、钉钉应用还是PC端软件,只要支持HTTP请求即可完成二次开发。
3. 二次开发实战:如何下发开门指令
在二次开发中,你需要在你的业务系统(如OA系统、APP后端)中集成以下逻辑。接口地址统一为:http(s)://api.thingboot.com/{AppId}/device/control/
步骤一:准备鉴权参数在芯步控制台获取 AppId 和 AppSecret。签名算法如下:
先对
AppSecret进行 MD5 加密得到SecretMd5。拼接当前 Unix 时间戳
ts(例如 1715234567)。对
SecretMd5 + ts字符串再次进行 MD5 加密,得到sign。
步骤二:下发开门命令假设我们需要电磁锁断电(开门)5秒,然后自动恢复(锁门)。
设备ID
100685(假设)命令
{"reset": 5000}(5000毫秒=5秒)
代码示例一:使用 PHP 实现远程开门
代码示例二:使用 Python 实现远程开门
代码示例三:微信小程序端调用由于安全限制,不在小程序端直接放置AppSecret。正确做法是:小程序调用你自己的后端API -> 后端生成签名并转发给芯步云。你的后端只需要暴露一个接口:https://yourdomain.com/api/open_door,内部逻辑参考上述 PHP/Python 代码即可。
4. 硬件接线深度指南(关键)
不同的锁具对电压要求不同,接线方式直接影响系统稳定性。
场景A:配合电磁锁(常用12V/24V直流)电磁锁一般是断电开锁。
取电:将12V电源适配器接入智能开关的输入端(L/N为220V交流输入,需先转12V直流或购买直流版本开关)。
连接:如果购买了芯步智能墙壁开关(交流版),输出端为220V。你需要通过一个 220V转12V变压器 连接锁具。
优化:直接选用芯步直流版控制器,电源直接接12V,输出直接接锁具,避免变压损耗。
场景B:配合电插锁(通电开锁型)电插锁默认状态是锁出(锁门),通电后缩回(开门)。
逻辑:使用
reset命令同样适用。发送命令后,电插锁通电缩回,5秒后断电,锁舌弹出锁门。注意:电插锁需要区分“通电开锁”和“通电上锁”,本方案以最通用的“通电开锁”为例。如果是“通电上锁”,则需改用
point命令(先通后断)。
5. 高级应用:无密码扫码开门与人脸识别联动
利用开放接口,你可以实现比传统门禁更灵活的权限管理:
第一种场景:访客扫码自助开门
访客在门禁机(平板或手机)上输入预约码。
业务系统逻辑:校验预约码有效性 -> 调用芯步API开门 -> 记录访客进出时间。
无需为访客设置临时密码,也无需下发 IC 卡,降低管理成本。
第二种场景:与 HR 系统联动员工离职时,管理员无需去门禁设备上删除指纹/密码。
自动同步:HR 系统将员工状态标记为“离职”。
触发动作:自动化脚本调用芯步的
delete命令接口,删除该员工在特定门禁下的密码权限。代码示例
order=>{"delete": "23456"}(删除密码为23456的用户)
第三种场景:远程协助(快递/物业)业主在家中,保安室收到快递。
业主通过 APP 点击“开门”。
系统发送
{"reset": 8000}命令(开门8秒,足够进出)。门锁自动打开并关闭,全程无需保安触碰开关,实现无接触出入。
6. 常见问题与排障 (FAQ)
Q: 发送命令后门锁无反应,但接口返回成功?
A: 检查继电器是否有“咔哒”声。若有声但锁不动,说明接线错误或电压不匹配(如220V开关接了12V锁)。若无声音,检查设备在线状态(心跳)。
Q: 如何解决网络中断时的开门问题?
A: 保留物理回路。将传统的物理出门按钮与芯步智能开关并联。即使 WiFi 断网,按下物理按钮,电路依然能导通开锁。
Q:
reset和power命令有什么区别?A:
power是永久改变状态。例如{"power": 0}会直接断开门锁电源,门将永远打不开(除非手动恢复)。reset是脉冲式,它会在执行power 0后,自动倒计时执行power 1。门禁场景必须使用reset。
7. 总结
芯步的开放接口极大地降低了硬件开发的门槛。在二次开发门禁系统时,开发者不需要关注底层的继电器驱动或 Zigbee 协议,只需要关注业务逻辑(谁在什么时间可以开门)和HTTP 请求的稳定性。通过在代码中严格控制 reset 指令的延时参数( 3000ms-8000ms),可以平滑地配合电磁锁与电插锁,实现高效、安全、可审计的现代化门禁管理。