用Python改造门禁适应互联网

 

为什么传统的门禁厂商不向前跨出一步呢,让门禁支持互联网?我咨询了几十个厂商,要么需要时间定制,要么干脆不支持,让我这种不懂的人硬着头皮去做一件看是不可能的事情?...



O2O就不可能不涉及到线下门店,这些门店规模都不会太大,但是数量会非常多,如果每个门店都配置一名店长,不单开支大,而且快速扩张的瓶颈就在店长的培养上了。

所以现在不少线下门店都开始了自助化的改造,首当其冲的就是先做无人值守,会员凭借密码等身份信息进入门店享受各种自助的服务,这种模式在健身等行业已经非常的流行了。

我再网上查了一下,目前的门禁都还是传统门禁,通过RS485,高级一点的通过TCP/IP连接到电脑上,这就要求每个门店放置一台电脑。这样不单无法进行统一管理,而且电脑成本太高,维护成本更大。淘宝上发现有基于互联网的门禁解决方案,是一款国外进口的,可以通过控制器直接访问网络,有restful API的,不过看了价格最便宜的要7000,贵的都块1W7了,这个价格已经与现在的门禁价格不在一个水平线上了。

其实仔细分析一下,门禁其实就是通过电力提供给线圈产生磁性,这样就可以让门闭合,断电之后磁性消失,门就可以打开了。密码ID卡之类的只是辅助的身份确认手段而已,完全可以自己进行改造。下图中的这儿就是我们的突破口。



作为硬件玩家,可能很多人会使用Arduino进行改造,但是对于我一个对高低电平都不懂的人来说,这个难度还是不小的。所以只能退而求其次,直接选择了树莓派作为解决方案。目前树莓派的最新版本是3,所以就直接使用最新版的树莓派进行开发了。树莓派3的图如下,上面那2排尖尖的是我们这次的核心。



树莓派的安装我就不在这里写了,如果你连系统都安装不了,那么后续的改造还是乘早放弃算了,只能说明你的动手能力连敲键盘都不行的。

树莓派系统安装好之后,需要配置网络,为了使用方便最好配置静态IP方式,同时开启远程ssh登录,然后将你本地的ssh公钥传到树莓派上,方便后续的调试。

系统安装好之后,默认是已经有GPIO的扩展库了,如果你还不确认,可以在python的交互式界面里面输入下面命令看看:import RPi.GPIO as GPIO ,如果没有任何出错提示,就表示已经安装成功。

我们使用继电器来连接树莓派和电路,现在电子元器件都是直接淘宝购买的,我买的如下,2块钱一个可以多买几个哈。



继电器的IN我连在了GPIO14上,注意正负极别接错,这样就可以通过触发GPIO的低电平来控制继电器进行门的开关操作了。代码很简单,如下:

GPIO.setmode(GPIO.BCM)

GPIO.setup(14, GPIO.OUT)

time.sleep(1)

GPIO.output(14, GPIO.IN)

这时候你可以听到继电器的声音,然后门就开了。恭喜,控制电路完成了!

接下来就是密码输入和校验了,键盘也是从淘宝买的4X4键盘,然后接到对应的GPIO上,所有器件连在一起之后的大图来了:



对于我来说,最难的是硬件连接和确认连接是否正确,剩下的就是简单的代码工作了。继续看图吧





上面这些代码就完成了整体的密码输入和开门的操作。当然跟硬件交互部分的代码是最简单的,剩下的事情就是软件工程师擅长的服务器端调用,和如何设计缓存,增加系统的鲁棒性等。当然如果你想要,也可以加入升级功能,这样就可以在线更新你的门禁系统了。


    关注 一圈转回来


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册