Tải bản đầy đủ (.pdf) (14 trang)

Hướng dẫn về môđun cảm biến vân tay với Arduino (FPM10A)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (862.75 KB, 14 trang )

Hướng dẫn về mô-đun cảm biến vân tay với Arduino
(FPM10A)

Giới thiệu mô-đun cảm biến vân tay
Các mô-đun cảm biến vân tay, giống như mơ-đun trong hình dưới đây, giúp nhận dạng
vân tay dễ tiếp cận hơn và dễ dàng thêm vào các dự án của bạn. Điều này có nghĩa là
siêu dễ dàng để thực hiện thu thập, đăng ký, so sánh và tìm kiếm dấu vân tay.

Các mơ-đun này đi kèm với bộ nhớ FLASH để lưu trữ dấu vân tay và hoạt động với bất
kỳ vi điều khiển hoặc hệ thống nào có nối tiếp TTL. Các mơ-đun này có thể được thêm
vào hệ thống an ninh, khóa cửa, hệ thống chấm công, và nhiều hơn nữa.
Giá cho cảm biến này rất khác nhau từ $ 10 đến $ 50. Chúng tôi khuyên bạn nên kiểm tra
mô-đun Cảm biến vân tay trên Maker Advisor để so sánh giá ở các cửa hàng khác nhau.
Các mô-đun cảm biến vân tay có trên Maker Advisor phải tương thích với hướng dẫn
này.

Kỹ thuật
1/14


Dưới đây là thông số kỹ thuật của mô-đun cảm biến vân tay mà chúng tôi đang sử dụng
(bạn nên kiểm tra bảng dữ liệu cảm biến hoặc thông số kỹ thuật do nhà cung cấp của
bạn cung cấp - chúng không nên khác nhiều so với những thông số này):
Cung cấp điện áp: DC 3.6 đến 6.0V
Nguồn cung hiện tại: < 120mA
Màu đèn nền: xanh lá cây
Giao diện: UART
Tỷ lệ xấu: 9600
Mức độ an toàn: 1 (từ thấp đến cao: 2,3,4,5,<>)
Tỷ lệ chấp nhận sai (FAR): <0,001% (mức bảo mật 3)
Tỷ lệ loại bỏ sai (FRR): <1,0% (mức bảo mật 3)


Có thể lưu trữ 127 dấu vân tay khác nhau

Sơ đồ chân cảm biến
Cảm biến có sáu chân được dán nhãn trong hình bên dưới.

Mơ-đun cảm biến vân tay được sử dụng trong dự án này đi kèm với dây thực sự mỏng,
vì vậy cần hàn dây thân thiện với breadboard. Chúng tôi khuyên bạn nên sử dụng các
màu khác nhau theo chức năng pin. Trong trường hợp của chúng tôi:
DNC - dây trắng
VCC – dây đỏ
TX - dây màu xanh
RX - dây màu xanh lá cây
GND – dây màu đen

2/14


Bảng sau đây cho thấy cách nối dây cảm biến với Arduino.
Cảm biến vân tay

Arduino

VCC

5V (nó cũng hoạt động với 3.3V)

TX

RX (chân kỹ thuật số 2, nối tiếp phần mềm)


RX

TX (chân kỹ thuật số 3, nối tiếp phần mềm)

GND

GND

Cài đặt thư viện cảm biến vân tay Adafruit
Cách dễ nhất để điều khiển mô-đun cảm biến vân tay với Arduino là sử dụng thư viện
Adafruit cho cảm biến này. Làm theo hướng dẫn tiếp theo để cài đặt thư viện:
1. Nhấn vào đây để tải xuống thư viện cảm biến vân tay Adafruit. Bạn sẽ có một thư
mục .zip trong thư mục Tải xuống của mình
2. Giải nén thư mục .zip và bạn sẽ nhận được thư mục Adafruit-Fingerprint-SensorLibrary-master
3. Đổi tên thư mục của bạn từ thư mục Adafruit-Fingerprint-Sensor-Library-master
thành thư mục Adafruit_Fingerprint_Sensor_Library
4. Di chuyển thư mục vào thư mục thư viện cài đặt Arduino IDE của bạn
5. Cuối cùng, mở lại Arduino IDE của bạn

Đăng ký vân tay mới

3/14


Có mơ-đun cảm biến vân tay có dây với Arduino, hãy làm theo các bước tiếp theo để
đăng ký dấu vân tay mới. Hãy chắc chắn rằng bạn đã cài đặt thư viện cảm biến vân tay
Adafruit trước đó.
1. Trong Arduino IDE, đi tới Tệp > Ví dụ > Thư viện cảm biến vân tay Adafruit > Đăng
ký.
2. Tải mã lên và mở màn hình nối tiếp với tốc độ truyền 9600.

