生物識(shí)別技術(shù)作為一種可靠的認(rèn)證系統(tǒng)已經(jīng)被使用很長(zhǎng)一段時(shí)間了。現(xiàn)今存在很多復(fù)雜的生物識(shí)別系統(tǒng),它可以通過(guò)他的心跳節(jié)奏甚至是他的DNA來(lái)識(shí)別一個(gè)人。其他可行的方法包括語(yǔ)音識(shí)別、人臉識(shí)別、虹膜掃描和指紋識(shí)別。其中指紋識(shí)別是最廣泛使用的方法,從簡(jiǎn)單的考勤系統(tǒng)到智能手機(jī)到安全檢查等等,我們都可以看到它的影子。
在本篇文章中,我們將學(xué)習(xí)如何基于Aduino開(kāi)發(fā)板使用流行的GT511C3指紋傳感器(FPS)。指紋傳感器有很多種型號(hào),我們已經(jīng)學(xué)會(huì)了如何使用它們來(lái)構(gòu)建出勤系統(tǒng)、投票機(jī)、安全系統(tǒng)等設(shè)計(jì)。但GT511C3更先進(jìn),具有高精度和更快的響應(yīng)時(shí)間,因此我們將學(xué)習(xí)如何在Arduino開(kāi)發(fā)板使用該指紋傳感器,在Arduino上注冊(cè)指紋,然后在需要時(shí)檢測(cè)指紋。所以讓我們開(kāi)始吧。
所需的組件
●? ? Arduino Nano / UNO
●? ? GT511C3指紋傳感器
●? ? 1602液晶屏
●? ? 按鈕
●? ? 連接線
●? ? 面包板
GT511C3指紋傳感器(FPS)模塊
在深入了解項(xiàng)目之前,讓我們了解GT511C3指紋傳感器模塊及其工作原理。這種傳感器與我們的智能手機(jī)中常用的電容式和超聲波指紋傳感器非常不同。 GT511C3是一款光學(xué)指紋傳感器,這意味著它依賴于指紋圖像來(lái)識(shí)別其圖案。是的,你猜的不錯(cuò),傳感器實(shí)際上有一個(gè)攝像頭,它可以拍攝指紋,然后使用功能強(qiáng)大的內(nèi)置ARM Cortex M3 IC處理這些圖像。下圖顯示了帶有引腳分布的傳感器的正面和背面。

GT511C3指紋傳感器(FPS)模塊
如您所見(jiàn),傳感器有一個(gè)由藍(lán)色LED環(huán)繞的攝像頭(黑點(diǎn)),這些LED必須點(diǎn)亮才能拍出清晰的指紋圖像。然后使用與EEPROM配合的ARM微控制器處理這些圖像并將其轉(zhuǎn)換為二進(jìn)制值。該模塊還有一個(gè)綠色SMD LED指示電源。每個(gè)指紋圖像為202x258像素,分辨率為450dpi。傳感器最多可以注冊(cè)200個(gè)指紋,每個(gè)指紋模板都會(huì)分配0到199的ID格式。然后在檢測(cè)過(guò)程中,它會(huì)自動(dòng)將掃描的指紋與所有200個(gè)模板進(jìn)行比較,如果找到匹配,則會(huì)給出該特定的ID號(hào)。 ARM微控制器上使用Smack Finger 3.0算法的指紋。傳感器可以在3.3V至6V的電壓下工作,并通過(guò)9600的串行通信進(jìn)行通信。通信引腳(Rx和Tx)據(jù)說(shuō)只能承受3.3V的電壓,但是數(shù)據(jù)表沒(méi)有詳細(xì)說(shuō)明。 GT511C3 FPS的引腳輸出如下所示。

