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

Phần 2:  GIAO TIẾP VỚI RASPBERRY PI VÀ SQL SERVER

Tiếp tục phần 1 về giao tiếp cơ bản giữa Arduino và module AS608 thì ở phần 2 sẽ nâng cao hơn tí, cụ thể sẽ sử dụng ngôn ngữ Python trên Raspberry Pi để giao tiếp và có kết hợp lưu trữ trên database (SQL Server) nhằm nhận diện tên người có dấu vân tay đó.

Khỏi phải chờ đợi lâu, chúng ta tiến hành thôi nào…

1. Cấu hình Uart trên Rasp Pi

  • Vào Raspberry Pi Configuration -> Bật Serial Port (KHÔNG bật Serial Console nhé)

Hoặc có thể dùng sudo nano /boot/config.txt -> thêm enable_uart= 1 vào cuối.

Sau đó REBOOT lại Rasp Pi nhé.

2. Cài thư viện Fingerprint

Hiện mình đang dùng thư viện fingerprint của Adafruit nên sẽ cài như sau:

sudo pip3 install adafruit-circuitpython-fingerprint

3. Nối dây module AS608 với Rasp Pi

Module AS608 Raspberry Pi
Tx Rx (GPIO15)
Rx Tx (GPIO14)
Vcc 3.3V
GND GND

 

4. Cấu hình Rasp Pi giao tiếp SQL Server

SQL Server hay còn gọi là Microsoft SQL Server, là một phần mềm quản trị cơ sơ dữ liệu quan hệ được phát triển bởi microsoft bao gồm: tạo, duy trì, phân tích dữ liệu,… dễ dàng sử dụng để lưu trữ cho các dữ liệu dựa trên tiêu chuẩn RDBMS – Relational Database Management System.

SQL Server được xây dựng dựa trên SQL, được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn lên đến Tera – Byte cùng lúc phục vụ cho hàng ngàn user. SQL Server cung cấp đầy đủ các công cụ cho việc quản lý từ nhận diện GUI đến sử dụng ngôn ngữ cho việc truy vấn SQL.

SQL Server thường đi kèm với việc thực hiện riêng các ngôn ngữ SQL, T – SQL, cụ thể như sau:

  • SQL Server Management Studio: công cụ giao diện chính cho máy chủ, hỗ trợ cho môi trường 64 bit và 32 bit.
  • T – SQL: là ngôn ngữ thuộc quyền sở hữu của Microsoft hay còn được gọi là Transact – SQL.

 

Bước 1 – Đầu tiên bạn cần cài đặt Driver giao tiếp SQL Server trên Rasp Pi trước.

Xem chi tiết ở link:

https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver16

Hiện mình đang dùng Debian 11 nên mình thực hiện các lệnh theo trình tự như sau (LƯU Ý: nếu bạn dùng bản OS 32bit sẽ không cài được, mà cần bản OS 64bit nhé):

 

 

Bước 2: Chạy sudo -H pip install pyodbc

Lúc này mình sẽ test thử Raspi Pi giao tiếp được SQL Server được chưa nhé:

  • Trước mắt bạn cần cài SQL Server vào máy, sau đó cài thêm SQL Server management Studio (Phần này các bạn lên google tìm cách cài nhé).
  • Trong Studio, vào Security -> Logins để tạo user và password bạn sử dụng.

  • Hiện mình tạo thử 1 table dtb1 để test thử.

  • Code test của mình, bạn đổi các thông tin IP, database, port, user và pass nhé. (Ngôn ngữ mình sử dụng là Python nhé).

 

Nếu các bạn chạy ra lỗi liên quan SSL như dưới thì thực hiện

sudo nano /etc/ssl/openssl.cnf

Tiến hành đổi ở dòng gần cuối file MinProtocol = TLSv1.2 sang MinProtocol = TLSv1 là sẽ giải quyết được nhé.

5. Code chính

 

Giải thích:

  • Mình đã tạo 1 database tên fingerprint_dtb để lưu trữ ID và tên người khi mình add mới vào.

  • Khi thực thi code sẽ có 3 chức năng enroll print (tạo ID vân tay mới), find print (kiểm tra vân tay) và delete print (xóa vân tay).
  • Các chức năng đều có kết hợp giao tiếp SQL Server để lưu trữ ID vân tay mới vào module và database, kiểm tra vân tay và hiển thị tên người dùng nếu đã lưu trong database, xóa vân tay ở module và cả dữ liệu trong database.

  • Khi quét vân tay chưa có trong dữ liệu thì sẽ báo Finger not found
  • Với vân tay đã lưu trữ sẽ hiển thị thông báo Detect ID #xxx name:xxx with confidence xxx

  • Các chức năng kia bạn hãy tự check và test nó nhé. Trong phần code mình cũng có nhận biết nếu THÊM vân tay mới mà trùng ID có sẵn trong database thì sẽ cập nhật lại tên người mới.

 

6. Kết luận

Như vậy là 2 phần của chuỗi bài viết chia sẻ về giao tiếp module nhận dạng vân tay AS608 cũng đã hoàn thiện. Cơ bản có, nâng cao cũng có, tuy nhiên mức độ lập trình ở mức cơ bản và sơ sài để các bạn có thể dễ đọc hiểu. Còn khi các bạn hiểu sâu về nó thì các bạn có thể áp dụng để làm ứng dụng của bạn cho sinh động và chuyên sâu hơn nhé. Nếu có thắc mắc hay vấn đề, các bạn có thể cmt bên dưới để mình hỗ trợ giải đáp.

Chúc thành công!

Xem lại phần 1 (giao tiếp với arduino): https://tapit.vn/giao-tiep-cam-bien-nhan-dang-van-tay-as608-phan-1/

Tấn Lĩnh – Atoma Technology