2.2 主控模塊
該系統(tǒng)采用的主控模塊Raspberry Pi,代替了體積龐大的電腦實(shí)現(xiàn)控制功能。Raspberry Pi 是一款基于ARM,操作系統(tǒng)采用開源的Linux 系統(tǒng)的個(gè)人電腦, 配備一枚700MHz 的處理器, 支持SD 卡和Ethernet, 擁有兩個(gè)USB 接口, 以及HDMI 和RCA 輸出支持。Raspberry Pi 一方面控制AVR 去檢測(cè)門的開關(guān)狀態(tài)以及開關(guān)門鎖,另一方面控制FPI 的指紋錄入以及匹配并在Raspberry Pi 上建立數(shù)據(jù)庫記錄用戶信息。
利用這些硬件便可以進(jìn)行嵌入式開發(fā),快速的建立起指紋識(shí)別系統(tǒng)的硬件系統(tǒng)。
3 指紋識(shí)別系統(tǒng)軟件開發(fā)
該系統(tǒng)基于Linux 操作系統(tǒng), 將自動(dòng)指紋識(shí)別系統(tǒng)移植到嵌入式Linux,在Linux 上進(jìn)行指紋識(shí)別系統(tǒng)的軟件設(shè)計(jì),指紋識(shí)別系統(tǒng)的軟件設(shè)計(jì)包括四個(gè)方面: 上位機(jī)與AVR 串口通訊、上位機(jī)與指紋模塊串口通訊、維護(hù)MYSQL 以及腳本發(fā)送報(bào)警。
3.1 指紋識(shí)別的處理過程
首先對(duì)串口進(jìn)行初始化,打開串口設(shè)備0、1,設(shè)置串口參數(shù),恢復(fù)串口未阻塞狀態(tài),串口初始化成功后執(zhí)行用戶選擇功能: 注冊(cè)開門賬號(hào)或注冊(cè)關(guān)門賬號(hào)或運(yùn)行門禁服務(wù)[N/C/R]。選擇系統(tǒng)功能N 后注冊(cè)新開門用戶,對(duì)同一指紋共獲取3 次圖像,與傳統(tǒng)采集一次圖像相比,杜絕了隨意采集造成的注冊(cè)指紋不精和驗(yàn)證時(shí)不易識(shí)別的問題。采集指紋成功后輸入用戶個(gè)人信息,注冊(cè)來自上位機(jī)數(shù)據(jù)庫的新ID 號(hào)并把該用戶指紋信息存入數(shù)據(jù)庫,然后選擇是否繼續(xù)添加用戶。同理用戶選擇系統(tǒng)功能C 后完成注冊(cè)關(guān)門用戶的操作。
用戶選擇系統(tǒng)功能R 后運(yùn)行門禁服務(wù), 一方面AVR 查詢當(dāng)前門鎖狀態(tài), 例如把開門的命令賦給門的匹配狀態(tài),如果指紋匹配操作FPI 和門的匹配狀態(tài)相同,則由繼電器接收來自AVR 的開門命令,帶動(dòng)電機(jī)執(zhí)行開門動(dòng)作,并且記錄當(dāng)時(shí)時(shí)間,向本地?cái)?shù)據(jù)庫添加一條新的用戶使用記錄并寫進(jìn)日志里。同理執(zhí)行關(guān)門命令。另一方面AVR 查詢當(dāng)前電機(jī)電流等級(jí),將門鎖的實(shí)時(shí)開關(guān)狀態(tài),由誰執(zhí)行開關(guān)門動(dòng)作和當(dāng)前門鎖電機(jī)電流狀態(tài)通過郵件的方式發(fā)送給用戶,實(shí)現(xiàn)對(duì)門的實(shí)時(shí)監(jiān)控,大大增強(qiáng)了門禁系統(tǒng)的安全性。
3.2 郵件的發(fā)送
Raspberry Pi 上的ARM 通過RS 232 串口接收來自AVR定時(shí)地對(duì)門禁狀態(tài)和電流狀態(tài)的查詢信息,并編寫Shell 腳本程序,利用wifi 通過串口傳送給郵件發(fā)送模塊,將報(bào)警內(nèi)容發(fā)送到指定的用戶郵箱中來定時(shí)監(jiān)控門鎖的狀態(tài)。
這一部分完成信息的打包并將報(bào)警內(nèi)容發(fā)到指定郵箱中的功能。AVR 定時(shí)檢測(cè)門的狀態(tài)和當(dāng)前電流的狀態(tài),當(dāng)沒有人執(zhí)行開關(guān)門操作時(shí),door.log 的內(nèi)容為“0”,當(dāng)有人執(zhí)行開關(guān)門操作或者電流超過一定數(shù)值時(shí),door.log 內(nèi)容為“1”,其中開關(guān)門鎖包含兩種情況:一是已注冊(cè)的用戶通過指紋識(shí)別成功實(shí)現(xiàn)開關(guān)門鎖;二是沒有注冊(cè)過的用戶指紋識(shí)別失敗但是打開了門鎖。文件夾從數(shù)據(jù)庫調(diào)用這一數(shù)據(jù)并將數(shù)據(jù)發(fā)送到指定用戶的郵箱里,然后door.log 重新變?yōu)?ldquo;0”,如此循環(huán)檢測(cè)門的狀態(tài)。
Raspberry Pi 上的ARM 通過RS232 串口接收來自AVR定時(shí)地對(duì)門禁狀態(tài)和電流狀態(tài)的查詢信息, 并編寫Shell 腳本程序,利用wifi 通過串口傳送給郵件發(fā)送模塊,將報(bào)警內(nèi)容發(fā)送到指定的用戶郵箱中來定時(shí)監(jiān)控門鎖的狀態(tài)。
4 系統(tǒng)測(cè)試
為檢驗(yàn)該指紋識(shí)別門禁系統(tǒng)的性能,打開Linux 程序,注冊(cè)登記4 個(gè)不同的指紋, 然后用不同的手指作指紋識(shí)別測(cè)試。分別觀察指紋識(shí)別成功和失敗時(shí)執(zhí)行機(jī)構(gòu)的動(dòng)作,一共測(cè)試50 次.
郵件的內(nèi)容包括ID、Name、Action、Date四項(xiàng)。其中前七行是已注冊(cè)過的用戶通過指紋識(shí)別成功實(shí)現(xiàn)開關(guān)門鎖,所以郵件中會(huì)有他們的ID 號(hào)和姓名信息,而最后一行的用戶指紋識(shí)別失敗但是打開了門鎖,所以郵件中將他們的ID 和姓名設(shè)置為NULL,提醒管理員特別注意當(dāng)時(shí)門鎖狀態(tài)以實(shí)現(xiàn)管理員對(duì)門狀態(tài)的定時(shí)監(jiān)控。
5 結(jié)論
文中基于指紋識(shí)別技術(shù)采用FPI 指紋識(shí)別模塊, 結(jié)合Linux 設(shè)計(jì)了指紋識(shí)別門禁系統(tǒng), 設(shè)計(jì)的一個(gè)特點(diǎn)是基于Linux 操作系統(tǒng),建立并發(fā)執(zhí)行環(huán)境,提高CPU 的利用率,并且用Raspberry Pi 主控模塊和無線通訊模塊使得整個(gè)結(jié)構(gòu)更加簡單,對(duì)系統(tǒng)性能有一個(gè)明顯的提高。另外一個(gè)特點(diǎn)是定時(shí)檢測(cè)門鎖狀態(tài)并采用無線通訊方式向用戶發(fā)送報(bào)警郵件,大大增強(qiáng)了門鎖的安全性。實(shí)用測(cè)試結(jié)果表明,系統(tǒng)運(yùn)行良好,能夠進(jìn)行可靠安全的指紋識(shí)別,準(zhǔn)確、快速地完成個(gè)人身份的驗(yàn)證實(shí)現(xiàn)開關(guān)門功能和定時(shí)快速的郵件報(bào)警操作。在后續(xù)的工作中,系統(tǒng)可以實(shí)現(xiàn)現(xiàn)有程序的穩(wěn)定性提升,以提高系統(tǒng)的性能使指紋門鎖功能更加完善。