这是一个比较实际的工程问题。芯步的设备本质上是智能继电器,那个“钢化玻璃出门开关”实际上是一个干接点信号发生器(或者本身就是支持双控的智能开关),而不是直接带强电的开关。
要实现 “物理按键按下去 -> 软件收到通知 -> 软件判断权限 -> 软件控制开门” 的闭环,核心在于接线方式的改变和事件回调机制。
下面是详细的集成方案。
核心逻辑:不能直接“切电”
在无人值守场景下,如果把钢化玻璃开关直接串联在电磁锁的电源线上(像家里控制灯泡一样),会有两个大问题:
逻辑混乱:只要按开关,锁就断电,门就开,软件根本来不及做权限判断(比如只有付费用户或管理员才能开)。
状态丢失:软件不知道有人按了开关,无法记录开门事件,遇到纠纷没证据。
正确的角色定位:这个钢化玻璃开关不是电源开关,它是一个传感器或指令输入设备。
方案一:干接点模式
这是最稳定、最推荐的方式,利用了物理开关的“通断”特性。
硬件接线把开关的两根线接到门禁控制器或“芯步”智能采集模块的干接点输入端口(GPIO口),而不是串到锁的电源线上。开关负责给模块一个“短路/断开”的信号。
软件逻辑需要在云端配置联动规则:当捕获到“开关按下”事件时,软件先去查当前用户有没有权限(比如通过扫码支付了),如果权限OK,模块再执行“闭合继电器”动作,给电磁锁断电,实现开门。
方案二:状态轮询模式
适合开关本身也是智能设备(支持芯步协议)的情况。
原理:开关接在芯步的设备下,按键时会改变设备的状态属性。
操作:你的服务器调用接口
https://api.thingboot.com/.../device/status去查这个开关的状态值。注意:这种方式的实时性稍差(有轮询间隔),而且如果并发量大,对服务器有一定压力。
核心 API 操作指南
无论哪种模式,最终开门动作调用的都是下发命令接口。根据芯步的文档,控制门锁的标准姿势是:
接口地址(POST):http(s)://api.thingboot.com/{AppID}/device/control/
核心参数:
device:门锁控制器/插座 的设备IDorder点动开门
{"reset":"3000"}(闭合3秒后自动断开,适合电插锁)直接开关
{"power":"0"}(彻底断电开锁)
关键点:为了防止电磁锁线圈烧坏或者程序卡死,强烈使用
reset(点动模式)进行开门。
针对你的需求:常规码实现例子(Python)
假设你有一个管理后台,想要在收到开关信号后开门。
总结
对于无人值守场景,采用物理接线(方案一)+ 云端鉴权的方式:开关负责“请求”,服务器负责“判断”,智能继电器负责“执行”。这样可以利用钢化玻璃面板的物理手感和耐用性,又避免了权限绕过风险。