?

基于Arduino的指紋識別門鎖設計系統方法

2023-12-27 12:59張然梅益羅彥英李國其
計算技術與自動化 2023年4期
關鍵詞:電磁鎖指紋識別門鎖

張然,梅益,羅彥英,李國其

(1.貴州大學 現代制造技術教育部重點實驗室,貴州 貴陽 550025;2.貴州大學 機械工程學院,貴州 貴陽 550025)

指紋識別門鎖是一種以人體指紋作為識別手段和載體的智能鎖,是現代計算機技術、電工電子技術、機械技術和現代硬件技術的結合。雖然不同指紋間的基本輪廓可能相同,但是每個指紋之間的細節特征不完全相同。在具體的使用過程中,用戶首先將手指按壓在指紋傳感器上來讀取和采集指紋,再將采集到的指紋與指紋庫中的信息進行比對,以驗證其身份的真實性。相對于其他生物特征識別,指紋具有容易采集、識別準確率高等優點?;谝陨咸攸c,指紋識別是應用最廣泛、最可靠的生物特征識別(biometrics)方法。指紋識別算法是包含了指紋采集和壓縮、圖像增強(預處理)、細節特征提取、指紋分類、特征比對(匹配)等階段的算法?;诖?本文設計開發了一種指紋鎖系統,包括指紋識別、報警、開鎖功能,該系統安全可靠,具有很高的實用價值。

1 指紋識別門鎖硬件

1.1 指紋識別門鎖控制方案及整體框架

指紋識別門鎖主要能實現指紋管理、指紋檢測與識別、界面顯示、報警、開鎖功能。硬件結構圖如圖1所示。

圖1 系統硬件結構圖

本設計以高性能的控制單元為核心,指紋加載識別模塊、繼電器電源模塊、報警模塊、繼電器開鎖模塊、液晶顯示模塊,實現安全穩定的門鎖設計,提供良好的用戶體驗。除Arduino控制模塊外,其他各部分具體介紹如下:

(1)指紋模塊:實現儲存、識別、對比指紋功能,對指紋進行準確判斷,以實現指紋開鎖功能;

(2)顯示模塊:根據指紋的不同狀態顯示不同內容,以提醒用戶,實現良好的人機交互;

(3)報警模塊:指紋識別連續出錯后,蜂鳴器發出報警聲提醒用戶;

(4)繼電器開鎖模塊:待指紋匹配成功后,繼電器動作,實現開鎖功能;

(5)繼電器電源模塊:為繼電器提供穩定電壓,保證繼電器有效工作;

1.2 指紋識別門鎖硬件選型

本門鎖設計使用Arduino Uno作為主控制板。Uno的處理器核心是ATmega328,其包括1個9 V DC入,為Arduino板提供外部電源輸入、1個USB口,是用來將編寫好的程序燒錄到控制板的串口;1個DC 3.3 V輸出、6個模擬輸入/輸出端;1個DC 5 V輸出和14個數字輸入/輸出端和1個復位按鈕。

指紋傳感器選用光學指紋識別模塊AS608。這款傳感器采用內置DSP運算單元的高性能的AS608指紋識別芯片并且對傳統光路進行了大幅優化,其光路結構更加緊湊、高效;在采集圖像的時候高效快速并能準確識別指紋特征。

作為系統與用戶視覺交互的窗口,顯示模塊必不可少。這里選用了液晶顯示器LCD 1602作為顯示模塊。該顯示屏可用來顯示字母、數字、符號等。LCD1602連接Arduino Uno時需要7條線,這不僅較為復雜,而且非常浪費端口數。為解決此問題,本文選用帶有I2C總線的LCD 1602液晶顯示屏,再用Arduino控制此模塊。這種辦法只需用4條線就可以完全控制顯示屏,大大簡化了線路,使端口得到有效利用。帶I2C總線的顯示屏接口如表1所示。

表1 帶I2C總線的LCD1602引腳說明

作為智能門鎖的一部分,按鍵模塊必不可少。本設計中按鍵模塊實現兩方面功能:激活系統和初始化識別次數。

為了防止指紋識別門鎖的非法入侵,本文設置了報警電路,在指紋驗證出現連續錯誤后觸發有源蜂鳴器。相比于無源蜂鳴器,其在程序控制方面更有優勢。