除了串行通信之外,模塊還可以使用上一張圖片中所示的引腳通過(guò)USB連接直接連接到計(jì)算機(jī)。連接到計(jì)算機(jī)后,可以使用SDK_DEMO.exe應(yīng)用程序控制模塊,該應(yīng)用程序可以從鏈接下載。該應(yīng)用程序允許用戶注冊(cè)/驗(yàn)證/刪除指紋以及識(shí)別指紋。該軟件還可以幫助您讀取傳感器捕獲的圖像,值得一試?;蛘?,即使傳感器與Arduino連接,您也可以使用此軟件,我們將在本文后面討論。
關(guān)于傳感器的另一個(gè)有趣特征是傳感區(qū)域周圍的金屬外殼。正如我之前所說(shuō),必須打開(kāi)藍(lán)色LED才能讓傳感器工作。但在傳感器應(yīng)主動(dòng)等待指紋的應(yīng)用中,不可能始終保持LED開(kāi)啟,因?yàn)樗鼤?huì)加熱傳感器并因此損壞傳感器。因此,在這些情況下,金屬外殼可以連接到MCU的電容式觸摸輸入引腳,以檢測(cè)它是否被觸摸。如果是,則可以打開(kāi)LED并且可以開(kāi)始感測(cè)過(guò)程。此方法未在此處演示,因?yàn)樗隽吮疚牡姆秶?/p>
傳感器在3.3V下工作時(shí),消耗約130mA電流。注冊(cè)手指需要將近3秒,識(shí)別它需要1秒。但是,如果登記的模板計(jì)數(shù)較少,則識(shí)別速度將很高。有關(guān)傳感器的更多詳細(xì)信息,請(qǐng)參閱ADH-Tech的數(shù)據(jù)表,該數(shù)據(jù)表是該模塊的官方制造商。
將GT511C3指紋傳感器與Arduino連接
GT511C3 FPS有兩個(gè)電源引腳,可以通過(guò)Arduino的+ 5V引腳和兩個(gè)通信引腳Rx和Tx供電,可以連接到Arduino的任何數(shù)字引腳進(jìn)行串行通信。此外,我們還添加了一個(gè)按鈕和一個(gè)LCD來(lái)顯示傳感器狀態(tài)。 GT511C3 FPS與Arduino連接的完整電路圖如下所示。

由于Rx和Tx引腳是3.3V電平,我們?cè)赗x側(cè)使用了一個(gè)分壓器將5V轉(zhuǎn)換為3.3V。 10k電阻和22k電阻將來(lái)自Arduino Tx引腳的5V信號(hào)轉(zhuǎn)換為3.3V,然后到達(dá)FPS的Rx引腳。傳感器也可以通過(guò)3.3V供電,但要確保您的Arduino可以為傳感器提供足夠的電流。我們已將4位模式的LCD連接到由Arduino的5V引腳供電。按鈕連接到引腳D2,當(dāng)按下該按鈕時(shí),程序?qū)⑦M(jìn)入注冊(cè)模式,用戶可以在其中注冊(cè)新手指。注冊(cè)后,程序?qū)⒈3謷呙枘J?,掃描任何觸摸傳感器的手指。

Arduino與GT511C3
如前所述,GT511C3 FPS通過(guò)串行通信進(jìn)行通信,傳感器理解十六進(jìn)制代碼,并且對(duì)于每個(gè)十六進(jìn)制代碼執(zhí)行特定操作。如果您感興趣,可以查看數(shù)據(jù)表以了解所有十六進(jìn)制值及其相應(yīng)的功能。但是,幸運(yùn)的是我們bboyho已經(jīng)創(chuàng)建了一個(gè)庫(kù),可以直接與Arduino一起使用來(lái)注冊(cè)和檢測(cè)指紋??梢詮囊韵骆溄酉螺dGT511C3 FPS的Github庫(kù):GT511C3 Arduino Library
該鏈接將下載ZIP文件,然后您必須按照Sketch??- > Include Library??- > Add .ZIP Library命令將其添加到Arduino IDE中。添加庫(kù)后重新啟動(dòng)IDE,您應(yīng)該能夠在File??- > Example??- > Fingerprint Scanner TTL下找到GT511C3 FSP的示例程序,如下所示

您應(yīng)該看到四個(gè)示例程序,閃爍程序?qū)㈤W爍FPS上的藍(lán)色LED,注冊(cè)和ID指針程序可用于相應(yīng)地注冊(cè)和識(shí)別手指。請(qǐng)注意,即使已關(guān)閉電源,一旦注冊(cè)了手指,模塊將始終記住該手指。
Serial Pass-through程序可以上傳到Arduino以使用我們?cè)诒疚那懊嬗懻撨^(guò)的Demo_SDK.exe應(yīng)用程序。要?jiǎng)h除任何指紋模板或在計(jì)算機(jī)上保存副本,可以使用此SDK應(yīng)用程序。