本篇文章主要介紹如何在Arduino開發板上使用指紋傳感器模塊FPM10A。我們將向您介紹如何注冊新的指紋ID,以及如何查找匹配的指紋。
指紋傳感器模塊簡介
通過使用下圖所示的指紋傳感器模塊可以使指紋識別更易于實現,并且易于添加到您的項目中。這意味著指紋采集、注冊、比較和搜索是非常容易實現的。
這些模塊帶有FLASH存儲器,用于存儲指紋,并可與TTL串行接口的任何微控制器或系統一起使用。這些模塊可以添加到安全系統、門鎖、考勤系統等等。
以下是我們使用的指紋傳感器模塊的規格(您應該檢查供應商提供的傳感器數據手冊或規格書 - 它們的參數應該差別太大):
● 電流:《120mA
● 背光顏色:綠色
● 接口:UART
● 波特率:9600
● 安全等級:五級(從低到高:1、2、3、4、5)
● 錯誤接受率(FAR):《0.001%(安全級別3)
● 錯誤拒絕率(FRR):《1.0%(安全級別3)
● 能夠存儲127個不同的指紋
傳感器模塊引腳
傳感器模塊有六個引腳,如下圖所示。
這個項目中使用的指紋傳感器模塊帶有顏色相同的導線,因此需要焊接易于區分的導線。我們建議根據引腳功能使用不同的顏色。在我們的示例中:
● DNC - 白線
● VCC - 紅線
● TX - 藍線
● RX - 綠線
● GND - 黑線
下表顯示了傳感器與Arduino的連接方式。
指紋傳感器Arduino
VCC5V(它也適用于3.3V)
TXRX(數字引腳2,串行)
RXTX(數字引腳3,串行)
GNDGND
安裝Adafruit指紋傳感器庫
使用Arduino控制指紋傳感器模塊的最簡單方法是使用該傳感器的Adafruit庫。按照下面的說明安裝庫:
1. 首先下載Adafruit指紋傳感器庫。下載完成后,您將得到一個.zip文件;
2. 解壓縮.zip文件,你會看到一個Adafruit-Fingerprint-Sensor-Library-master文件夾;
3. 將Adafruit-Fingerprint-Sensor-Library-master文件夾重命名為Adafruit_Fingerprint_Sensor_Library文件夾;
4. 將文件夾移動到您的Arduino IDE安裝庫文件夾;
5. 最后,重新打開Arduino IDE。
注冊一個新的指紋
將指紋傳感器模塊連接到Arduino,請按照下面的步驟注冊新的指紋。確保您之前安裝了Adafruit指紋傳感器庫。
1. 在Arduino IDE中,轉到File 》 Examples 》 Adafruit Fingerprint Sensor Library 》 Enroll。
2. 上傳代碼到Arduino開發板,并以9600的波特率打開串行監視器。
3. 這時您應該輸入指紋的ID。由于這是您的第一個指紋,請在左上角輸入1,然后單擊Send按鈕。
4.將手指放在掃描儀上,然后按照串行監視器上的說明進行操作。
系統會要求您將同一根手指放在掃描儀上兩次。如果您收到“Prints matched!”消息,如下所示,您的指紋已成功存儲。如果沒有,重復這個過程,直到你成功。
使用此方法存儲您想要的指紋。
找到一個匹配的指紋
你現在應該保存有幾個不同ID的指紋。要找到與指紋傳感器匹配的指紋,請按照下面的說明進行操作。
1. 在Arduino IDE中,轉到File 》 Examples 》 Adafruit Fingerprint Sensor Library 》 Fingerprint ,然后將代碼上傳到Arduino開發板。
2. 以9600的波特率打開串行監視器。您應該會看到以下消息:
3. 在掃描儀中放置要識別的手指。
4. 在串行監視器上,您可以看到與指紋匹配的ID。同時它也顯示了信心值 - 信心值越高,表示該指紋與存儲的指紋越相似。
項目示例 - 在OLED顯示屏上顯示匹配的指紋
在這個項目的例子中,我們將從兩個不同的人注冊兩個指紋。然后,我們會在OLED顯示屏上顯示相應的匹配問候消息。
所需的組件
對于這個例子,你需要以下幾部分:
● Arduino UNO 開發板
● 指紋傳感器模塊
● 0.96英寸的OLED顯示屏
● 面包板
● 跳線
原理圖
下面是這個項目制作電路的接線圖。
安裝0.96英寸OLED庫
要控制OLED顯示屏,您需要使用“Adafruit_GFX.h”庫和“Adafruit_SSD1306.h”庫。按照下面的步驟安裝這些庫:
安裝Adafruit_GFX庫
1. 點擊此處下載Adafruit GFX庫。下載完成后,您將得到一個.zip文件;
2. 解壓縮此.zip文件,您會看到一個Adafruit-GFX-Library-master文件夾;
3. 將Adafruit-GFX-Library-master文件夾重命名為Adafruit_GFX_Library(確實需要用“_”替換那些“ - ”);
4. 將Adafruit_GFX_Library文件夾移至Arduino IDE安裝庫文件夾;
5. 最后,重新打開你的Arduino IDE。
安裝adafruit_SSD1306庫
1. 點擊此處下載Adafruit_SSD1306庫。下載完成后,您將得到一個.zip文件;
2. 解壓縮此.zip文件,您會看到一個Adafruit_SSD1306-master文件夾;
3. 將Adafruit_SSD1306-master文件夾重命名為Adafruit_SSD1306;
4. 將Adafruit_SSD1306文件夾移至Arduino IDE安裝庫文件夾;
5. 最后,重新打開你的Arduino IDE。
代碼
在上傳代碼之前,您需要注冊來自不同人員的不同指紋。轉到上面的“注冊一個新的指紋”部分,上傳給定的代碼并按照說明注冊兩個指紋。然后,修改代碼,使指紋ID與登記人員的姓名一致。最后,你可以上傳提供的代碼。
導入庫
代碼首先導入所需的庫以寫入OLED顯示屏,然后創建一個名為display的Adafruit_SSD1306對象。
#include 《Wire.h》
#include 《Adafruit_GFX.h》
#include 《Adafruit_SSD1306.h》
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
我們還需要導入指紋傳感器所需的庫:Adafruit_Fingerprint.h和SoftwareSerial.h。
#include 《Adafruit_Fingerprint.h》
#include 《SoftwareSerial.h》
SoftwareSerial mySerial(2, 3);
以下行設置引腳2和3上的串行接口。引腳2為RX,引腳3為TX。
SoftwareSerial mySerial(2, 3);
然后,我們在之前設置的串行引腳上創建一個名為finger的Adafruit_Fingerprint對象。
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
接下來的兩行創建變量來保存指紋ID和IDname。
int fingerprintID = 0;
String IDname;
setup()函數
在setup()中,指紋傳感器和OLED顯示器都被初始化。我們還在串口監視器上打印一條消息,以便我們知道指紋傳感器是否成功找到。
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()函數
在loop()中,代碼在OLED顯示屏上顯示主屏幕 - 這是在displayMainScreen()函數中完成的。然后,代碼不斷檢查傳入的指紋。如果傳感器找到保存的指紋,則Arduino將相應的ID保存在fingerprintID變量中。
然后,代碼有一個if / else語句來檢查指紋所對應的ID。您應該使用相應的ID和名稱編輯以下代碼行。
if(fingerprintID == 1 || fingerprintID == 3 || fingerprintID == 4 || fingerprintID == 5){
IDname = “Sara”;
displayUserGreeting(IDname);
}
else if(fingerprintID == 2){
IDname = “Rui”;
有時,如果傳感器以不同的ID保存多次,傳感器會更好地識別指紋。識別ID名稱后,OLED會顯示一個問候語 - 這是在displayUserGreeting()函數中完成的,
演示程序
現在,當保存指紋的人將手指放在傳感器上時,它會顯示一條問候消息。
總結
在本篇文章中,我們向您展示了如何使用指紋傳感器模塊:注冊指紋并找到匹配的指紋。
有時,如果您的手指沒有像保存時那樣放置手指的話,特別是女性的指紋(我們不知道為什么會發生這種情況),傳感器很難識別指紋。我們注意到,如果您將手指緩慢放在掃描儀上,傳感器效果會更好。
在我們看來,指紋傳感器模塊工作得很好,并且它是將生物識別技術識別添加到項目中的最經濟實惠的方式。
編輯:hfy
-
指紋識別
+關注
關注
43文章
1743瀏覽量
102282 -
指紋傳感器
+關注
關注
6文章
196瀏覽量
63495 -
Arduino
+關注
關注
188文章
6473瀏覽量
187424
發布評論請先 登錄
相關推薦
評論