本設計選用小型電磁閥鎖,這種鎖采用純銅線圈,開關順暢、性能穩定。工作電壓為12 V,通電縮回,斷電彈出。電磁閥長時間吸合可能引起電鎖發燙,從而燒毀線圈,所以它僅適用于點動的開關,不適合長時間或者過度頻繁開關。

開關電源作為一種高頻化電能轉換裝置,其作用在于將標準電壓轉換為用戶需要的電壓。本設計采用的型號為S-12-1,即輸入電壓為AC 220 V,輸出電壓為DC 12 V 1 A。

單片機I/O口輸出為5 V電平,而電磁鎖正常工作電壓為12 V,所以無法直接由單片機驅動電磁鎖,需要增加一個繼電器輔助控制。本設計采用開關電源和MOS管模塊控制電磁鎖的吸合。

MOS管又稱為場效應管,共有三個連接端口,分別為信號觸發端、輸入端、輸出端。信號觸發端由單片機I/O口的高低電平控制,輸入端連接開關電源的輸出端,輸出端連接電磁鎖。當發出開鎖信號后,I/O口實現低、高電平之間的轉換,輸出端電壓由0 V變為12 V,電磁鎖吸合。MOS管輸入與輸出不會產生干涉,確保其工作時安全、可靠。

2 系統軟件設計

指紋識別門鎖軟件設計使用Arduino IDE進行Arduino程序的編寫和開發。指紋識別門鎖軟件設計主要包括程序頭設計、初始化程序設計、主程序框架設計、光學指紋模塊采集指紋程序設計,下面作逐一介紹。

2.1 程序頭設計

程序頭部分主要是進行加載庫函數、設定顯示屏參數、設置軟接口、設置指紋模塊的變量和定義全局變量這些工作。

2.2 初始化程序設計

初始化程序只在系統上電時執行一次,主要功能是設置端口的狀態、初始化LCD 1602顯示屏、設置串口波特率、檢測串口連接情況、檢測指紋傳感器連接情況、返回指紋庫中模板數,以及根據上述不同情況在顯示屏中輸出對應內容。

具體執行過程如下:

(1)第一步“設置端口狀態”,通過函數pinMode()將端口定義為輸入或輸出狀態,從而驅動原件或接收外部信號;

(2)第二步“初始化顯示屏”,初始化LCD并且使背景燈亮,使指紋門鎖系統后續能根據運行情況及時向用戶反饋;

(3)第三步“設置串口波特率”,即設置串口的通訊速率;

(4)第四步“檢測串口通訊信狀態”,如果此時通訊錯誤,則一直循環執行此過程,直到通信正常;

(5)第五步“設置傳感器波特率”,傳感器波特率必須與串口波特率一致,否則無法正常通信;

(6)第六步“檢測光學指紋傳感器狀態”,如果此時連接錯誤,則程序停止。

2.3 主程序框架設計

主程序框圖如圖2所示。通電后系統進入待機狀態,等待按鈕被按下。檢測到按鈕動作后開始識別指紋,如果指紋識別成功,則繼電器動作門鎖打開;如果第一次指紋識別失敗,則重復此過程,繼續檢測。當指紋連續讀取錯誤5次后觸發報警裝置,蜂鳴器發出聲音,警告非法入侵者。

2.4 指紋識別程序設計

在系統發出指紋識別命令后,指紋傳感器開始工作。指紋的識別包括三個步驟,分別是讀取圖像(finger.getImage)、圖像轉特征(finger.Image2Tz)、匹配指紋(finger.fastSearch)。只有三個步驟順序執行并且全部成功才能完成一次正確的指紋識別過程,若其中一個步驟失敗,則指紋識別失敗。

2.5 顯示屏工作程序設計

LCD 1602顯示屏在使用前要在程序頭部分進行地址和行列數的設置。在工作過程中首先進行初始化,之后設置顯示坐標、顯示內容以及顯示時間。

圖2 主程序框圖

3 指紋門鎖功能測試

3.1 傳感器性能測試

在添加指紋時,傳感器連續采集兩次,最后合成為一個模板。采集的模板情況受到手指干濕情況、傳感器表面光潔程度等因素的影響。

在本次試驗中,一共采集15人的指紋,采集次數300次,共生成指紋模板150個,匹配次數360次(每個手指匹配兩次,其中60次對未錄入指紋進行匹配),測試環境濕度為20% RH,表2為測試的統計結果。

表2 指紋匹配測試結果

