家里的智能化设备越来越多了,比如我现在家里用的门锁可以使用密码或者指纹解锁,相比之前只能用钥匙开门的老式机械锁,就没有了忘记带钥匙而进不去家门的烦恼了。但是我住的小区是一个90年代的老小区,单元门禁还是非常老式的门禁系统。开单元门只能通过楼下钥匙,或者楼下按房间号楼上电话机开锁键开锁。
这种受限的开锁方式给日常生活带来了一定的不便利性,比如平时上班家里没人时,经常会有快递员去送快递却进不去单元门的问题。此外自己偶尔也会忘记带钥匙,恰好碰上家里也没人,楼下也没人进出的话,就会出现尴尬进不去的状况。
作为一个嵌入式工程师,咱能不能把单元门禁改进一下,不用钥匙使用手机就能开锁呢?
答案当然是可以的!
我家里的门禁系统是立林的,室内电话机型号是JB-2002II-F06,四根线和楼下的主机连接。
为了不破坏原有主机,我在网上又单独买了一个电话机,专门用来做改造,一不小心型号买成了JB-2001II-F06,不好还好这个型号也能用,买来后连接接线端子,楼下按房间号:000,就会建立起连接。如果要改为自己家的房间号,需要去剪断下图红框中的部分连接引脚,它对应楼层和房间号的编码。
要实现控制,首先需要了解此单元门禁的工作机制。
电话机的供电来自于楼下主机,不过不是常供电,可以用万用表去量那几根线,两两之间是没有电压的。只有在楼下按下房间号后,主机才会给相应的房间电话机供电。当室内电话机铃声响起时,在一定的时间内拿起电话机,再按下确认键,就可以实现看门了。
楼下不按房间号,直接用电话机是开不了门的,另外电话铃响起时不摘机也是开不了门的。
要实现远程控制,就需要对原有的电路板做一定的修改,我们要实现的就是模拟摘机和按下开锁键的动作。同时还要考虑不影响原来正常的手动摘机开锁的功能。
拆开之后,首先找到开锁键对应的信号点,当按下开锁键时下图红框中的两个点会短接。
摘机对应的是一个叉簧开关,平时叉簧开关是按下的状态,摘机的时候对应开关弹起来。叉簧开关有6个引脚。
当电话机一直挂在上面的时候,PCB上的3-1通,3-5断,4-2通,4-6断。然后电话摘机后,3-1断,3-5通,4-2断,4-6通。并且3-4是不通的。
这里我们可以通用继电器去控制,3和4接继电器的公共端,5和6接继电器的常开端,1和2接继电器的常关端。
但是问题来了,如果电话一直是挂机状态,3-1和4-2就一直是通的状态,你用继电器去控制,怎么能让其断开呢?
把叉簧开关的A脚拔出来,接到继电器的NC上,继电器的公共端接PCB的A,继电器的NO接C脚,就可以解决上述问题。
电话机正常使用时:
因为继电器没有控制,叉簧开关的A和PCB的A接在一起,和之前叉簧开关正常焊接时的情况是一样的:挂机状态下, PCB的AB通,AC断。摘机状态下,PCB的AB断,AC通。
远程控制使用时:
电话机处于挂机状态,还是PCB的AB通,AC断。
继电器一旦控制,叉簧开关的A和PCB的A会断开,所以PCB的AB不会再通了,而PCB的AC会通。和手动摘机的效果完全一样。
要实现远程控制,我这里使用了一个ESP-C3的小板子,加上3个继电器,借助WIFI连接就可以实现远程控制。
软件使用乐鑫提供的rainmaker示例,https://github.com/espressif/esp-rainmaker,可以在examples/led_light的例子上做简单修改,
添加上GPIO控制继电器的代码,再配合手机Rainmaker APP, 就可以实现远程开锁了。
关注公众号:
扫码加入嵌入式交流群: