这是一个针对“双路智能墙壁开关”的二次开发解决方案,主要实现门禁信号触发照明的功能。
我们将充分利用芯步开关的两路独立控制特性:一路(继电器)保留给原有照明,另一路则通过“点动模式”将其模拟成门禁控制器。这样既省钱,又不需要改动现有门禁系统的核心线路。
一、 咱们先聊聊这个需求
在很多办公场景(比如共享办公室、工作室)中,我们希望实现:刷门禁卡/按出门开关 -> 门锁打开 -> 走廊/室内灯自动亮起。
传统的做法需要买专门的逻辑控制器,布线复杂且贵。其实,利用芯步的智能墙壁开关(2路)和它开放的HTTP接口,用很简单的代码就能实现。
我们需要用到开关的两路继电器:
第1路:正常控制照明灯。
第2路:控制门锁(需要配合电插锁/磁力锁,注意开关的负载参数)。
二、 硬件选型与接线(实战准备)
1. 硬件
智能墙壁开关2路 (UNI-KG-2):为什么要选2路?因为我们既要管灯,又要管锁,两个继电器独立控制,互不干扰 。
电插锁/磁力锁:注意要买12V直流电的那种,但我们的开关输出的是220V交流电,所以需要加一个 220V转12V的电源模块 串在开关和锁之间,或者直接选购 复合开关。官方的“智能墙壁复合开关”其实就是干这个用的,它专门有一路是输出常开/常闭信号来接锁的 。
2. 接线逻辑(简单版)
火线进:L口接总火线。
出线1:接照明灯。
出线2:接电源模块 -> 电源模块的12V输出 -> 接到电锁的正负极。
三、 核心机制:开启“点动模式”
如果直接给第二路送电,门锁会一直处于通电吸合状态,容易烧锁,而且刷卡瞬间你要的是“通一下电,马上断”,也就是点动。
我们不需要写复杂的PLC代码,只需要在控制命令里设置 point2 参数 。
场景时序图
为了让你更直观地理解程序逻辑,这是整体的控制流程:
sequenceDiagram
participant U as 用户
participant G as 门禁读卡器
participant S as 芯步开关
participant L as 照明灯
participant D as 电子门锁
U->>G: 刷卡/按出门按钮
G->>S: HTTP触发 (调用你写的API)
S->>L: 继电器1吸合 (灯亮)
S->>D: 继电器2吸合 (门锁通电)
Note over S: 延时1-2秒
S->>D: 继电器2断开 (门锁断电)
Note over S: (可选) 延时N秒
S->>L: 继电器1断开 (灯灭)四、 二次开发实战(代码示例)
我们假设已经在芯步平台注册好了,拿到了 AppID、sign 和 deviceID。
1. 接口基本信息
地址
https://api.thingboot.com/{AppID}/device/control/方法:POST
参数
device(设备ID) &order(命令JSON串)
2. 核心命令构造
我们需要发送一个 order 指令。这个指令要包含两个动作:
开灯
{"power1":"1"}触发门锁(点动2秒)
{"point2":"2000"}(意思是第二路先通电,2秒后自动断开)
注意:如果门锁只需要瞬间通电(例如0.5秒),point2的值就是 500。
3. Python 实现示例(用于后端服务)
假设你的门禁系统有刷卡事件推送,或者你做了一个小按钮页面,可以用这段代码:
4. Node.js 实现示例(用于小程序或Web管理后台)
五、 进阶:把“门磁”也接入进来(延时关灯)
如果你还想做得更智能一点:门关上之后,灯才自动灭。
这时候你需要一个 门磁传感器(也是芯步的也行)。逻辑变成:
开门触发 -> 开灯 + 开锁。
门磁检测到门关上 -> 发送信号给服务器 -> 服务器调用接口关灯。
代码逻辑扩展(伪代码):
六、 踩坑与避坑指南
负载问题:如果直接用开关的第二路接电锁(尤其是老式电控锁),瞬间电流很大,可能烧毁继电器触点。强烈第二路接交流接触器或专门的12V变压器,别直接串220V锁 。
Wi-Fi稳定性:开关用的是2.4G Wi-Fi。尽量保证现场信号覆盖良好,如果是门禁这种关键控制,启用芯步支持的局域网(LAN)控制模式,这样即便外网断了,局域网内触发命令依然能开门 。
回差处理:如果你写了开灯指令,但在
point2还没执行完(2秒内)又刷了一次卡,怎么办?在服务器端做一个简单的防抖处理,比如10秒内只执行第一次触发。
七、 总结
通过芯步双路开关的开放接口,我们只用了 1个设备 就解决了 门禁控制 和 照明联动 两个问题。
这里的核心技巧就是利用 point 点动指令 来代替物理的复位开关,配合HTTP接口的快速调用,实现了原本需要专业控制器才能做到的“门锁点动 + 照明自锁”联动。其实上手并不难,稍微调试一下接口参数就能跑起来了。