Professional Documents
Culture Documents
ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC
NGÀNH: CÔNG NGHỆ KĨ THUẬT ĐIỆN -ĐIỆN TỬ
CHUYÊN NGÀNH: KĨ THUẬT ĐIỆN TỬ
ĐỀ TÀI:
Đà Nẵng, 6/2022
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN-ĐIỆN TỬ
ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC
NGÀNH: CÔNG NGHỆ KĨ THUẬT ĐIỆN -ĐIỆN TỬ
CHUYÊN NGÀNH: KĨ THUẬT ĐIỆN TỬ
ĐỀ TÀI:
Đà Nẵng, 6/2022
NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN
NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM
KHOA ĐIỆN- ĐIỆN TỬ Độc lập - Tự do - Hạnh phúc
Chương 1 : Tổng Quan chung Trình bày về đặt vấn để dẫn nhập lý do chọn đề tài ,
mục tiêu , nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án.
Chương 2 : Cơ Sở Lý Thuyết Trình bày về các lý thuyết có liên quan đến các vấn đề
mà đề tải sẽ dùng để thực hiện thiết kế, thi công cho đề tài.
Chương 3 : Tính Toán Và Thiết Kế Giới thiệu tổng quan về các yêu cầu của đề tài
mà mình thiết kế và các tính toán, thiết kế gồm những phần nào. Thiết kế sơ đồ khối
hệ thống, sơ đồ nguyên lý toản mạch, tính toán thiết kế mạch
Chương 4 : Thi Công Hệ Thống Trình bày về quá trình vẽ mạch in lắp ráp các thiết
bị, đo kiểm tra mạch, lắp ráp mô hình. Thiết kế lưu để giải thuật cho chương trình
và viết chương trình cho hệ thống. Hướng dẫn quy trình sử dụng hệ thống.
- Hoàn thành sản phẩm có thể mở khóa bằng nhận dạng khuôn mặt.
- Báo cáo tổng kết đồ án tốt nghiệp
5. Ngày giao đồ án: 2/3/2022
4. Đề tài
Tên đề tài: THIẾT KẾ VÀ CHẾ TẠO KHÓA THÔNG MINH NHẬN DIỆN KHUÔN
MẶT
5. Mục tiêu
- Dùng esp32 cam để nhận diện khuôn mặt, kết hợp với vân tay, thẻ từ và mật
khẩu để mở khóa.
- Cảnh báo sai mật khẩu và mở khóa từ xa qua điện thoại.
Chương 1 : Tổng Quan chung Trình bày về đặt vấn để dẫn nhập lý do chọn đề tài ,
mục tiêu , nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án.
Chương 2 : Cơ Sở Lý Thuyết Trình bày về các lý thuyết có liên quan đến các vấn đề
mà đề tải sẽ dùng để thực hiện thiết kế, thi công cho đề tài.
Chương 3 : Tính Toán Và Thiết Kế Giới thiệu tổng quan về các yêu cầu của đề tài
mà mình thiết kế và các tính toán, thiết kế gồm những phần nào. Thiết kế sơ đồ khối
hệ thống, sơ đồ nguyên lý toản mạch, tính toán thiết kế mạch
Chương 4 : Thi Công Hệ Thống Trình bày về quá trình vẽ mạch in lắp ráp các thiết
bị, đo kiểm tra mạch, lắp ráp mô hình. Thiết kế lưu để giải thuật cho chương trình
và viết chương trình cho hệ thống. Hướng dẫn quy trình sử dụng hệ thống.
7. Kết quả dự kiến đạt được
- Hoàn thành sản phẩm khóa thông minh nhận diện bằng khuôn mặt.
8. Tiến độ thực hiện
TT Thời gian Nội dung công việc Kết quả dự kiến đạt được
Lời đầu tiên, em xin gửi đến Thầy Trần Duy Chung lời cảm ơn chân thành và sâu
sắc nhất. Nhờ có sự hướng dẫn và giúp đỡ tận tình của Thầy trong suốt thời gian qua,
em đã có thể thực hiện và hoàn thành Đồ Án Tốt Nghiệp. Những lời nhận xét, góp ý và
hướng dẫn tận tình của Thầy đã giúp em có một định hướng đúng đắn trong suốt quá
trình thực hiện Đề tài giúp em nhìn ra được những ưu, khuyết điểm của Đề tài và
từng bước hoàn thiện hơn.
Đồng thời, em xin trân trọng cảm ơn các Thầy Cô của trường Đại học Sư phạm Kỹ
thuật nói chung và của khoa Điện- Điện Tử nói riêng đã dạy dỗ chúng em suốt quãng
thời gian ngồi trên ghế giảng đường Đại học. Những lời giảng của Thầy Cô trên bục
giảng đã trang bị cho chúng em những kiến thức và giúp chúng em tích lũy thêm những
kinh nghiệm.
Bên cạnh đó, xin cảm ơn sự hỗ trợ và giúp đỡ của bạn bè trong thời gian học tập
tại trường Đại học Sư phạm Kỹ thuật và trong quá trình hoàn thành Đồ Án Tốt Nghiệp
này.
i
CAM ĐOAN
Đề tài này là do nhóm em tự thực hiện dưới sự hướng dẫn của thầy Trần Duy
Chung dựa vào một số tài liệu trước đó và không sao chép từ tài liệu hay công trình đã
có trước đó.
Những thống số hay số liệu trong đề tài chưa được bảo vệ hay báo cáo trước đó .
Những trích dẫn, ghi chú, số liệu, hình ảnh trong đề tài được ghi tên và nguồn gốc rõ
ràng.
Chúng em cam đoan những lời ở trên là đúng sự thật và trung thực, nếu có bất kì
phát giác nào thì nhóm xin chịu trách nhiệm.
Sinh viên thực hiện Sinh viên thực hiện
(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)
ii
TÓM TẮT ĐỒ ÁN
Hiện nay, cùng với sự phát triển của xã hội, vấn đề an ninh bảo mật đang được yêu
cầu khắt khe tại mọi quốc gia trên thế giới. Các hệ thống nhận dạng con người được ra
đời với độ tin cậy ngày càng cao. Một trong các bài toán nhận dạng con người rất được
quan tâm hiện nay là nhận dạng khuôn mặt, bài toán nhận dạng khuôn mặt phục vụ mạnh
mẽ trong nhiều lĩnh vực của đời sống đặc biệt ở những lĩnh vực công nghệ cao yêu cầu
bảo đảm an ninh, bảo mật…
Vì vậy đề tài: “Thiết kế và chế tạo khóa thông minh nhận diện bằng khuôn mặt”.
là đề tài nóng hổi và càng ngày được con người tìm cách hoàn thiện nó để mang lại kết
quả tốt nhất.
Trong đề tài này, ngoài việc tập trung nghiên cứu bảo mật bằng nhận diện khuôn
mặt đề tài còn nghiên cứu bảo mật về nhận dạng vân tay, RFID, mật khẩu. Đây là một
đề tài rất có ý nghĩa trong việc giúp bảo vệ tài sản của cá nhân hay một doanh nghiệp
hay nhà nước, giúp chúng ta có cuộc sống an toàn hơn.
Kết hợp các kiến thức trên lại để xây dựng, thực hiện đề tài này. Sử dụng ESP32
CAM để thu nhận hình ảnh chuyền về trình duyệt Web để xử lý nhận dạng khuôn mặt
và sử dụng ESP32 thực thi chức năng quét nhận dạng vân tay, RFID, mật khẩu và điều
khiển khóa điện.
Nội dung chính của báo cáo sẽ trình bày những vấn đề lý thuyết cơ bản của
lĩnh vực phát hiện khuôn mặt cũng như những thành công mà các nhà nghiên cứu đã đạt
được trong những năm gần đây. Báo cáo nhằm mục đích có được cái nhìn tổng quát về
bảo mật nhận diện bằng khuôn mặt.
iii
MỤC LỤC
iv
2.7.2. Ứng dụng tin nhắn telegram [4] ...................................................................19
2.8. Giới thiệu linh kiện ............................................................................................. 24
2.8.1. Giới thiệu về Module ESP32 CAM [9]........................................................24
2.8.2. Giới thiệu về module ESP32 [21] ................................................................ 26
2.8.3. Cảm biến nhận dạng vân tay AS608 [13] ....................................................28
2.8.4. Module Relay [23] .......................................................................................29
2.8.5. Ổ khóa điện từ LY-03 [12]...........................................................................30
2.8.6. Module RFID RC522: [11] ..........................................................................31
2.8.7. Module chuyển đổi FT232RL [19] .............................................................. 32
2.8.8. Bàn phím mềm 4x4 [3] ................................................................................32
2.8.9. Module tăng áp XL6009 [10].......................................................................33
2.8.10. Module giảm áp LM2596 [1] .....................................................................34
2.8.11. Màn hình LCD 1602 và module I2C [2] ...................................................35
CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG ...................................................37
3.1. Sơ đồ khối hệ thống ............................................................................................ 37
3.1.1. Yêu cầu đề tài ............................................................................................... 37
3.1.2. Thiết kế sơ đồ khối .......................................................................................37
3.1.3. Chức năng các khối ......................................................................................37
3.2. Thiết kế đề tài .....................................................................................................38
3.2.1. ESP32 CAM .................................................................................................38
3.2.2. ESP32 ...........................................................................................................39
3.2.3. Nguồn ...........................................................................................................41
CHƯƠNG 4: THI CÔNG HỆ THỐNG ........................................................................42
4.1. Thi công sản phẩm .............................................................................................. 42
4.1.1. Mạch in.........................................................................................................42
4.1.2. Mạch in 3D ...................................................................................................42
4.1.3 Mạch sau khi thi công ...................................................................................44
4.2. Mô hình sản phẩm và quá trình hoạt động .........................................................44
v
4.2.1. Mô hình sản phẩm ........................................................................................44
4.2.2. Quá trình hoạt động ......................................................................................47
KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ ....................................................................48
KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN .........................................................49
TÀI LIỆU THAM KHẢO ............................................................................................. 50
PHỤ LỤC ..........................................................................................................................
vi
DANH SÁCH CÁC BẢNG, HÌNH VẼ
...........................................................................................................................................
Hình 2.1: Sơ đồ khối logic chính của hệ thống sinh trắc học [26] ................................ 11
Hình 2.2: Công nghệ phát hiện khuôn mặt [17] ............................................................ 12
vii
Hình 2.3: Hệ thống nhận diện khuôn mặt [15] .............................................................. 13
Hình 2.7: Giao diện khởi tạo phần mềm Arduino IDE ................................................. 19
Hình 2.15: Hình ảnh các chân ESP32 Cam [9] ............................................................. 25
Hình 2.18. Cảm biến nhận dạng vân tay AS608 [13].................................................... 28
viii
Hình 2.23: Bàn phím mềm 4x4 [3] ................................................................................ 33
ix
DANH SÁCH CHỮ VIẾT TẮT
x
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
MỞ ĐẦU
Lý do chọn đề tài
Từ xưa con người luôn mong muốn chế tạo một thiết bị "biết suy nghĩ và làm việc
giống như con người". Để chế tạo được những con Robot có khả năng "suy nghĩ" và "tự
hoạt động độc lập" gần giống như con người, ngoài các yêu cầu về phần cứng và phần
mềm điều khiển thì yếu tố quan trọng không thể thiếu đó là "thị giác máy tính (Computer
Vision)". "Thị giác máy tính" tương tự như "đôi mắt" của con người, nhờ đó Robot có
thể "quan sát" được thế giới xung quanh chúng để có thể đưa ra phản ứng với bên ngoài.
Vài chục năm qua, con người đã tạo ra các cảm biến, vi xử lý hình ảnh giống (và ở mức
độ nào đó còn tốt hơn) khả năng nhìn của mắt người. Những thấu kính lớn hơn, hoàn
hảo về mặt quang học cùng các điểm ảnh phụ bán dẫn nhỏ tới mức nano mét giúp các
camera ngày nay có độ chính xác và nhạy đáng kinh ngạc, camera có thể chụp hàng
ngàn ảnh mỗi giây và nhận diện từ xa với độ chính xác cao.
Ở nước ta, hoạt động nghiên cứu và thiết kế các hệ thống nhận dạng đang có những
bước đầu phát triển trong các trường đại học. Các đề tài nghiên cứu khoa học và đồ án
trước đây chủ yếu tập trung vào các mảng nhận dạng dấu vân tay để hỗ trợ điều khiển
trong các hệ thống an ninh… Tuy nhiên, các đề tài liên quan tới giao tiếp giữa người và
máy tính thông qua nhận dạng khuôn mặt kết hợp với nhận dạng vân tay vẫn chưa được
phát triển đầy đủ.
Trong thời đại phát triển hiện nay, vấn đề bảo mật và an ninh là một vấn đề cực kì
quan trọng và cần thiết trong cuộc sống, ta có thể thấy được hàng loạt các công nghệ có
liên quan và ảnh hưởng đến vấn đề này đang thúc đẩy đời sống phát triển mạnh mẽ. Từ
vấn đề an ninh của các cơ quan, trụ sở cho tới việc đảm bảo an toàn các thiết bị, nhà
cửa, công trình,…Điển hình như một thiết lập một hệ thống bảo vệ nhà cửa tránh sự
xâm nhập của người lạ cũng như vấn đề trộm cướp. Hệ thống đó có thể là một ổ khóa
thông minh được người dùng cài đặt mật khẩu là những con số, kí tự, hay bằng vân tay,
khuôn mặt,…
Nhận thấy đây là hướng phát triển mới và có tiềm năng ứng dụng cao, đồ án “Thiết
kế và chế tạo khóa thông minh nhận diện gương mặt” kết hợp với các biện pháp bảo
mật hiện có như nhận diện vân tay, thẻ từ và mật khẩu để tạo nên một hệ khóa bảo mật
đảm bảo an ninh.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 1
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
- Nhận diện được khuôn mặt người, nhận diện được vân tay, mở khóa được bằng
mật khẩu và RFID.
- Tìm hiểu cách thức vận hành của quá trình phát hiện và nhận dạng khuôn mặt.
- Nghiên cứu các vấn đề thực tiễn cần giải quyết, đề ra các phương án giải
quyết vấn đề khó khăn.
- Tìm hiểu cách thức vận hành, kết nối của ESP32 CAM và ESP32.
- Tìm hiểu về phần mềm Arduino IDE, cách viết code và cài đặt các thư viện
hỗ trợ.
- Các thiết bị kết nối: màn hình LCD 1602, cảm biến vân tay, RFID, keypad.
- Các phương pháp, thuật toán để phục vụ cho việc phát hiện và nhận diện
khuôn mặt người và vân tay
- Nghiên cứu các bộ thư viện phục vụ cho quá trình xử lý.
- Tìm hiểu và sử dụng cảm biến nhận dạng vân tay AS608, ESP32 CAM, ESP32,
RFID, Keypad, LCD 1602
- Nghiên cứu, tìm hiểu về nhận dạng khuôn mặt (Face Recognition) và phát hiện
khuôn mặt (Face Detection).
- Nghiên cứu cách gửi và nhận dữ liệu qua ứng dụng telegram.
Phương pháp nghiên cứu
- Sử dụng phương pháp luận để tìm hiểu, thu thập, phân tích, các tài liệu có liên
quan.
- Nghiên cứu các thành phần có trong khóa thông minh.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 2
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 3
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Với hiệu năng làm việc, độ tin cậy và tính ứng dụng cao, khóa thông minh dần
trở thành xu thế tất yếu trong cuộc sống hằng ngày của con người.
2.1.1. Lịch sử hình thành và phát triển của khóa cửa [14]
Để có được một bộ khóa cửa như hiện nay, khóa cửa đã trải qua nhiều giai đoạn
phát triển, có thể tóm lược qua các cột mốc sau:
Đây là những loại “khóa” đơn giản trong giai đoạn con người bắt đầu có ý thức
giữ gìn nhà cửa, tránh sự xâm nhập của kẻ gian. Khóa cửa dưới dạng then cài có kết cấu
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 4
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
khá đơn giản nhưng ngược lại cũng có tác dụng khá hữu hiệu trong việc đảm bảo an
ninh cho chủ nhà.
Bước phát triển hơn nữa, người ta đã biết sử dụng dây xích nối một đầu bên cửa
và một đầu cố định. (để giữ cửa khỏi mở ra bằng cách mấu điểm cuối của sợi dây với
một cái móc nằm ở mặt sau của cánh cửa).
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 5
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Là hình thức biến thể của then cài và dây xích. Đó là một thanh hình dẹp bằng
kim loại gắn nổi trên cánh cửa, để giữ cửa khỏi mở ra bằng cách chốt (cài) vào khung
bao của bộ cửa.
Những bộ khóa cửa đầu tiên ra đời rất đơn giản thường làm bằng gỗ ( loại tốt) với
hệ chìa chữ L rất đơn giản.
Khi các vật liệu bằng kim loại phát triển ổ khóa cửa chuyển qua làm bằng kim loại
rắt đa dạng về kiểu dáng, hoa văn, màu sắc, nhưng chung quy ta lại có thể phân biệt từng
giai đoạn của nó thông qua hệ chìa.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 6
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Ngày nay với những tiến bộ trong ngành kỹ thuật điện, điện tử… chúng ta còn thấy
những loại khóa không sử dụng những loại chìa truyền thống mà dùng các hình thức
khác để mở như thẻ từ, vân tay, mật khẩu,…
2.1.2. Tìm hiểu các loại khóa trên thị trường hiện nay
Trên thị trường hiện nay có rất nhiều loại khóa cửa, rất đa dạng về mẫu mã và
chủng loại đáp ứng các nhu cầu khác nhau của khách hàng:
- Khóa cơ
Gồm hai phần là ổ khóa và chìa khóa, làm bằng kim loại cứng và nhiều hình dạng.
Khóa được mở khi có chìa khóa với các mép răng trên mép khóa đúng với thứ tự các
chốt nhỏ trong ổ khóa nhằm nâng các chốt nhỏ đó lên gây mất tác dụng ổ khóa.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 7
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 8
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Loại khóa này sử dụng mật mã bằng số đã được lập trình, cài đặt từ trước để mở
khóa thay cho cách mở khóa bằng chìa thông thường.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 9
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
Nhiều công nghệ sinh trắc đã và đang được phát triển, một số chúng đang được sử
dụng trong các ứng dụng thực tế và phát huy hiệu quả cao. Các đặc trưng sinh trắc
thường được sử dụng là vân tay, gương mặt, mống mắt, tiếng nói. Mỗi đặc trưng sinh
trắc có điểm mạnh và điểm yếu riêng, nên việc sử dụng đặc trưng sinh trắc cụ thể là tùy
thuộc vào yêu cầu của mỗi ứng dụng nhất định. Các đặc trưng sinh trắc có thể được so
sánh dựa vào các yếu tố sau: tính phổ biến, tính phân biệt, tính ổn định, tính thu thập,
hiệu quả, tính chấp nhận. Trong yêu cầu về bảo mật và tìm kiếm, tính phân biệt (hai
người khác nhau thì đặc trưng sinh trắc này phải khác nhau) và ổn định (đặc trưng sinh
trắc này không thay đổi theo từng giai đoạn thời gian tương ứng với hạng mục đối sánh
nhất định) được quan tâm nhiều hơn cả. Vân tay đã được biết tới với tính phân biệt (tính
chất cá nhân) và ổn định theo thời gian cao nhất, vì vậy nó là đặc trưng sinh trắc được
sử dụng rộng rãi nhất. Nhận dạng sinh trắc đề cập đến việc sử dụng các đặc tính hành vi
và thể chất (ví dụ: vân tay, gương mặt, chữ kí…) có tính chất khác biệt để nhận dạng
một người một cách tự động. Nhận dạng vân tay và nhận dạng khuôn mặt được xem là
một trong những kỹ thuật nhận dạng hoàn thiện và đáng tin cậy nhất. Trong các tổ chức,
cơ quan an ninh, quân sự, hành chính, khoa học… luôn có nhu cầu kiểm tra và trả lời
các câu hỏi: “người này có phải là đối tượng đó hay không?”, “người này có được quyền
truy cập và sử dụng thiết bị đó?”, “người này có được biết những thông tin đó?”…
Phương pháp dựa vào thẻ bài truyền thống (ví dụ dùng chìa khóa…), phương pháp dựa
vào trí thức (ví dụ dùng mật khẩu và PIN – Personal Identification Number) đã được sử
dụng phổ biến nhưng thực tế đã chứng minh là không hiệu quả vì tính an toàn không cao
. Người ta nhận thấy các đặc trưng sinh trắc không thể dễ dàng bị thay thế, chia sẻ hay
giả mạo.., chúng được xem là đáng tin cậy hơn trong nhận dạng một người so với các
phương pháp trên. Vân tay và khuôn mặt là những đặc điểm khá đặc biệt của con người
bởi vì tính đa dạng của nó, mỗi người sở hữu một dấu vân tay và khuôn mặt khác nhau.
Chưa có thông tin trường hợp mà có những người cùng dấu vân tay và khuôn mặt trùng
nhau. Bằng việc sử dụng vân tay và khuôn mặt, việc xác nhận một người có thể được
thực hiện bằng một hệ thống nhận dạng vân tay và khuôn mặt hoàn toàn an toàn.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 10
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Theo thống kê, mật khẩu hiện nay đã có nhiều phương pháp bị tấn công và bị kẻ
gian đánh cắp khá dễ dàng. Đây là vấn đề khiến cho người dùng cảm thấy đau đầu. Nếu
đặt mật khẩu quá dài và phức tạp sẽ khiến người dùng khó nhớ, đặt mật khẩu ngắn lại
dễ bị các hacker đánh cắp, chiếm đoạt tài sản của người dùng. Do vậy, giải pháp xác
thực sinh trắc học đang được người dùng hướng đến và sẽ phát triển mạnh mẽ ngay trong
tương lai gần.
Hình 2.1: Sơ đồ khối logic chính của hệ thống sinh trắc học [26]
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 11
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 12
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
đông đúc. Các nhân viên ở New York đã sử dụng công nghệ này để bắt giữ một nghi
can trong vụ hỏa hoạn.
Ngoài ra, các sĩ quan cảnh sát Trung Quốc tại đường sắt cao tốc Zhengzhou East
ở thủ phủ tỉnh Hà Nam cũng đang sử dụng công nghệ này để giúp xác định các nghi
phạm. Hệ thống của họ sử dụng thiết bị di động được kết nối với máy ảnh, được gắn
trên một cặp kính râm.
Quét khuôn mặt để mở khóa điện thoại “Mở khóa bằng khuôn mặt” là tính năng
cho phép mở khóa điện thoại thông minh, cụ thể ở đây là Android bằng cách sử dụng
“bản thiết kế”, tức là bản đồ cấu trúc độc đáo của khuôn mặt. Vào tháng 6/2018, theo
eWeek.com, Google đã cấp bằng sáng chế một công nghệ có thể biến những biểu cảm
trên khuôn mặt như một cái nháy mắt, một nụ cười,… thành một mã để mở khóa các
thiết bị. Hi vọng điều này sẽ khó khăn hơn để giả mạo.
Hỗ trợ trong việc thanh toán vào tháng 7/2018, một công ty Phần Lan, Uniqul đã
tạo ra một hệ thống có thể thanh toán tiền thông qua nhận dạng khuôn mặt. Tại một cửa
hàng, thay vì thanh toán bằng tiền mặt hoặc thẻ tín dụng, chỉ cần đưa ra một biểu cảm
cho máy quét để mua hàng. Một bài báo của Huffington Post mô tả công nghệ mới này,
họ đã sử dụng nhận dạng khuôn mặt làm phương pháp bảo mật chính.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 13
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Có hai phương pháp nhận dạng khuôn mặt đó là nhận dạng truyền thống (2D) và
nhận dạng 3D:
2.3.1. Nhận dạng truyền thống.
Một số thuật toán nhận dạng khuôn mặt xác định các đặc điểm khuôn mặt bằng
cách trích xuất các ranh giới, hoặc đặc điểm, từ một hình ảnh khuôn mặt của đối tượng.
Ví dụ, một thuật toán có thể phân tích các vị trí tương đối, kích thước, và/hoặc hình dạng
của mắt, mũi, gò má, và cằm. Những tính năng này sau đó được sử dụng để tìm kiếm
các hình ảnh khác với các tính năng phù hợp. Các thuật toán bình thường hóa một bộ
sưu tập các hình ảnh khuôn mặt và sau đó nén dữ liệu khuôn mặt, chỉ lưu dữ liệu hình
ảnh nào là hữu ích cho việc nhận dạng khuôn mặt. Một hình ảnh mẫu sau đó được so
sánh với các dữ liệu khuôn mặt. Một trong những hệ thống thành công sớm nhất dựa
trên các kỹ thuật phù hợp với mẫu áp dụng cho một tập hợp các đặc điểm khuôn mặt nổi
bật, cung cấp một dạng đại diện của khuôn mặt được nén.
Các thuật toán nhận dạng có thể được chia thành hai hướng chính, là hình học, đó
là nhìn vào tính năng phân biệt, hoặc trắc quang (đo sáng), là sử dụng phương pháp
thống kê để 'chưng cất' một hình ảnh thành những giá trị và so sánh các giá trị với các
mẫu để loại bỏ chênh lệch.
Các thuật toán nhận dạng phổ biến bao gồm Principal Component Analysis (Phép
phân tích thành phần chính) sử dụng các khuôn mặt riêng, Linear Discriminate
Analysis (Phân tích biệt tuyến tính), Elastic Bunch Graph Matching sử dụng thuật toán
Fisherface, các mô hình Markov ẩn, Multilinear Subspace Learning (Luyện nhớ không
gian con đa tuyến) sử dụng đại diện cơ căng, và theo dõi liên kết động thần kinh.
Một lợi thế của nhận dạng khuôn mặt 3D là nó không bị ảnh hưởng bởi những thay
đổi trong ánh sáng như các kỹ thuật khác. Nó cũng có thể xác định một khuôn mặt từ
một loạt các góc nhìn, trong đó có góc nhìn nghiêng. Các điểm dữ liệu ba chiều từ một
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 14
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
khuôn mặt cải thiện lớn độ chính xác cho nhận dạng khuôn mặt. Nghiên cứu 3D được
tăng cường bởi sự phát triển của các bộ cảm biến tinh vi giúp nắm bắt hình ảnh chụp
khuôn mặt 3D được tốt hơn. Các cảm biến hoạt động bằng cách chiếu ánh sáng có cấu
trúc lên gương mặt. Hàng chục hoặc nhiều hơn nữa các bộ cảm biến hình ảnh này có thể
được đặt lên trên cùng một con chip CMOS-mỗi cảm biến sẽ thu một phần khác nhau
của hình ảnh.
Ngay cả một kỹ thuật 3D hoàn hảo cũng có thể gặp khó khăn bởi các sắc thái biểu
cảm trên gương mặt. Để đạt được mục tiêu đó một nhóm tại Technion (viện công nghệ
Israel tại Haifa) đã áp dụng các công cụ từ hình học metric để giải quyết các biểu lộ cảm
xúc như phép đẳng cự. Một công ty có tên Vision Access tạo ra một giải pháp vững chắc
cho nhận dạng khuôn mặt 3D. Công ty này sau đó đã được mua lại bởi công ty truy cập
sinh trắc học Bioscrypt Inc. Công ty đã phát triển một phiên bản được gọi là 3D FastPass.
Trong lĩnh vực quản lý nhân sự, phương pháp nhận dạng vân tay còn hỗ trợ đắc
lực cho việc quản lý và chấm công tại các nhà máy, xí nghiệp, công ty bằng máy các
máy chấm công vân tay. Tuy nhiên, phổ biến nhất có lẽ là dấu vân tay của chúng ta qua
mặt sau của chứng minh thư để xác định một cách nhanh nhất các đặc điểm, hồ sơ của
một công dân đã được lưu trong cơ sở dữ liệu.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 15
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Xử lý ảnh là đối tượng nghiên cứu của lĩnh vực thị giác máy, là quá trình biến đổi
từ một ảnh ban đầu sang một ảnh mới với các đặc tính và tuân theo ý muốn của người
sử dụng. Xử lý ảnh có thể gồm quá trình phân tích, phân lớp các đối tượng, làm tăng
chất lượng, phân đoạn và tách cạnh, gán nhãn cho vùng hay quá trình biên dịch các
thông tin hình ảnh của ảnh.
Cũng như xử lý dữ liệu bằng đồ hoạ, xử lý ảnh số là một lĩnh vực của tin học ứng
dụng. Xử lý dữ liệu bằng đồ họa đề cập đến những ảnh nhân tạo, các ảnh này được xem
xét như là một cấu trúc dữ liệu và được tạo bởi các chương trình. Xử lý ảnh số bao gồm
các phương pháp và kỹ thuật biến đổi, để truyền tải hoặc mã hoá các ảnh tự nhiên. Mục
đích của xử lý ảnh gồm:
- Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh.
Nhận biết và đánh giá các nội dung của ảnh là sự phân tích một hình ảnh thành
những phần có ý nghĩa để phân biệt đối tượng này với đối tượng khác, dựa vào đó ta có
thể mô tả cấu trúc của hình ảnh ban đầu. Có thể liệt kê một số phương pháp nhận dạng
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 16
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
cơ bản như nhận dạng ảnh của các đối tượng trên ảnh, tách cạnh, phân đoạn hình ảnh,…
Kỹ thuật này được dùng nhiều trong y học (xử lý tế bào, nhiễm sắc thể), nhận dạng chữ
trong văn bản.
RFID (Radio Frequency Identification) là công nghệ nhận dạng đối tượng bằng
sóng vô tuyến. Công nghệ này cho phép nhận biết các đối tượng thông qua hệ thống thu
phát sóng radio, từ đó có thể giám sát, quản lý hoặc lưu vết từng đối tượng. Một hệ thống
RFID thường bao gồm 2 thành phần chính là thẻ tag (chip RFID chứa thông tin) và đầu
đọc (reader) đọc các thông tin trên chip.
Điểm cộng của công nghệ RFID là có thể đọc được dữ liệu qua đường dẫn vô tuyến
ở khoảng cách từ 50cm – 10m – một con số cực kỳ ấn tượng. Khác với những mã vạch
thông thường, RFID không sử dụng tia sáng và tiếp xúc vật thể trực tiếp.
Thậm chí, RFID còn đọc dữ liệu xuyên qua các vật liệu như: bê tông, tảng băng,
đá, sơn,…, trong điều kiện khắc nghiệt. Đây là một lợi thế của RFID mà không thể tìm
thấy ở bất kỳ công nghệ hoặc mã vạch nào.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 17
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Đầu đọc thẻ sẽ phát ra sóng điện từ ở một tần số nhất định rồi truyền qua thiết bị
phát mã (Antenne) đến thẻ RFID trong vùng hoạt động. Khi ấy, thẻ RFID sẽ thu nhận
tần số đó và phát lại cho hệ thống RFID biết mã số của mình. Lúc này, đầu đọc sẽ biết
được thẻ nào đang hoạt động trong vùng sóng điện từ.
Trong quá trình hoạt động, hệ thống RFID sẽ kích hoạt một số tính năng hữu ích
như:
- Thẻ có thể mang mã của một sản phẩm duy nhất hoặc được tiêu chuẩn hóa.
- Tính năng bảo mật cao, khó sao chép hoặc giả mạo.
2.7. Giới thiệu phần mềm
2.7.1. Arduino IDE [6]
Arduino IDE là phần mềm mã nguồn mở trọng điểm được sử dụng để viết và biên
dịch mã vào module Arduino.
Môi trường lập trình Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện
nay là Windows, Macintosh OSX và Linux. Do có tính chất nguồn mở nên môi trường
lập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 18
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++. Và do ngôn
ngữ lập trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùng hoàn toàn có
thể nhúng thêm code viết bằng AVR C vào chương trình nếu muốn.
Hình 2.7: Giao diện khởi tạo phần mềm Arduino IDE
Arduino IDE có một bố cục và giao diện đơn giản, dễ dàng để sử dụng giúp người
sử dụng thuận tiện hơn trong thực hành các bước. Phía dưới là một số công dụng thường
sử dụng:
- Nút kiểm duyệt chương trình (Verify): giúp dò lỗi phần code định truyền xuống
bo mạch Arduino.
- Nút tải đoạn code vào bo mạch Arduino (Upload): giúp nhập đoạn code vào bo
mạch Arduino.
Telegram Messenger là dịch vụ nhắn tin nhanh và thoại qua IP dựa trên đám
mây. Bạn có thể dễ dàng cài đặt nó trong điện thoại thông minh (Android và iPhone)
hoặc máy tính (PC, Mac và Linux). Nó miễn phí và không có bất kỳ quảng cáo
nào. Telegram cho phép bạn tạo các bot mà bạn có thể tương tác.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 19
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Bot là các ứng dụng của bên thứ ba chạy bên trong Telegram. Người dùng có thể
tương tác với bot bằng cách gửi cho chúng tin nhắn, lệnh và yêu cầu nội tuyến. Bạn
kiểm soát các bot của mình bằng cách sử dụng các yêu cầu HTTPS tới Telegram Bot
API .
ESP32-CAM và ESP32 sẽ tương tác với bot Telegram để nhận và xử lý tin nhắn
cũng như gửi phản hồi.
Đầu tiên truy cập vào Google Play hoặc AppStore để tải xuống và cài đặt Telegram.
Mở Telegram và làm theo các bước tiếp theo để tạo Telegram Bot. Đầu tiên, tìm
kiếm “ botfather ” và nhấp vào BotFather.
Cửa sổ sau sẽ mở ra và bạn sẽ được nhắc nhấp vào nút start.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 20
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Nhập /newbot và làm theo hướng dẫn để tạo bot mới. Đặt tên và tên người dùng.
Nếu bot được tạo thành công, bạn sẽ nhận được một thông báo có liên kết để truy
cập vào bot và mã token. Lưu mã token vì bạn sẽ cần nó để ESP32 có thể tương tác với
bot.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 21
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Bất kỳ ai biết tên username bot của bạn đều có thể tương tác với nó. Để đảm bảo
rằng chúng tôi bỏ qua các tin nhắn không phải từ tài khoản Telegram của chúng tôi (hoặc
bất kỳ người dùng được ủy quyền nào), bạn có thể lấy ID người dùng Telegram của
mình. Sau đó, khi bot telegram của bạn nhận được tin nhắn, ESP có thể kiểm tra xem
ID người gửi có tương ứng với ID người dùng của bạn hay không và xử lý hoặc bỏ qua
tin nhắn đó.
Trong tài khoản Telegram của bạn, hãy tìm kiếm “IDBot”
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 22
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Bắt đầu cuộc trò chuyện với bot đó và gõ /getid. Bạn sẽ nhận được phản hồi với
user ID của mình.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 23
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 24
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 25
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Điểm tốt về ESP32, giống như ESP8266 là các thành phần RF tích hợp của nó như
bộ khuếch đại công suất, bộ khuếch đại nhận tiếng ồn thấp, công tắc ăng-ten, bộ lọc và
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 26
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Balun RF. Điều này làm cho việc thiết kế phần cứng xung quanh ESP32 rất dễ dàng vì
bạn cần rất ít thành phần bên ngoài.
Một điều quan trọng khác cần biết về ESP32 là nó được sản xuất bằng công nghệ
40 nm công suất cực thấp của TSMC. Vì vậy, việc thiết kế các ứng dụng hoạt động bằng
pin như thiết bị đeo, thiết bị âm thanh, đồng hồ thông minh, ..., sử dụng ESP32 sẽ rất dễ
dàng.
8 bit DAC,ADC,I2C,UART,SPI,I2S,
Các cổng giao tiếp
Slave,IR, CAN bus2.0,PWM,SDIO,GPIO
Wi-Fi: 802.11 b/g/n/e/i
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 27
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Cảm biến nhận dạng vân tay AS608 có khả năng lưu nhiều vân tay cho 1 ID
(1 người), thích hợp cho các ứng dụng bảo mật, khóa cửa, sinh trắc học,...
Hình 2.18. Cảm biến nhận dạng vân tay AS608 [13]
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 28
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Mức độ an toàn 5
Trên thị trường chúng ta có 2 loại module rơ-le: module rơ-le đóng ở mức thấp (nối
cực âm vào chân tín hiệu rơ-le sẽ đóng), module rơ-le đóng ở mức cao (nối cực dương
vào chân tín hiệu rơ-le sẽ đóng). Nếu so sánh giữa 2 module rơ-le có cùng thông số kỹ
thuật thì hầu hết mọi linh kiện của nó đều giống nhau, chỉ khác nhau ở chỗ cái transitor
của mỗi module. Chính vì cái transistor này nên mới sinh ra 2 loại module rơ-le (có 2
loại transistor là NPN - kích ở mức cao, và PNP - kích ở mức thấp).
Rơ-le bình thường gồm có 6 chân. Trong đó có 3 chân để kích, 3 chân còn lại nối
với đồ dùng điện công suất cao.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 29
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
- Chân +: cấp hiệu điện thế kích tối ưu vào chân này.
- Chân -: nối với cực âm.
- Chân S: chân tín hiệu, tùy vào loại module rơ-le mà nó sẽ làm nhiệm vụ kích rơ-
le.
Nếu bạn đang dùng module rơ-le kích ở mức cao và chân S bạn cấp điện thế dương
vào thì module rơ-le của bạn sẽ được kích, ngược lại thì không.
Tương tự với module rơ-le kích ở mức thấp.
Ba chân còn lại nối với đồ dùng điện công suất cao:
- COM: chân nối với 1 chân bất kỳ của đồ dùng điện, nhưng mình khuyên bạn nên
mắc vào đây chân lửa (nóng) nếu dùng hiệu điện thế xoay chiều và cực dương
nếu là hiệu điện một chiều.
- ON hoặc NO: chân này bạn sẽ nối với chân lửa (nóng) nếu dùng điện xoay chiều
và cực dương của nguồn nếu dòng điện một chiều.
- OFF hoặc NC: chân này bạn sẽ nối chân lạnh (trung hòa) nếu dùng điện xoay
chiều và cực âm của nguồn nếu dùng điện một chiều.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 30
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 31
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 32
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
phím còn tích hợp vị trí để lắp thêm tụ chống dội (chống nhiễu), phù hợp cho các ứng
dụng điều khiển bằng phím bấm.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 33
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
IC chính XL6009
Tần số 400Khz
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 34
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Nguồn ra 1V – 30V
Dòng ra 3A
Màn hình LCD sử dụng driver HD44780, có khả năng hiển thị 2 dòng với mỗi
dòng 16 ký tự, màn hình có độ bền cao, rất phổ biến, nhiều code mẫu và dễ dàng sử
dụng hơn nếu đi kèm mạch chuyển tiếp I2C.
b. Module I2C
LCD có quá nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều
chân trên vi điều khiển. Module I2C LCD ra đời và giải quyết vấn để này.
Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16x2 (RS, EN, D7, D6,
D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối.
Module I2C hỗ trợ các loại LCD sử dụng driver HD44780 (LCD 16x2, LCD 20x4,
...) và tương thích với hầu hết các vi điều khiển hiện nay.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 35
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 36
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 37
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
- Nguồn sử dụng cho khóa sẽ là nguồn cấp bằng pin 18650 qua module tăng áp
XL6009 để tăng lên điện áp 12V.
ESP32 CAM: Dùng để thu thập hình ảnh và thực hiện xử lý so sánh với hình
ảnh đã đăng kí trong hệ thống.
ESP32: Dùng để nhận, xử lý và truyền dữ liệu và điều khiển thiết bị.
Cảm biến vân tay, RFID, bàn phím: Thu thập dữ liệu cho ESP32.
Khóa điện: Nhận tín hiệu từ ESP32 CAM và ESP32 để đóng/mở.
Khối hiển thị: Hiển thị dữ liệu từ ESP32 CAM và ESP32 gồm LCD, ứng dụng
telegram.
ESP32 CAM có chức năng nhận dạng hình ảnh đưa vào , xử lý hình ảnh, điều
khiển khóa và gửi cảnh báo hình ảnh về ứng dụng telegram.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 38
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Khi bắt đầu cấp nguồn camera của ESP32 CAM sẽ thu thập hình ảnh và xử lý để
xác định đối tượng có phải là khuôn mặt không, nếu đối tượng là khuôn mặt thì sẽ tiến
hành kiểm tra mẫu đối tượng đã đăng kí nếu đúng thì tiến hành mở khóa ngược lại nếu
sai sẽ gửi hình ảnh cảnh báo về ứng dụng.
3.2.2. ESP32
Module ESP32 có chức năng nhận các dữ liệu đưa vào từ cảm biến vân tay, RFID,
bàn phím, điều khiển các thiết bị như khóa điện, hiển thị LCD và gửi cảnh báo về ứng
dụng.
- Sơ đồ nguyên lý ESP32
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 39
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 40
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Khi cấp nguồn cho mạch các thiết bị cảm biến vân tay, RFID, bàn phím sẽ nhận
dữ liệu và truyền cho ESP32 , ESP32 có chức năng xử lý các dữ liệu nhận vào nếu đúng
dữ liệu sẽ hiển thị thông tin qua LCD, điều khiển khóa điện mở và gửi tin nhắn về ứng
dụng ngược lại nếu sai sẽ gửi tin nhắn cảnh báo về ứng dụng.
3.2.3. Nguồn
- Nguồn của mạch:
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 41
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Hình 4.1 là sơ đồ đi dây mặt dưới của mạch điều khiển chính được vẽ bằng phần
mềm Proteus dựa trên sơ đồ nguyên lý.
4.1.2. Mạch in 3D
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 42
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 43
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 44
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Để đăng kí mẩu khuôn mặt nhóm sử dụng giao diện web để lưu khuôn mặt vào hệ
thống. Muốn sử dụng giao diện web cần phải có địa chỉ IP của ESP32 CAM. Kết nối
ESP32 CAM với máy tính và vào Arduino mở Serial moniter để lấy địa chỉ IP.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 45
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 46
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 47
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Kết quả:
- Thiết kế và chế tạo thành công khóa thông minh nhận diện bằng khuôn mặt.
- Mở được khóa bằng vân tay, thẻ từ và mật khẩu.
- Cảnh báo khi sai mật khẩu qua ứng dụng telegram.
Nhận xét:
Qua quá trình nghiên cứu và thi công thì nhóm em tuy đã hoàn thành nhưng vẫn
còn nhiều thiếu xót như chưa thể giao tiếp ESP32 CAM với ESP32, dữ liệu ESP32 CAM
gửi cho telegram còn chậm khi ESP32 CAM phải xử lý nhiều công việc.
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 48
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
Hạn chế:
- Hệ thống còn yếu trong nhận dạng ảnh động.
- Khả năng bảo mật yếu vì chỉ cần một tấm ảnh có thể qua mắt được hệ thống.
- Hoạt động chưa hoàn toàn hiệu quả với mắt kính thường nơi có ánh sáng chiếu.
- Do là module giá thành rẻ nên xử lý dữ liệu còn chậm.
Hướng phát triển sản phẩm:
- Đề tài này hướng phát triển khá rõ ràng, nâng cao khả năng nhận diện sẻ đảm
bảo được được độ an toàn cao nhất có thể.
- Nâng cao bảo mật bằng công nghệ mới, sử dụng camera 3D là phương án tốt
nhất để hạn chế về vấn đề bảo mật .
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 49
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
[1] arduino.vn/bai-viet/1107-gioi-thieu-ve-module-lm2596-giai-thuong-tuan-4
[2] arduinokit.vn/giao-tiep-i2c-lcd-
arduino/?fbclid=IwAR3cyWDTczYFLDHYrYnFXfHaMCWq1-
qEObkxlv9su_HsP4UG4T2_aC2zqmk
[3] arduino.vn/bai-viet/915-huong-dan-su-dung-module-ban-phim-4x4-voi-arduino
[4] bloglaptrinh.info/dieu-khien-esp32-esp8266-qua-telegram/
[5] cyberlotus.com/xac-thuc-sinh-trac-hoc-xu-huong-tat-yeu-trong-tuong-lai-
gan.html
[6] dientutuonglai.com/arduino-ide-la-gi.html
[7] dienmayxanh.com/kinh-nghiem-hay/nguyen-ly-hoat-dong-cua-o-khoa-1287074
[8] esp32.vn/idf/i2c.html#:~:text=I2C%20l%C3%A0%20giao%20th%E1%BB%A
9c%20truy%E1%BB%81n,v%C3%A0%20SDA%20(Serial%20Data).
[9] hshop.vn/products/kit-rf-thu-phat-wifi-ble-esp32-cam
[10] hshop.vn/products/mach-tang-op-dc-xl6009
[11] haphan.com/News/17500/tong-quan-cong-nghe-rfid-trong-thoi-dai-4-0
[12] hshop.vn/products/khoa-chot-dien-solenoid-lock-ly-03
[13] hshop.vn/products/cam-bien-nhan-dang-van-tay-as608-fingerprint-sensor
[14] himart.vn/tin-tuc/lich-su-phat-trien-cua-khoa-cua/227.html
[15] khoingo.net/so-sanh-face-recognition-va-face-detection/
[16] lib.hpu.edu.vn/bitstream/handle/123456789/18117/51_NguyenTienManh_CT1
001.pdf
[17] medium.datadriveninvestor.com/face-recognition-from-scratch-using-opencv-
and-python-part-1-c61e13e553dc
[18] mialock.com/cong-nghe-nhan-dien-van-tay-live-scan-
13804.html?fbclid=IwAR0ibehzNQD8LCZTK44bRc1mRMkI4MK492mR7SHb22Lg
onAfRvHbRLlPW14
[19] nshopvn.com/product/mach-chuyen-usb-uart-ttl-ft232rl/
[20] nshopvn.com/blog/gioi-thieu-mach-thu-phat-wifi-ble-esp32-cam-ai-thinker-
huong-dan-su-dung-voi-arduino-thuc-hanh-lam-bo-mo-khoa-cua-nhan-dien-khuon-
mat-bang-esp32-cam/
[21] nshopvn.com/product/kit-rf-thu-phat-wifi-bluetooth-esp32/
[22] ohtech.vn/all-courses/lap-trinh-esp32-cam-voi-arduino-ide/lessons/stream-
video-va-nhan-dien-khuon-mat-voi-esp32-cam-va-arduino-ide/
[23] plctech.com.vn/relay-la-gi/
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 50
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
[24] tino.org/vi/rfid-la-gi/
[25] vi.wikipedia.org/wiki/H%E1%BB%87_th%E1%BB%91ng_nh%E1%BA%AD
n_d%E1%BA%A1ng_khu%C3%B4n_m%E1%BA%B7t#:~:text=H%E1%BB%87%2
0th%E1%BB%91ng%20nh%E1%BA%ADn%20d%E1%BA%A1ng%20khu%C3%B4
n%20m%E1%BA%B7t%20l%C3%A0%20m%E1%BB%99t%20%E1%BB%A9ng%2
0d%E1%BB%A5ng,d%E1%BB%AF%20li%E1%BB%87u%20v%E1%BB%81%20k
hu%C3%B4n%20m%E1%BA%B7t.
[26] vi.wikipedia.org/wiki/Sinh_tr%E1%BA%AFc_h%E1%BB%8Dc
Sinh viên thực hiện: Tưởng Thanh Phúc- Nguyễn Thanh Huy Người hướng dẫn: Ths. Trần Duy Chung 51
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
PHỤ LỤC
#define CAMERA_MODEL_AI_THINKER
#define Green 2
#include "camera_pins.h"
String token = "5541295927:AAHafYPAFow73Su78k5wknkM72SMeMG_CR8";
String CHAT_ID = "5286348623";
const char* ssid = "NOM"; //Wifi Name SSID
const char* password = "12345678"; //WIFI Password
WiFiClientSecure clientTCP;
UniversalTelegramBot bot(token, clientTCP);
void startCameraServer();
int matchFace = 0;
boolean activateRelay = false;
long prevMillis=0;
int interval = 5000;
}
void setup() {
pinMode(Green,OUTPUT);
Serial.begin(115200);
Serial.setDebugOutput(true);
Serial.println();
camera_config_t config;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = Y2_GPIO_NUM;
Phụ lục
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
config.pin_d1 = Y3_GPIO_NUM;
config.pin_d2 = Y4_GPIO_NUM;
config.pin_d3 = Y5_GPIO_NUM;
config.pin_d4 = Y6_GPIO_NUM;
config.pin_d5 = Y7_GPIO_NUM;
config.pin_d6 = Y8_GPIO_NUM;
config.pin_d7 = Y9_GPIO_NUM;
config.pin_xclk = XCLK_GPIO_NUM;
config.pin_pclk = PCLK_GPIO_NUM;
config.pin_vsync = VSYNC_GPIO_NUM;
config.pin_href = HREF_GPIO_NUM;
config.pin_sscb_sda = SIOD_GPIO_NUM;
config.pin_sscb_scl = SIOC_GPIO_NUM;
config.pin_pwdn = PWDN_GPIO_NUM;
config.pin_reset = RESET_GPIO_NUM;
config.xclk_freq_hz = 20000000;
config.pixel_format = PIXFORMAT_JPEG;
if(psramFound()){
config.frame_size = FRAMESIZE_UXGA;
config.jpeg_quality = 10;
config.fb_count = 2;
} else {
config.frame_size = FRAMESIZE_SVGA;
config.jpeg_quality = 12;
config.fb_count = 1;
}
#if defined(CAMERA_MODEL_ESP_EYE)
pinMode(13, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
#endif
sensor_t * s = esp_camera_sensor_get();
if (s->id.PID == OV3660_PID) {
s->set_vflip(s, 1);//flip it back
s->set_brightness(s, 1);//up the blightness just a bit
s->set_saturation(s, -2);//lower the saturation
}
s->set_framesize(s, FRAMESIZE_QVGA);
Phụ lục
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
#if defined(CAMERA_MODEL_M5STACK_WIDE)
s->set_vflip(s, 1);
s->set_hmirror(s, 1);
#endif
WiFi.begin(ssid, password);
startCameraServer();
void loop() {
if (sendPhoto) {
Serial.println("Preparing photo");
alerts2Telegram(token, CHAT_ID);
sendPhoto = false;
}
if (millis() > lastTimeBotRan + botRequestDelay) {
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while (numNewMessages) {
Serial.println("got response");
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
lastTimeBotRan = millis();
}
if(matchFace==2)
{
alerts2Telegram(token, CHAT_ID);
}
if(matchFace==1)
{
digitalWrite(Green,HIGH);
delay(2000);
Phụ lục
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
matchFace=0;
}
else
{
digitalWrite(Green,LOW);
matchFace=0;
}
}
String alerts2Telegram(String token, String chat_id)
{
const char* myDomain = "api.telegram.org";
String getAll="", getBody = "";
camera_fb_t * fb = NULL;
fb = esp_camera_fb_get();
if(!fb)
{
Serial.println("Camera capture failed");
delay(1000);
ESP.restart();
return "Camera capture failed";
}
WiFiClientSecure client_tcp;
if (client_tcp.connect(myDomain, 443))
{
Serial.println("Connected to " + String(myDomain));
Phụ lục
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
if (n+1024<fbLen)
{
client_tcp.write(fbBuf, 1024);
fbBuf += 1024;
}
else if (fbLen%1024>0)
{
size_t remainder = fbLen%1024;
client_tcp.write(fbBuf, remainder);
}
}
client_tcp.print(tail);
esp_camera_fb_return(fb);
Phụ lục
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
}
client_tcp.stop();
Serial.println(getBody);
}
else {
getBody = "Connection to telegram failed.";
Serial.println("Connection to telegram failed.");
}
delay(5000);
matchFace=0;
return getBody;
}
Code ESP32:
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <Keypad.h>
#include <SPI.h>
#include <MFRC522.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Adafruit_Fingerprint.h>
#define ROW_NUM 4
#define COLUMN_NUM 4
#define RST_PIN 13
#define SS_PIN 12
#define MODEM_RX 16
#define MODEM_TX 17
#define mySerial Serial2 // use for ESP32
#define WIFI_SSID "NOM"
#define WIFI_PASSWORD "12345678"
#define BOT_TOKEN
"5541295927:AAHafYPAFow73Su78k5wknkM72SMeMG_CR8"
#define CHAT_ID "5286348623"
LiquidCrystal_I2C lcd(0x27,20,4);
MFRC522 mfrc522(SS_PIN, RST_PIN);
const unsigned long BOT_MTBS = 1000;
char keys[ROW_NUM][COLUMN_NUM] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pin_rows[ROW_NUM] = {4, 15, 32, 33};
byte pin_column[COLUMN_NUM] = {25, 26, 27, 14};
Phụ lục
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
WiFiClientSecure secured_client;
UniversalTelegramBot bot(BOT_TOKEN, secured_client);
unsigned long bot_lasttime; // last time messages' scan has been done
void handleNewMessages(int numNewMessages)
{
Serial.print("handleNewMessages ");
Serial.println(numNewMessages);
for (int i = 0; i < numNewMessages; i++)
{
String chat_id = String(bot.messages[i].chat_id);
if (chat_id != CHAT_ID )
{
bot.sendMessage(chat_id, "Unauthorized user", "");
}
else
{
String text = bot.messages[i].text;
if (text == "/mocua")
{
digitalWrite(LED_BUILTIN, 1);
ledStatus = 1;
lcd.setCursor(0,1);
lcd.print(" Moi Vao");
bot.sendMessage(chat_id, "Da Mo Cua", "");
delay(2000);
digitalWrite(LED_BUILTIN, 0);
lcd.clear();
bt=0;
Phụ lục
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
l=4;
}
}
}
}
void setup() {
Serial.begin(9600);
//input_password.reserve(32);
while (!Serial);
SPI.begin();
mfrc522.PCD_Init();
Serial.print(WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
secured_client.setCACert(TELEGRAM_CERTIFICATE_ROOT);
for (byte i = 0; i < 6; i++) {
key.keyByte[i] = 0xFF;
}
lcd.init();
lcd.init();
lcd.backlight();
pinMode(LED_BUILTIN, OUTPUT);
finger.begin(57600);
delay(5);
if (finger.verifyPassword()) {
} else {
while (1) { delay(1); }
}
finger.getTemplateCount();
}
void loop() {
if (millis() - bot_lasttime > BOT_MTBS)
{
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while (numNewMessages)
{
Serial.println("got response");
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
bot_lasttime = millis();
}
if(bt==0)
{
lcd.setCursor(3,0);
lcd.print("Truong SPKT!");
Phụ lục
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
}
else
{
lcd.setCursor(1,0);
lcd.print("Vui Long Nhap MK");
lcd.setCursor(1,1);
lcd.print("MK:");
}
getFingerprintIDez();
delay(50); .
/////////////////////////////////////////////////////////////////////////////////////
char keypadd = keypad.getKey();
if (keypadd) {
bt=1;
lcd.setCursor(l,1);
lcd.print(keypadd);
if (keypadd == '*') {
input_password = "";
} else if (keypadd == '#') {
if (password == input_password) {
lcd.setCursor(0,1);
lcd.print("MK dung moi vao");
bot.sendMessage(CHAT_ID, "Da Mo Cua Bang Mat Khau ", "");
digitalWrite(LED_BUILTIN, 1);
delay(2000);
digitalWrite(LED_BUILTIN, 0);
lcd.clear();
bt=0;
l=4;
} else {
lcd.setCursor(0,1);
lcd.print("MK sai thu lai");
bot.sendMessage(CHAT_ID, "Nhap Mat Khau Sai ", "");
delay(2000);
lcd.clear();
bt=0;
l=4;
}
input_password = "";
} else {
input_password += keypadd;
l=l+1;
delay(50);
}
}
else
Phụ lục
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
{
String content="";
byte letter;
if(!mfrc522.PICC_IsNewCardPresent())
{
return;
}
if(!mfrc522.PICC_ReadCardSerial())
{
return;
}
for(byte i=0;i<mfrc522.uid.size;i++)
Phụ lục
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK) return -1;
digitalWrite(LED_BUILTIN, 1);
lcd.clear();
lcd.setCursor(4,0);
lcd.print("Van Tay");
lcd.setCursor(3,1);
lcd.print("Chinh Xac");
bot.sendMessage(CHAT_ID, "Mo Cua Bang Van tay", "");
delay(2000);
lcd.clear();
digitalWrite(LED_BUILTIN, 0);
return finger.fingerID; // relay control
}
Phụ lục