3. Bạn nên nhập ID cho dấu vân tay. Vì đây là dấu vân tay đầu tiên của bạn, hãy nhập 1
ở góc trên cùng bên trái, sau đó nhấp vào nút Gửi.

4. Đặt ngón tay của bạn lên máy quét và làm theo hướng dẫn trên màn hình nối tiếp.

Bạn sẽ được yêu cầu đặt cùng một ngón tay hai lần trên máy quét. Nếu bạn nhận được
"Bản in phù hợp! "Tin nhắn, như hình dưới đây, dấu vân tay của bạn đã được lưu trữ
thành công. Nếu khơng, hãy lặp lại quy trình, cho đến khi bạn thành công.

4/14


Lưu trữ bao nhiêu dấu vân tay bạn muốn bằng phương pháp này.

Tìm kiếm một kết quả phù hợp
Bây giờ bạn sẽ có một số dấu vân tay được lưu trên các ID khác nhau. Để tìm kết quả
trùng khớp với cảm biến vân tay, hãy làm theo hướng dẫn tiếp theo.
1. Trong Arduino IDE, hãy truy cập Ví dụ về tệp > > Thư viện cảm biến vân tay Adafruit
> Dấu vân tay và tải mã lên bảng Arduino của bạn.
2. Mở Màn hình nối tiếp với tốc độ truyền 9600. Bạn sẽ thấy thơng báo sau:

3. Đặt ngón tay cần xác định trên bản quét.
5/14


4. Trên màn hình nối tiếp, bạn có thể thấy ID khớp với dấu vân tay. Nó cũng cho thấy sự
tự tin - độ tin cậy càng cao, dấu vân tay càng giống với dấu vân tay được lưu trữ.

Ví dụ dự án - Hiển thị khớp vân tay trên màn hình OLED
Trong ví dụ dự án này, chúng tơi sẽ đăng ký hai dấu vân tay từ hai người khác nhau. Sau

đó, chúng tơi sẽ hiển thị một thơng điệp chào mừng phù hợp với kết quả phù hợp được
tìm thấy, trên màn hình OLED.
Để tìm hiểu thêm về màn hình OLED, hãy đọc: Hướng dẫn hiển thị OLED với Arduino

Các bộ phận cần thiết
Trong ví dụ này, bạn sẽ cần các phần sau:

6/14


Arduino UNO - đọc Bộ dụng cụ khởi động Arduino tốt nhất
Mơ-đun cảm biến vân tay
Màn hình OLED 0.96 inch
Breadboard
Dây Jumper

Sơ đồ
Dưới đây là sơ đồ nối dây bạn nên làm theo để tạo mạch cho dự án này.

Cài đặt thư viện OLED 0,96 inch
Để điều khiển màn hình OLED, bạn cần các thư viện adafruit_SSD1306.h và
adafruit_GFX.h. Làm theo hướng dẫn tiếp theo để cài đặt các thư viện đó.
1. Mở Arduino IDE của bạn và đi tới Sketch > Include Library > Manage Libraries.
Trình quản lý thư viện sẽ mở.
2. Nhập "SSD1306" vào hộp tìm kiếm và cài đặt thư viện SSD1306 từ Adafruit.

7/14


3. Sau khi cài đặt thư viện SSD1306 từ Adafruit, hãy nhập "GFX" vào hộp tìm kiếm và cài

đặt thư viện.

4. Sau khi cài đặt các thư viện, hãy khởi động lại Arduino IDE của bạn.


Trước khi tải mã lên, bạn cần đăng ký các dấu vân tay khác nhau từ những người khác
nhau. Chuyển đến phần "Đăng ký vân tay mới" ở trên, tải lên mã đã cho và làm theo
hướng dẫn để đăng ký hai dấu vân tay.

8/14


Sau đó, sửa đổi mã để ID vân tay khớp với tên của những người đã đăng ký - cuộn
xuống trang để được giải thích về mã. Cuối cùng, bạn có thể tải lên mã được cung cấp.

9/14


/*********

Rui Santos

Complete project details at
*********/





#include <Wire.h>


#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

#define OLED_RESET 4

Adafruit_SSD1306 display(OLED_RESET);

#include <Adafruit_Fingerprint.h>

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

int fingerprintID = 0;

String IDname;

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();

}

void loop(){

displayMainScreen();


fingerprintID = getFingerprintIDez();

delay(50);

if(fingerprintID == 1 || fingerprintID == 3 || fingerprintID == 4 ||
fingerprintID == 5){

IDname = "Sara";

displayUserGreeting(IDname);


}

else if(fingerprintID == 2){

IDname = "Rui";

displayUserGreeting(IDname);


}

}

