指紋的唯一性和穩定性使其成為目前被廣泛應用的生物識別技術之一,我愛方案網小編為大家介紹的智能家居指紋識別門禁系統設計方案采用FPI 指紋識別模塊, 結合Linux設計, 能夠實現準確、快速地完成身份驗證實現開關門功能和定時快速的報警功能。
在介紹設計方案之前,我們先來復習一下指紋識別技術的原理。
一、指紋識別的技術原理
指紋識別的技術原理是從指紋數據庫中查找與采集指紋是否匹配的指紋數據,達到通過辨別身份實現開關門鎖的目的。其基本原理如圖1 所示,指紋識別系統由指紋圖像采集、指紋圖像預處理、指紋特征提取、指紋特征匹配、特征數據庫等幾部分組成。指紋圖像預處理采用了Gabor 濾波的方法進行灰度圖濾波去噪,通過將圖像濾波后,對其進行二值化處理使各種噪聲得到濾除或者修正。指紋特征提取是建立在對該點8 鄰點統計分析基礎之上,特征點通過計算CN(Croosing Number)得到。指紋特征匹配的過程是計算兩幅指紋相似程度的過程,在做指紋匹配前必須把不同的指紋圖像校準,找到輸入特征點集和模板特征點集之間的最佳變換。
指紋識別系統大體上可分為兩個內容:指紋注冊和指紋比對。指紋注冊主要包括指紋采集、指紋圖像預處理、特征點提取和特征值存儲。指紋比對的前3 步操作與指紋注冊完全相同,在特征點提取后,生成的指紋特征值將與存儲在指紋特征數據庫的特征值作特征匹配,最后輸出匹配結果。
圖1 指紋識別技術的基本原理
二、 指紋識別門禁硬件原理
本文設計的指紋識別門禁系統主要由FPI 指紋識別模塊、Raspberry Pi 主控模塊、AVR 模塊3 部分組成,該硬件結構如圖2所示。
三方通訊實現用戶的指紋錄入和匹配,以及門鎖的開關,并且以發送郵件的方式來監控門鎖的狀態。
·FPI 指紋識別模塊強大的圖像處理功能對指紋識別非常靈敏,及時處理接收到的指紋信息,并與Raspberry Pi 通訊;
·Raspberry Pi 模塊,一方面控制AVR 去檢測門的開關狀態以及開關門鎖,另一方面控制FPI 指紋錄入和匹配,并在Raspberry Pi 上建立數據庫記錄用戶信息;
·控制器AVR 反饋給Raspberry Pi 門的開關狀態,并且控制電機來開關門鎖,加強了在硬件方面的拓展,可通過硬件在更多方面對門進行監測。
此外,使用了無線通訊模塊,避免了過多布線可能對原本門鎖結構的破壞,使該系統的硬件組成方便快速。
圖2 指紋識別系統的硬件結構
指紋識別模塊
指紋模塊基于TI 公司的TMS320VC5509 高級數字DSP處理器為主核,芯片結構框圖如圖3 所示。高精光學采集頭(TFS-D0307),高速、穩定; 標準UART 接口通訊,標準8 字節通訊協議, FPI 完成處理接收到的指紋信息, 并與Raspberry Pi主控模塊通訊的工作。
圖3 指紋識別芯片FPI
圖像采集芯片
FPI 芯片上集成了圖像采集芯片FPC1011F,FPC1011F指紋傳感器是電容式半導體傳感器件,該電容式指紋傳感器利用了反射式探測技術,屬于平面式采集指紋傳感。相比傳統的電容式傳感器,它采集的是指頭的真皮層,且對干濕手指有良好的適用性。FPC1011F 的指紋采集原理:FPC1011F指紋傳感器是由152×200 個傳感器陣列組成的,每一個陣列是一個金屬電極,充當電容器的一極,安在傳感面上的手指頭的對應點則作為另外一極,其工作原理是基于變極板間距的電容式傳感器,其電容量由式(1)確定:
(式中:C 為電容量;d 為極板間距;ε0為真空介電常數;εr為極板間介質的相對介電常數;s 為極板的有效面積)
當手指接觸傳感器導電框以后, 由式(1) 可知, 谷和脊因為離傳感器陣列的距離不同, 產生了不同的電容值C, 經過運算放大電路, 形成不同的電壓值, 通過內部的A/D 轉換, 獲得高質量的數字指紋圖像。
處理器
該系統采用的主處理器是TMS320VC5509 的32 位定點高速數字DSP 處理器,開發板的硬件包括:USB2.0 FullSpeed接口用以傳輸圖像、視頻等高速數據;片外外擴1M BytesFLASH;RTL8019AS 網絡接口芯片,實現以太網通訊太網電路;開發接口:UART(RS232)與上位機實現通訊;2路10 位A/D 輸入接口。
主控模塊
該系統采用的主控模塊Raspberry Pi,代替了體積龐大的電腦實現控制功能。Raspberry Pi 是一款基于ARM,操作系統采用開源的Linux 系統的個人電腦, 配備一枚700MHz 的處理器, 支持SD 卡和Ethernet, 擁有兩個USB接口, 以及HDMI 和RCA 輸出支持。Raspberry Pi 一方面控制AVR 去檢測門的開關狀態以及開關門鎖,另一方面控制FPI 的指紋錄入以及匹配并在Raspberry Pi 上建立數據庫記錄用戶信息。
利用這些硬件便可以進行嵌入式開發,快速的建立起指紋識別系統的硬件系統。
三、指紋識別門禁系統軟件開發
該系統基于Linux操作系統, 將自動指紋識別系統移植到嵌入式Linux,在Linux上進行指紋識別系統的軟件設計,指紋識別系統的軟件設計包括四個方面: 上位機與AVR 串口通訊、上位機與指紋模塊串口通訊、維護MYSQL 以及腳本發送報警。
1、指紋識別的處理過程
如圖4 所示:首先對串口進行初始化,打開串口設備0、1,設置串口參數,恢復串口未阻塞狀態,串口初始化成功后執行用戶選擇功能: 注冊開門賬號或注冊關門賬號或運行門禁服務[N/C/R]。選擇系統功能N 后注冊新開門用戶,對同一指紋共獲取3 次圖像,與傳統采集一次圖像相比,杜絕了隨意采集造成的注冊指紋不精和驗證時不易識別的問題。采集指紋成功后輸入用戶個人信息,注冊來自上位機數據庫的新 ID 號并把該用戶指紋信息存入數據庫,然后選擇是否繼續添加用戶。同理用戶選擇系統功能C后完成注冊關門用戶的操作。
用戶選擇系統功能R 后運行門禁服務, 一方面AVR 查詢當前門鎖狀態,例如把開門的命令賦給門的匹配狀態,如果指紋匹配操作FPI 和門的匹配狀態相同,則由繼電器接收來自AVR 的開門命令,帶動電機執行開門動作,并且記錄當時時間,向本地數據庫添加一條新的用戶使用記錄并寫進日志里。同理執行關門命令。另一方面AVR 查詢當前電機電流等級,將門鎖的實時開關狀態,由誰執行開關門動作和當前門鎖電機電流狀態通過郵件的方式發送給用戶,實現對門的實時監控,大大增強了門禁系統的安全性。
2、報警郵件的發送
圖4 系統工作方式流程圖
Raspberry Pi 上的ARM 通過RS 232 串口接收來自AVR定時地對門禁狀態和電流狀態的查詢信息,并編寫Shell 腳本程序,利用wifi 通過串口傳送給郵件發送模塊,將報警內容發送到指定的用戶郵箱中來定時監控門鎖的狀態。程序如下:
這一部分完成信息的打包并將報警內容發到指定郵箱中的功能。AVR 定時檢測門的狀態和當前電流的狀態,當沒有人執行開關門操作時,door.log 的內容為“0”,當有人執行開關門操作或者電流超過一定數值時,door.log 內容為“1”,其中開關門鎖包含兩種情況:一是已注冊的用戶通過指紋識別成功實現開關門鎖;二是沒有注冊過的用戶指紋識別失敗但是打開了門鎖。文件夾從數據庫調用這一數據并將數據發送到指定用戶的郵箱里,然后door.log 重新變為“0”,如此循環檢測門的狀態。
Raspberry Pi 上的ARM 通過RS232 串口接收來自AVR定時地對門禁狀態和電流狀態的查詢信息, 并編寫Shell 腳本程序,利用wifi 通過串口傳送給郵件發送模塊,將報警內容發送到指定的用戶郵箱中來定時監控門鎖的狀態。
四、指紋識別門禁系統測試
為檢驗該指紋識別門禁系統的性能,打開Linux 程序,注冊登記4個不同的指紋, 然后用不同的手指作指紋識別測試。分別觀察指紋識別成功和失敗時執行機構的動作,一共測試50 次,部分系統測試結果的郵件正文內容如表1 所示。
表1 系統測試結果表
由表1 可以看出,郵件的內容包括ID、Name、Action、Date四項。其中前七行是已注冊過的用戶通過指紋識別成功實現開關門鎖,所以郵件中會有他們的 ID 號和姓名信息,而最后一行的用戶指紋識別失敗但是打開了門鎖,所以郵件中將他們的ID和姓名設置為NULL,提醒管理員特別注意當時門鎖狀態以實現管理員對門狀態的定時監控。
五、總結
文中基于指紋識別技術采用FPI 指紋識別模塊, 結合Linux設計了指紋識別門禁系統, 設計的一個特點是基于Linux 操作系統,建立并發執行環境,提高CPU 的利用率,并且用Raspberry Pi 主控模塊和無線通訊模塊使得整個結構更加簡單,對系統性能有一個明顯的提高。另外一個特點是定時檢測門鎖狀態并采用無線通訊方式向用戶發送報警郵件,大大增強了門鎖的安全性。實用測試結果表明,系統運行良好,能夠進行可靠安全的指紋識別,準確、快速地完成個人身份的驗證實現開關門功能和定時快速的郵件報警 操作。在后續的工作中,系統可以實現現有程序的穩定性提升,以提高系統的性能使指紋門鎖功能更加完善。
評論
查看更多