python智能识别的门禁系统_用PythonPi实现门禁系统-示例
和分布式智能控制系統(tǒng)類似,首先實(shí)現(xiàn)了Python接口的API,基于圖形界面的管理界面以后視情況提供。
先看示例的接線圖:
這個(gè)示例是用樹莓派的spi接口連接了一個(gè)rc522讀卡器,以15號(hào)gpio口連接了一個(gè)led作為電鎖動(dòng)作的指示,16號(hào)gpio口連接了一個(gè)開關(guān)按鈕作為出門按鈕,1號(hào)gpio口連接了一個(gè)開關(guān)按鈕模擬門狀態(tài)。實(shí)現(xiàn)代碼如下:
from cn.ijingxi.corpuscle.python import active
from cn.ijingxi.corpuscle.python import input
from cn.ijingxi.corpuscle.python import door
from cn.ijingxi.corpuscle.python import admin
#添加卡,卡號(hào):-741925061
admin.addPeople(admin.PeopleType_RC522,-741925061,"people1")
#為該卡指定角色
admin.addRoleMap(admin.PeopleType_RC522,-741925061,"role1")
#定義一個(gè)門
d=door("testDoor")
#添加鎖動(dòng)作,開門與關(guān)門,15號(hào)gpio口
a1=active.getGPIO("/pi1/15",active.HIGH)
a2=active.getGPIO("/pi1/15",active.LOW)
d.addLockOpen(a1)
d.addLockClose(a2)
#添加出門按鈕,16號(hào)gpio口,帶上拉電阻,提供防抖動(dòng)功能
es=input.getGPIO("/pi1/16",input.PULL_UP,input.Flitter)
d.addExitSwitch(es)
#添加鎖狀態(tài),1號(hào)gpio口,帶上拉電阻,提供防抖動(dòng)功能
ls=input.getGPIO("/pi1/1",input.PULL_UP,input.Flitter)
d.addLockState(ls)
#添加讀卡器
r=input.getRC522("/pi1/rc522_r1")
d.addRecognizer(r)
#許可哪個(gè)角色可通過
d.addRole("role1",r)
#設(shè)置完畢,開始初始化
d.init()
將上述代碼在“在線編程”頁面中的代碼輸入框中輸入,點(diǎn)擊執(zhí)行即實(shí)現(xiàn)了一個(gè)普通的單門門禁系統(tǒng):
刷卡(卡號(hào):-741925061),led亮,代表電鎖解除鎖門,5秒后led滅,即開門后延時(shí)5秒啟動(dòng)電鎖鎖門(只是下達(dá)了鎖門的動(dòng)作,如果此時(shí)門還沒有開著則電鎖不能鎖上)
按下16號(hào)gpio口所連的出門按鈕,led亮,代表電鎖解除鎖門,5秒后led滅,即開門后延時(shí)5秒啟動(dòng)電鎖鎖門
門開(led亮)后,如果不按下1號(hào)口所連接的開關(guān)按鈕(代表門關(guān)閉了),led熄滅后再不會(huì)亮起。因?yàn)椴魂P(guān)門,代表門一直開著,所以不會(huì)再次開門
刷卡或按下出門按鈕后,不等led自動(dòng)熄滅就按下1號(hào)口所連接的開關(guān)按鈕,此時(shí)led立刻熄滅。即開門后只推了下門卻沒外出,所以立刻關(guān)門
刷其它卡無反應(yīng)
這幾行代碼就能實(shí)現(xiàn)這么多功能?!這是因?yàn)閐oor這個(gè)組件封裝了場(chǎng)景組件并預(yù)設(shè)了上述功能,下次我們?cè)賮碓敿?xì)講解其是如何實(shí)現(xiàn)的
====================================================================================================
關(guān)注我的公眾號(hào)及時(shí)獲取推送的最新文章
總結(jié)
以上是生活随笔為你收集整理的python智能识别的门禁系统_用PythonPi实现门禁系统-示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微星Z390主板双SSD+HDD,win
- 下一篇: python 如何判断一个函数执行完成_