// returns -1 if failed, otherwise returns ID #

10/14



int getFingerprintIDez() {

uint8_t p = finger.getImage();

if (p != FINGERPRINT_OK) return -1;

p = finger.image2Tz();

if (p != FINGERPRINT_OK)

return -1;


p = finger.fingerFastSearch();

if (p != FINGERPRINT_OK) return -1;

// found a match!

Serial.print("Found ID #");

Serial.print(finger.fingerID);

Serial.print(" with confidence of ");

Serial.println(finger.confidence);

return finger.fingerID;


}

void displayMainScreen(){

display.clearDisplay();

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(7,5);

display.println("Waiting fingerprint");

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(52,20);

display.println("...");

display.display();

delay(2000);

}

void displayUserGreeting(String Name){


display.clearDisplay();

display.setTextColor(WHITE);

display.setTextSize(2);

display.setCursor(0,0);

display.print("Hello");

display.setCursor(0,15);

display.print(Name);

display.display();

delay(5000);

fingerprintID = 0;

}


Xem mã thô

Nhập thư viện
Mã bắt đầu bằng cách nhập các thư viện cần thiết để ghi vào màn hình OLED và tạo một
đối tượng Adafruit_SSD1306 gọi là display.

11/14



#include <Wire.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

#define OLED_RESET 4

Adafruit_SSD1306 display(OLED_RESET);

Chúng ta cũng cần import các thư viện cần thiết cho cảm biến vân tay:
Adafruit_Fingerprint.h và SoftwareSerial.h.
#include <Adafruit_Fingerprint.h>

#include <SoftwareSerial.h>

Dòng sau đặt phần mềm nối tiếp trên chân 2 và 3. Chân 2 là RX và Chân 3 là TX.
SoftwareSerial mySerial(2, 3);

Sau đó, chúng ta tạo một đối tượng Adafruit_Fingerprint gọi là ngón tay trên các chân nối
tiếp mà chúng ta đã đặt trước đó.
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

Hai dòng tiếp theo tạo các biến để giữ ID vân tay và IDname.
int fingerprintID = 0;

String IDname;


Thiết lập()
Trong setup(), cả cảm biến vân tay và màn hình OLED đều được khởi tạo. Chúng tôi
cũng in một thông báo trên màn hình nối tiếp để chúng tơi biết liệu cảm biến vân tay đã
được tìm thấy thành cơng hay chưa.
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();

}

Đề xuất đọc: Hướng dẫn cho màn hình OLED I2C với Arduino

12/14


vịng lặp()
Trong loop(), mã hiển thị màn hình chính trên màn hình OLED – điều này được thực hiện
trong hàm displayMainScreen(). Sau đó, mã liên tục kiểm tra dấu vân tay đến. Nếu cảm
biến tìm thấy dấu vân tay đã lưu, Arduino sẽ lưu ID tương ứng trong biến fingerprintID.
Sau đó, mã có câu lệnh if / else để kiểm tra ID mà dấu vân tay tương ứng. Bạn nên chỉnh
sửa các dòng mã sau với ID và tên tương ứng.
if(fingerprintID == 1 || fingerprintID == 3 || fingerprintID == 4 || fingerprintID
== 5){

IDname = "Sara";

displayUserGreeting(IDname);

}

else if(fingerprintID == 2){

IDname = "Rui";

Đôi khi, cảm biến sẽ nhận dạng dấu vân tay tốt hơn nếu nó được lưu nhiều lần trong các
ID khác nhau. Sau khi xác định tên ID, OLED sẽ hiển thị lời chào – điều này được thực
hiện trong hàm displayUserGreeting(),

Cuộc biểu tình
Bây giờ, khi một người có dấu vân tay đã lưu đặt ngón tay lên cảm biến, nó sẽ hiển thị
một tin nhắn chào mừng.

Tổng kết

13/14


Trong bài đăng này, chúng tôi đã hướng dẫn bạn cách sử dụng mô-đun cảm biến vân
tay: đăng ký dấu vân tay và tìm kết quả phù hợp.
Đơi khi cảm biến gặp khó khăn trong việc xác định dấu vân tay nếu bạn khơng đặt ngón
tay của mình rất giống với khi bạn lưu nó - đặc biệt là dấu vân tay của phụ nữ (chúng tôi
không biết tại sao điều này xảy ra). Chúng tôi nhận thấy rằng cảm biến hoạt động tốt hơn
nếu bạn đặt ngón tay từ từ trên máy quét.

14/14



×