GIAO TIẾP CẢM BIẾN NHẬN DẠNG VÂN TAY AS608 (Phần 1)

PHẦN 1: GIAO TIẾP VỚI ARDUINO

     Xin chào các bạn! Hôm nay mình sẽ đem tới cho các bạn một bài chia sẻ mới về module nhận dạng vân tay. Chắc có lẻ nhiều bạn khi nhắc tới nhận dạng vân tay có thể sẽ nghĩ đến phải biết xử lý ảnh, machine learning, AI,…mới có thể xử lý hình ảnh dấu vân tay đúng không. NHƯNG KHÔNG, mọi thứ xử lý đó đã được module cảm biến vân tay làm sẵn hết, chúng ta chỉ cần giao tiếp với module qua cổng UART hoặc USB là có thể thêm dấu vân tay vào bộ nhớ, nhận diện vân tay đó là vân tay nào,…để có thể ra lệnh điều khiển theo tùy ý mình.
Và để có thể cụ thể hơn công việc đó là như thế nào thì bạn hãy xem hết bài viết dưới đây của mình nhé

 

1. Giới thiệu module cảm biến vân tay AS608

Cảm biến nhận dạng vân tay AS608 Fingerprint Sensor sử dụng giao tiếp UART TTL hoặc USB để giao tiếp với Vi điều khiển hoặc kết nối trực tiếp với máy tính (thông qua mạch chuyển USB-UART hoặc giao tiếp USB).

  • Nguồn 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: màu xanh lục
  • Baudrate: 9600, 19200, 28800, 38400, 57600 (default is 57600)
  • Mức độ an toàn: từ thấp đến cao 1,2,3,4,5
  • Tỷ lệ chấp nhận sai (FAR): <0,001% (mức độ bảo mật 3)
  • Tỷ lệ từ chối giả (FRR): <1.0% (mức độ bảo mật 3)
  • Có thể lưu trữ hơn 200 dấu vân tay khác nhau.

Cảm biến nhận dạng vân tay AS608 Fingerprint Sensor được tích hợp nhân xử lý nhận dạng vân tay phía trong, tự động gán vân tay với 1 chuỗi data và truyền qua giao tiếp UART ra ngoài nên hoàn toàn không cần các thao tác xử lý hình ảnh, đơn giản chỉ là phát lệnh đọc/ghi và so sánh chuỗi UART nên rất dễ sử dụng và lập trình.

2. Giao tiếp Arduino với Module cảm biến AS608

2.1. Chuẩn bị

  • Arduino Uno (mình sử dụng cái này, nếu bạn dùng Kit Arduino khác thì cứ dùng).
  • Module cảm biến vân tay AS608.
  • Các dây jack cắm để nối cảm biến với arduino.

Mình sử dụng thư viện Fingerprint của Adafruit:

Vào Arduino -> Sketch -> Include library -> Manage libraries -> Tìm thư viện adafruit fingerprint để cài đặt vào nhé

Sau khi cài đặt thư viện xong, bạn có thể tham khảo 1 số examples có sẵn trong

File -> Examples -> Adafruit Fingerprint Sensor Lib

2.2. Lập trình Arduino

Đây là code arduino của mình, bạn có thể tham khảo (mình sẽ giới thiệu sơ qua phần code này ở phía dưới)

Thư viện sử dụng Adafruit_Fingerprint.h

Mình cấu hình sử dụng SoftwareSerial ở chân 2 và 3 của arduino Uno.

SoftwareSerial mySerial(2, 3);

Trong hàm loop mình cho mặc định chương trình sẽ chạy vòng quét kiểm tra vân tay từ cảm biến getFingerprintID()

Nếu không có vân tay chạm vào thì sẽ báo No finger detected

Trường hợp có vân tay chạm vào thì sẽ hiển thị các thông tin xử lý như image taken, image converted,…Kèm dữ liệu vân tay đó đã có lưu trữ trong bộ nhớ module cảm biến chưa, hay vân tay lạ. Ở dưới do vân tay mình đã thêm vào bộ nhớ với ID là 2 nên khi quét sẽ hiển thị thông tin ID được tìm thấy.
Thông số confidence biểu thị cho mức độ tin cậy khi so khớp giữa vân tay được quét và vân tay đã được lưu trữ trong bộ nhớ cảm biến. Giá trị càng cao thì càng tin cậy.

Ở code của mình sẽ có thêm 1 số chức năng như: thêm vân tay mới, xóa vân tay, kiểm tra vân tay,…

Mình có sử dụng sự kiện serialEvent() để bắt gói tin gửi qua serial để thực hiện các chức năng trên.

Cụ thể thêm mới vân tay theo lệnh serial “ADDX”, Hàm xử lý thêm vân tay getFingerprintEnroll()

Khi dùng lệnh ADDX thì nó sẽ bắt mình nhập ID cần lưu vào, sau khi nhập ID thì quá trình xử lý vân tay và lưu trữ bắt đầu thực thi như ảnh phía trên. Nhớ là lúc khi nhập ID thì bạn phải để ngón tay bạn vào cảm biến trước để nó quét xử lý nhé.

Kiểm tra ID vân tay đã tồn tại trong bộ nhớ hay chưa theo lệnh “C001X”, trong đó 001 là mã 3 ký tự chữ số của ID mình muốn kiểm tra. Hàm xử lý kiểm tra là finger.loadModel(id)

Xóa vân tay theo lệnh “D001X”, với 001 là mã 3 ký tự chữ số của ID mình muốn xóa. Hàm xóa vân tay deleteFingerprint(id)

Ngoài ra để xóa toàn bộ dữ liệu vân tay lưu trong bộ nhớ, có thể dùng cú pháp “D000X” sẽ xóa sạch bộ nhớ bằng lệnh finger.emptyDatabase()

3. Kết luận

     Vậy là cũng đã xong bài chia sẻ hôm nay. Phần code lập trình của mình các bạn có thể tham khảo hay tùy biến lại theo ý các bạn, mình làm sơ sơ để test chạy nên có thể nó chưa được tinh gọn hay tối ưu, hi vọng nó sẽ giúp các bạn tiếp cận cảm biến AS608 nhanh gọn hơn. Trong thời gian sắp tới, mình sẽ cho ra bài viết tiếp theo PHẦN 2 về giao tiếp cảm biến vân tay AS608 này nhưng với Rasp Pi và có kết hợp xử lý lưu trữ trên database, phần này có vẻ nâng cao hơn với bài viết hiện tại. Các bạn hãy chờ đón nhé!

Chúc thành công!

Xem phần 2: https://tapit.vn/giao-tiep-cam-bien-nhan-dang-van-tay-as608-phan-2/

Tấn Lĩnh – ATOMA Technology