Đề tài Hướng dẫn về môđun cảm biến vân tay với Arduino (FPM10A) là một chủ đề liên quan đến việc sử dụng môđun cảm biến vân tay FPM10A kết hợp với vi điều khiển Arduino. Chủ đề này sẽ cung cấp hướng dẫn về cách kết nối môđun cảm biến vân tay FPM10A với Arduino, cách sử dụng thư viện FPM10A để đọc dữ liệu vân tay, và các ứng dụng thực tế của môđun cảm biến vân tay trong các dự án Arduino. Ngoài ra, đề tài cũng có thể đề cập đến các khái niệm cơ bản về nhận dạng vân tay, cách thức hoạt động của môđun cảm biến vân tay, và các lỗi thường gặp và cách khắc phục khi sử dụng môđun cảm biến vân tay FPM10A với Arduino.
Trang 1Hướ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
Trang 2Dướ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
Trang 3Bả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)
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-Sensor-Library-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
Trang 4Có 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
Trang 5Lư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.
Trang 64 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:
Trang 7Arduino 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
Trang 83 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
Mã
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
Trang 9Sau đó, 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
Trang 10/*********
Rui Santos
Complete project details at https://randomnerdtutorials.com
*********/
#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 #
Trang 11int 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
Trang 12#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
Trang 13vò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
Trang 14Trong 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