表2為本次實驗的測試結果,由于樣本數不夠大,測試對象都是成人,及環境因素等,該數據并不能完全反映實際的使用情況。但根據目前的測試結果來看,指紋傳感器可以滿足使用需求。

3.2 指紋識別門鎖功能測試

根據設計方案,制作指紋識別門鎖的實物,如圖3所示。其包括Arduino Uno、AS608光學指紋傳感器、帶I2C的LCD 1602顯示屏、有源蜂鳴器、電磁鎖、開關電源和MOS管模塊。

3.2.1 指紋門鎖初始化程序測試

初始化功能測試是指系統的開機測試,測試的結果作為初步判斷系統能否正常工作的依據。系統在開機后首先檢測指紋傳感器是否連接正常,若指紋傳感器連接正常,通信正常,則顯示屏顯示“Found sensor”。

圖3 指紋識別門鎖實物圖

3.2.2 指紋門鎖開鎖測試

在待機狀態下顯示屏沒有任何輸出,按下按鈕后屏幕上顯示“Please put your finger on”,這時用戶根據提示將手指放置在傳感器上等待檢測指紋。驗證指紋通過后繼電器動作,門鎖打開,同時顯示屏上輸出“Welcome Back Mr. Quesser”。

電磁鎖由于內部彈簧彈力的作用,在未通電時鎖舌彈出。在單片機發出開鎖信號后,內部銅管被磁化產生電磁吸力,并且此時吸力大于彈簧彈力,將實心鎖舌吸回。在實驗中發現,在吸合時間大于10 s后,電磁鎖內的純銅線圈發熱現象比較嚴重,有可能會燒壞鎖芯。所以本設計中將電磁鎖吸合時間設置為5 s,這樣不僅保證了足夠的開門時間,又保證了電磁鎖有足夠的使用壽命和安全性。

3.2.3 指紋門鎖報警測試

當指紋識別失敗后,顯示器輸出“Unqualified Access deny”,這時用戶可以在間隔2 s后繼續識別指紋,在此期間可以調整手指位置,清潔指面,保證識別的準確率。如果在5次之內指紋識別成功,則門鎖打開,并顯示“Welcome Back Mr.Quesser”,如果出現非法入門或連續5次指紋識別錯誤,則報警電路輸出邏輯電平的報警信號,蜂鳴器報警,以此警告非法用戶。

4 實驗分析

4.1 指紋傳感器測試結果分析

傳感器的理論據真率為1%,而在本次實驗中,據真率測試結果為2.7%,高于理論值。這是由于傳感器錄入的指紋只包含手指面積的一部分,并沒有全部覆蓋,所以在使用過程中,如果手指放置的位置與首次錄入時的位置不同,就會出現據真現象。為了避免用戶在使用傳感器過程中出現這種情況,影響指紋識別門鎖的正常工作,可以對同一手指重復錄入,使同一手指生成多個模板,保證識別成功率。

4.2 門鎖開啟過程中的性能分析

在門鎖的使用過程中,會出現錄入三次或者四次錯誤指紋后直接報警的狀況,這并不是程序的邏輯有問題,而是由指紋傳感器的工作原理決定的。指紋傳感器指紋識別包括三個步驟:獲取指紋圖像、圖像轉特征、匹配指紋。只有三個步驟順序執行并且全部成功才能完成一次正確的指紋識別。在本程序中,指紋識別的時間周期為2 s,如果2 s內沒有放置指紋,則獲取指紋圖像步驟失敗,后續過程不會執行,視為一次指紋識別失敗。

5 結 論

本文設計了一款基于Arduino的指紋識別門鎖系統,它將指紋識別技術與電磁鎖結合,經過測試,光學指紋傳感器能滿足工作要求,并且性能可靠。指紋識別門鎖的系統上電初始化功能、顯示功能、按鈕啟動功能、開鎖功能、報警功能均能正常工作,指紋識別門鎖滿足預期設計要求。

猜你喜歡
電磁鎖指紋識別門鎖
基于FTA的電磁鎖故障分析
一種簡易氣門鎖夾安裝設備
6款熱門智能門鎖推薦
基于單片機指紋識別電子寄存柜設計
負極刀閘電磁鎖故障分析及處理
地鐵安全門電磁鎖的優化研究
基于DCS系統的廠用電設備防誤配置策略
指紋識別技術綜述
鑰匙門鎖對對碰
基于大容量指紋識別的實時身份認證系統
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合