本篇文章主要介紹如何在Arduino開發(fā)板上使用指紋傳感器模塊FPM10A。我們將向您介紹如何注冊(cè)新的指紋ID,以及如何查找匹配的指紋。
指紋傳感器模塊簡(jiǎn)介
通過使用下圖所示的指紋傳感器模塊可以使指紋識(shí)別更易于實(shí)現(xiàn),并且易于添加到您的項(xiàng)目中。這意味著指紋采集、注冊(cè)、比較和搜索是非常容易實(shí)現(xiàn)的。
這些模塊帶有FLASH存儲(chǔ)器,用于存儲(chǔ)指紋,并可與TTL串行接口的任何微控制器或系統(tǒng)一起使用。這些模塊可以添加到安全系統(tǒng)、門鎖、考勤系統(tǒng)等等。
產(chǎn)品規(guī)格
以下是我們使用的指紋傳感器模塊的規(guī)格(您應(yīng)該檢查供應(yīng)商提供的傳感器數(shù)據(jù)手冊(cè)或規(guī)格書 - 它們的參數(shù)應(yīng)該差別太大):
● 電流:《120mA
● 背光顏色:綠色
● 接口:UART
● 波特率:9600
● 安全等級(jí):五級(jí)(從低到高:1、2、3、4、5)
● 錯(cuò)誤接受率(FAR):《0.001%(安全級(jí)別3)
● 錯(cuò)誤拒絕率(FRR):《1.0%(安全級(jí)別3)
● 能夠存儲(chǔ)127個(gè)不同的指紋
傳感器模塊引腳
傳感器模塊有六個(gè)引腳,如下圖所示。
這個(gè)項(xiàng)目中使用的指紋傳感器模塊帶有顏色相同的導(dǎo)線,因此需要焊接易于區(qū)分的導(dǎo)線。我們建議根據(jù)引腳功能使用不同的顏色。在我們的示例中:
● DNC - 白線
● VCC - 紅線
● TX - 藍(lán)線
● RX - 綠線
● GND - 黑線
下表顯示了傳感器與Arduino的連接方式。
指紋傳感器Arduino
VCC5V(它也適用于3.3V)
TXRX(數(shù)字引腳2,串行)
RXTX(數(shù)字引腳3,串行)
GNDGND
安裝Adafruit指紋傳感器庫
使用Arduino控制指紋傳感器模塊的最簡(jiǎn)單方法是使用該傳感器的Adafruit庫。按照下面的說明安裝庫:
1. 首先下載Adafruit指紋傳感器庫。下載完成后,您將得到一個(gè).zip文件;
2. 解壓縮.zip文件,你會(huì)看到一個(gè)Adafruit-Fingerprint-Sensor-Library-master文件夾;
3. 將Adafruit-Fingerprint-Sensor-Library-master文件夾重命名為Adafruit_Fingerprint_Sensor_Library文件夾;
4. 將文件夾移動(dòng)到您的Arduino IDE安裝庫文件夾;
5. 最后,重新打開Arduino IDE。
注冊(cè)一個(gè)新的指紋
將指紋傳感器模塊連接到Arduino,請(qǐng)按照下面的步驟注冊(cè)新的指紋。確保您之前安裝了Adafruit指紋傳感器庫。
1. 在Arduino IDE中,轉(zhuǎn)到File 》 Examples 》 Adafruit Fingerprint Sensor Library 》 Enroll。
2. 上傳代碼到Arduino開發(fā)板,并以9600的波特率打開串行監(jiān)視器。
3. 這時(shí)您應(yīng)該輸入指紋的ID。由于這是您的第一個(gè)指紋,請(qǐng)?jiān)谧笊辖禽斎?,然后單擊Send按鈕。
4.將手指放在掃描儀上,然后按照串行監(jiān)視器上的說明進(jìn)行操作。
系統(tǒng)會(huì)要求您將同一根手指放在掃描儀上兩次。如果您收到“Prints matched!”消息,如下所示,您的指紋已成功存儲(chǔ)。如果沒有,重復(fù)這個(gè)過程,直到你成功。
使用此方法存儲(chǔ)您想要的指紋。
找到一個(gè)匹配的指紋
你現(xiàn)在應(yīng)該保存有幾個(gè)不同ID的指紋。要找到與指紋傳感器匹配的指紋,請(qǐng)按照下面的說明進(jìn)行操作。
1. 在Arduino IDE中,轉(zhuǎn)到File 》 Examples 》 Adafruit Fingerprint Sensor Library 》 Fingerprint ,然后將代碼上傳到Arduino開發(fā)板。
2. 以9600的波特率打開串行監(jiān)視器。您應(yīng)該會(huì)看到以下消息:
3. 在掃描儀中放置要識(shí)別的手指。
4. 在串行監(jiān)視器上,您可以看到與指紋匹配的ID。同時(shí)它也顯示了信心值 - 信心值越高,表示該指紋與存儲(chǔ)的指紋越相似。
項(xiàng)目示例 - 在OLED顯示屏上顯示匹配的指紋
在這個(gè)項(xiàng)目的例子中,我們將從兩個(gè)不同的人注冊(cè)兩個(gè)指紋。然后,我們會(huì)在OLED顯示屏上顯示相應(yīng)的匹配問候消息。
所需的組件
對(duì)于這個(gè)例子,你需要以下幾部分:
● Arduino UNO 開發(fā)板
● 指紋傳感器模塊
● 0.96英寸的OLED顯示屏
● 面包板
● 跳線
原理圖
下面是這個(gè)項(xiàng)目制作電路的接線圖。
安裝0.96英寸OLED庫
要控制OLED顯示屏,您需要使用“Adafruit_GFX.h”庫和“Adafruit_SSD1306.h”庫。按照下面的步驟安裝這些庫:
安裝Adafruit_GFX庫
1. 點(diǎn)擊此處下載Adafruit GFX庫。下載完成后,您將得到一個(gè).zip文件;
2. 解壓縮此.zip文件,您會(huì)看到一個(gè)Adafruit-GFX-Library-master文件夾;
3. 將Adafruit-GFX-Library-master文件夾重命名為Adafruit_GFX_Library(確實(shí)需要用“_”替換那些“ - ”);
4. 將Adafruit_GFX_Library文件夾移至Arduino IDE安裝庫文件夾;
5. 最后,重新打開你的Arduino IDE。
安裝adafruit_SSD1306庫
1. 點(diǎn)擊此處下載Adafruit_SSD1306庫。下載完成后,您將得到一個(gè).zip文件;
2. 解壓縮此.zip文件,您會(huì)看到一個(gè)Adafruit_SSD1306-master文件夾;
3. 將Adafruit_SSD1306-master文件夾重命名為Adafruit_SSD1306;
4. 將Adafruit_SSD1306文件夾移至Arduino IDE安裝庫文件夾;
5. 最后,重新打開你的Arduino IDE。
代碼
在上傳代碼之前,您需要注冊(cè)來自不同人員的不同指紋。轉(zhuǎn)到上面的“注冊(cè)一個(gè)新的指紋”部分,上傳給定的代碼并按照說明注冊(cè)兩個(gè)指紋。然后,修改代碼,使指紋ID與登記人員的姓名一致。最后,你可以上傳提供的代碼。
導(dǎo)入庫
代碼首先導(dǎo)入所需的庫以寫入OLED顯示屏,然后創(chuàng)建一個(gè)名為display的Adafruit_SSD1306對(duì)象。
#include 《Wire.h》
#include 《Adafruit_GFX.h》
#include 《Adafruit_SSD1306.h》
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
我們還需要導(dǎo)入指紋傳感器所需的庫:Adafruit_Fingerprint.h和SoftwareSerial.h。
#include 《Adafruit_Fingerprint.h》
#include 《SoftwareSerial.h》
SoftwareSerial mySerial(2, 3);
以下行設(shè)置引腳2和3上的串行接口。引腳2為RX,引腳3為TX。
SoftwareSerial mySerial(2, 3);
然后,我們?cè)谥霸O(shè)置的串行引腳上創(chuàng)建一個(gè)名為finger的Adafruit_Fingerprint對(duì)象。
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
接下來的兩行創(chuàng)建變量來保存指紋ID和IDname。
int fingerprintID = 0;
String IDname;
setup()函數(shù)
在setup()中,指紋傳感器和OLED顯示器都被初始化。我們還在串口監(jiān)視器上打印一條消息,以便我們知道指紋傳感器是否成功找到。
void setup(){
//Fingerprint sensor module setup
Serial.begin(9600);
// set the data rate for the sensor serial port
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println(“Found fingerprint sensor!”);
}
else {
Serial.println(“Did not find fingerprint sensor :(”);
while (1) { delay(1); }
}
//OLED display setup
Wire.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
//displays main screen
displayMainScreen();
}
loop()函數(shù)
在loop()中,代碼在OLED顯示屏上顯示主屏幕 - 這是在displayMainScreen()函數(shù)中完成的。然后,代碼不斷檢查傳入的指紋。如果傳感器找到保存的指紋,則Arduino將相應(yīng)的ID保存在fingerprintID變量中。
然后,代碼有一個(gè)if / else語句來檢查指紋所對(duì)應(yīng)的ID。您應(yīng)該使用相應(yīng)的ID和名稱編輯以下代碼行。
if(fingerprintID == 1 || fingerprintID == 3 || fingerprintID == 4 || fingerprintID == 5){
IDname = “Sara”;
displayUserGreeting(IDname);
}
else if(fingerprintID == 2){
IDname = “Rui”;
有時(shí),如果傳感器以不同的ID保存多次,傳感器會(huì)更好地識(shí)別指紋。識(shí)別ID名稱后,OLED會(huì)顯示一個(gè)問候語 - 這是在displayUserGreeting()函數(shù)中完成的,
演示程序
現(xiàn)在,當(dāng)保存指紋的人將手指放在傳感器上時(shí),它會(huì)顯示一條問候消息。
總結(jié)
在本篇文章中,我們向您展示了如何使用指紋傳感器模塊:注冊(cè)指紋并找到匹配的指紋。
有時(shí),如果您的手指沒有像保存時(shí)那樣放置手指的話,特別是女性的指紋(我們不知道為什么會(huì)發(fā)生這種情況),傳感器很難識(shí)別指紋。我們注意到,如果您將手指緩慢放在掃描儀上,傳感器效果會(huì)更好。
在我們看來,指紋傳感器模塊工作得很好,并且它是將生物識(shí)別技術(shù)識(shí)別添加到項(xiàng)目中的最經(jīng)濟(jì)實(shí)惠的方式。
編輯:hfy
-
指紋識(shí)別
+關(guān)注
關(guān)注
43文章
1748瀏覽量
103294 -
指紋傳感器
+關(guān)注
關(guān)注
6文章
197 -
Arduino
+關(guān)注
關(guān)注
190文章
6498瀏覽量
192282
發(fā)布評(píng)論請(qǐng)先 登錄
超聲波指紋模組靈敏度飛升!低溫納米燒結(jié)銀漿立大功
回收三星S21指紋排線 適用于三星系列指紋模組
新品 | 智能觸摸解鎖ZW302x系列指紋模塊 支持存儲(chǔ)100枚指紋

WTV380-P(QFN32)語音芯片在智能電子指紋鎖中的革新應(yīng)用:小體積封裝與多傳感器集成的雙重突破

第二代高通3D Sonic超聲波指紋解鎖亮相新機(jī)
RK3568國產(chǎn)芯教學(xué)實(shí)驗(yàn)箱:指紋識(shí)別實(shí)戰(zhàn)案例

高效安全的指紋頭,智能識(shí)別技術(shù)引領(lǐng)未來

英飛凌推出用于汽車應(yīng)用識(shí)別和認(rèn)證的新型指紋傳感器IC

國產(chǎn)人工智能教學(xué)實(shí)驗(yàn)箱操作案例分享:5-27 指紋識(shí)別實(shí)驗(yàn)
指紋讀取器上進(jìn)行掃描什么意思
項(xiàng)目分享 | 小熊派DIY一款指紋門鎖
μA級(jí)一體化半導(dǎo)體指紋模組 支持存儲(chǔ)100枚指紋

英飛凌推出帶指紋傳感器的生物識(shí)別芯片卡模塊
CW32模塊使用 指紋識(shí)別傳感器

評(píng)論