You are on page 1of 81

TÊN ĐỀ TÀI : Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt

ĐẠ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:

THIẾT KẾ VÀ CHẾ TẠO KHÓA THÔNG MINH NHẬN DIỆN


KHUÔN MẶT
Họ và tên sinh viên: Tưởng Thanh Phúc – Nguyễn Thanh Huy

Người hướng dẫn: Ths. Trần Duy Chung


Sinh viên thực hiện: Tưởng Thanh Phúc Lớp: 18D3
Nguyễn Thanh Huy Lớp: 18D4
Mã sinh viên: 1811505120142
1811505120326

Đà 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:

THIẾT KẾ VÀ CHẾ TẠO KHÓA THÔNG MINH NHẬN DIỆN


KHUÔN MẶT

Người hướng dẫn: Ths. Trần Duy Chung


Sinh viên thực hiện: Tưởng Thanh Phúc Lớp: 18D3
Nguyễn Thanh Huy Lớp: 18D4
Mã sinh viên: 1811505120142
1811505120326

Đà 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

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP


Giảng viên hướng dẫn: Th.s TRẦN DUY CHUNG
Sinh viên thực hiện: NGUYỄN THANH HUY Mã SV: 1811505120326
TƯỞNG THANH PHÚC Mã SV: 1811505120142
1. Tên đề tài:
THIẾT KẾ VÀ CHẾ TẠO KHÓA THÔNG MINH NHẬN DIỆN KHUÔN MẶT

2. Các số liệu, tài liệu ban đầu:

- Dùng esp32 cam để nhận diện khuôn mặt


- Cảnh báo sai mật khẩu và mở khóa từ xa qua điện điện thoại
Tài liệu ban đầu:
- Tìm hiểu các thông tin qua các trạng mạng, và tham khảo các sách, báo tài liệu
chuyên nghành.
- Tài liệu về lập trình vi điều khiển, các chuẩn giao tiếp...

3. Nội dung chính của đồ án:

 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.

4. Các sản phẩm dự kiến

- 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

6. Ngày nộp đồ án: 2/6/2022


Đà Nẵng, ngày 05 tháng 03 năm 2022
Trưởng Bộ môn Người hướng dẫ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

ĐỀ CƯƠNG ĐỒ ÁN TỐT NGHIỆP

1. Họ và tên sinh viên: NGUYỄN THANH HUY


TƯỞNG THANH PHÚC
2. Mã sinh viên: 1811505120326 Lớp: 18D4
1811505120142 18D3

3. Họ và tên người hướng dẫn: Th.s. TRẦN DUY CHUNG

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

Thời gian thực hiện: Từ ngày: 2/3/2022 đến ngày: 2/6/2022 .

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.

6. Nội dung chính

 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ên ý tưởng cho đề tài Tìm hiểu


1 Tuần 1 và chọn đề tài lên kế hoạch chi
tiết
Chọn đề tài và ghi đề cương
2 Tuần 2
nhiệm vụ của đề tài
Tìm hiểu các đề tài và xây dựng
3 Tuần 3 mô hình khóa thông minh nhận
diện khuôn mặt
Gặp GVHD để báo cáo về hướng
4 Tuần 4
thực hiện đề tài.
Tìm hiểu về esp32 cam
5 Tuần 5

Nghiên cứu thiết kế chế tạo phần


6 Tuần 6
cứng .
Lập trình điều khiển
7 Tuần 7

Lập trình điều khiển giao tiếp về


8 Tuần 8
phần cứng
Lập trình điều khiển , lắp ráp linh
9 Tuần 9
kiện
Sắp xếp bố trí cho hợp lí
10 Tuần 10

Báo cáo tiến độ cho GVHD.


11 Tuần 11
Hoàn thiện mô hình.
Viết báo cáo.
12 Tuần 12

Kiểm tra hoạt động của hệ thống.


13 Tuần 13
Hoàn tất báo cáo. Khắc phục các
14 Tuần 14
sự cố.
Vá lỗi các sự cố nếu có. Hoàn
15 Tuần 15 thiện báo cáo, gặp GVPB và bảo
vệ.
Đà Nẵng, ngày 05 tháng 03 năm 2022
BỘ MÔN DUYỆT NGƯỜI HƯỚNG DẪN SINH VIÊN
LỜI CẢM ƠN

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)

Tưởng Thanh Phúc Nguyễn Thanh Huy

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

NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN ......................................................................


NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN .........................................................................
LỜI CẢM ƠN ...................................................................................................................i
CAM ĐOAN................................................................................................................... ii
TÓM TẮT ĐỒ ÁN ........................................................................................................... iii
MỤC LỤC ......................................................................................................................iv
DANH SÁCH CÁC BẢNG, HÌNH VẼ ....................................................................... vii
DANH SÁCH CHỮ VIẾT TẮT .....................................................................................x
MỞ ĐẦU .........................................................................................................................1
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI .......................................................................4
1.1. Nhu cầu về khóa thông minh ................................................................................4
2.1. Tổng quan về khóa cửa .........................................................................................4
2.1.1. Lịch sử hình thành và phát triển của khóa cửa [14] .......................................4
2.1.2. Tìm hiểu các loại khóa trên thị trường hiện nay ............................................7
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT ..............................................................................10
2.1. Công nghệ sinh trắc và bảo mật [5] ....................................................................10
2.2. Phát hiện khuôn mặt [15] ....................................................................................11
2.3. Nhận dạng khuôn mặt [25] .................................................................................12
2.3.1. Nhận dạng truyền thống. ..............................................................................14
2.3.2. Nhận dạng 3D .............................................................................................. 14
2.4. Nhận dạng vân tay [18].......................................................................................15
2.5. Tổng quan xử lý ảnh [16] ...................................................................................16
2.6. Công nghệ RFID [24] .........................................................................................17
2.7. Giới thiệu phần mềm .......................................................................................... 18
2.7.1. Arduino IDE [6] ........................................................................................... 18

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Ẽ

Bảng 2.1: Thông số ESP32 CAM [9] ............................................................................ 24

Bảng 2.2: Thông số ESP32 [21] .................................................................................... 27

Bảng 2.3: Thông số kỹ thuật cảm biến vân tay [13]...................................................... 28

Bảng 2.4: Thông số kỹ thuật module RFID [11] ........................................................... 31

Bảng 2.5: Thông số kỹ thuật module FT232RL [19] .................................................... 32

Bảng 2.6: Thông số module XL6009 [10]..................................................................... 34

Bảng 2.7: Thông số kỹ thuật Module LM2596 [1] ....................................................... 35

Bảng 2.8: Thông số module I2C [2] .............................................................................. 36

...........................................................................................................................................

HÌnh 1.1: Khóa then cài [14] .......................................................................................... 5

Hình 1.2: Khóa dây xích [14] .......................................................................................... 5

Hình 1.3: Khóa chốt nổi [14] ........................................................................................... 6

Hình 1.4: Khóa dạng ổ [14] ............................................................................................. 6

Hình 1.5: Khóa điện tử .................................................................................................... 7

Hình 1.6: Cơ chế mở khóa [7] ......................................................................................... 7

Hình 1.7: Khóa vân tay .................................................................................................... 8

Hình 1.8: Khóa bằng thẻ từ ............................................................................................. 8

Hình 1.9: Khóa bằng mật khẩu số ................................................................................... 9

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.4: Công nghệ nhận dạng vân tay [18]................................................................ 16

Hình 2.5: Công Nghệ RFID [24] ................................................................................... 17

Hình 2.6: Biểu tượng Arduino IDE [6] ......................................................................... 18

Hình 2.7: Giao diện khởi tạo phần mềm Arduino IDE ................................................. 19

Hình 2.8: Ứng dụng telegram trên Google Play ............................................................ 20

Hình 2.9: Tìm kiếm botfather ........................................................................................ 20

Hình 2.10: Cửa sổ lệnh của botfather ............................................................................ 21

Hình 2.11: Thông báo tạo bot thành công ..................................................................... 22

Hình 2.12: Tìm kiếm idbot ............................................................................................ 23

Hình 2.13: Nhận ID User............................................................................................... 23

Hình 2.14. Module ESP32- CAM [9]............................................................................ 24

Hình 2.15: Hình ảnh các chân ESP32 Cam [9] ............................................................. 25

Hình 2.16: module ESP32 [21] ..................................................................................... 26

Hình 2.17: Các chân của ESP32 [21] ............................................................................ 27

Hình 2.18. Cảm biến nhận dạng vân tay AS608 [13].................................................... 28

Hình 2.19. Relay [23] .................................................................................................... 29

Hình 2.20: Ổ khóa điện từ LY-03 [12] .......................................................................... 30

Hình 2.21: Module RFID RC522 [11] .......................................................................... 31

Hình 2.22: Module FT232RL [19] ................................................................................ 32

viii
Hình 2.23: Bàn phím mềm 4x4 [3] ................................................................................ 33

Hình 2.24: Module tăng áp XL6009 [10] ...................................................................... 33

Hình 2.25: Module giảm áp LM2596 [1] ...................................................................... 34

Hình 2.26: Màn hình LCD 1602 [2] .............................................................................. 35

Hình 2.27: Module I2C [2] ............................................................................................ 36

Hình 3.1: Sơ đồ khối ...................................................................................................... 37

Hình 3.2: Pin 18650 ....................................................................................................... 38

Hình 3.3: Lưu đồ thuật toán ESP32 CAM .................................................................... 39

Hình 3.4: Sơ đồ nguyên lý ESP32 ................................................................................. 40

Hình 3.5: Lưu đồ thuật toán ESP32............................................................................... 40

Hình 3.6: Sơ đồ nguồn của mạch .................................................................................. 41

Hình 3.7: Sơ đồ nguồn của khóa điện ........................................................................... 41

Hình 4.1: Mạch in khối ESP32 ...................................................................................... 42

Hình 4.2: Mạch in 3D mặt trước ................................................................................... 43

Hình 4.3: mạch in 3D mặt sau ....................................................................................... 43

Hình 4.4: Mạch sau khi thi công ................................................................................... 44

Hình 4.5: Mô hình sau khi hoàn thiện ........................................................................... 45

Hình 4.6: Lấy địa chỉ IP ................................................................................................ 46

Hình 4.7: Giao diện web ESP32 CAM .......................................................................... 46

Hình 4.8: Cảnh báo gửi về Telegram ............................................................................ 47

ix
DANH SÁCH CHỮ VIẾT TẮT

CHỮ VIẾT TẮT:


IoT: Internet of thing
RFID: Radio Frequency Identification
API: Application Programming Interface
LCD: Liquid Crystal Display
TTL: Transistor-transistor logic
NFC: Near-Field Communications
UART: Universal Asynchronous Receiver / Transmitter
ID: identification

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

Mục tiêu đề tài

- 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ợ.

Đối tượng và phạm vi nghiên cứu

a. Đối tượng nghiên cứu

- Thiết bị điều khiển trung tâm: ESP32 CAM, ESP32

- 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ý.

- Nghiên cứu về ứng dụng Telegram.

b. Phạm vi nghiên cứu

- 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

Kết quả dự kiến


Mạch sẽ mở khóa khi nhận dạng được khuôn mặt hoặc đúng vân tay, đúng thẻ từ
và mặt khẩu hoặc có thể mở khóa qua ứng dụng. Có thông báo và cảnh báo về điện thoại
qua ứng dụng, chụp hình gửi về điện thoại khi sai khuôn mặt.
Nội dung bố cục
Chương 1: Tổng quan về đề tài
Chương 2: Cơ sở lý thuyết
Chương 3: Phân tích thiết kế hệ thống
Chương 4: Thi công hệ 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 3
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt

CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI

1.1. Nhu cầu về khóa thông minh


Hiện nay, với sự phát triển của các ứng dụng điện toán đám mây và các giao tiếp
không dây, việc “ thông minh hóa’’ các hoạt động trong cuộc sống hằng ngày rất được
quan tâm và phát triển. Bắt đầu từ những thói quen sử dụng điện thoại thông minh, trợ
lí ảo thông minh giúp sắp xếp thời gian biểu hay thông báo lịch hẹn, hay các ứng dụng
tài chính thông minh giúp cân đối tài chính cá nhân, gia đình… Cho đến những cảnh
báo tắc đường, chỉ đường khi tham gia giao thông, tất cả giờ đây nằm gọn trong túi quần
của bạn. Và tất nhiên, nhà thông minh cũng bắt đầu trở thành một xu thế, khi chiếc điện
thoại thông minh giúp ta kiểm soát ngôi nhà của mình qua SMS hay Email về mọi thứ
ta muốn như nhiệt độ phòng, bật tắt đèn từ xa, kiểm soát điện năng tiêu thụ… và quan
trọng nhất là vấn đề an ninh cho ngôi nhà của mình.
Để đáp ứng nhu cầu đó, khóa thông minh được sinh ra để người dùng có thể bảo
vệ được tài sản của mình và đương nhiên là sẽ đáng tin cậy hơn rất nhiều so với các loại
khóa truyền thống. Các loại khóa thông minh hiện nay sử dụng 3 cơ chế khóa chính đó
là: mở khóa bằng thẻ từ, mở khóa bằng nhận diện vân tay, mở khóa bằng phím số. Ngoài
những loại khóa thông minh hiên nay, mở khóa bằng “nhận diện khuôn mặt” cũng là đề
tài về tính bảo mật an ninh cũng đang được nghiên cứu.
Không chỉ vậy, khóa thông minh có chức năng chính là tăng cường độ tin cậy về
bảo mật, do nó có thể ứng dụng vào nhiều hệ thống khác nhau như khóa cửa, khóa
phòng, khóa cửa tủ, két sắ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. Tổng quan về khóa cửa

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:

- Khóa then cài:

Đâ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à.

Hình 1.1: Khóa then cài [14]

- Khóa dây xích:

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).

Hình 1.2: Khóa dây xích [14]

- Khóa chốt nổ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 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.

Hình 1.3: Khóa chốt nổi [14]

- Khóa cơ truyền thống:

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.

Hình 1.4: Khóa dạng ổ [14]

- Khóa hiện đại – khóa điện 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 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,…

Hình 1.5: Khóa điện tử

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.

Hình 1.6: Cơ chế mở khóa [7]

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

- Khóa cửa bằng vân tay


Khóa vân tay hay khóa cửa bằng vân tay là loại khóa dùng vân tay thay cho chìa
khóa để mở cửa.

Hình 1.7: Khóa vân tay


- Khóa bằng thẻ từ
Khóa từ là một loại khóa được làm bằng kim loại, nhưng thay vì cách đút chìa vào
xoay để mở như khóa cơ thông thường thì sẽ sử dụng 1 thẻ từ ( hình dáng giống như thẻ
ATM ) để đóng mở. Khóa từ còn có tên tiếng Anh là Nopass.

Hình 1.8: Khóa bằng thẻ từ


- Khóa cửa bằng mật mã số

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.

Hình 1.9: Khóa bằng mật mã số

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

2.1. Công nghệ sinh trắc và bảo mật [5]


Sinh trắc học hay Công nghệ sinh trắc học (tiếng Anh: Biometric) là công nghệ sử
dụng những thuộc tính vật lý, đặc điểm sinh học riêng của mỗi cá nhân như vân tay,
khuôn mặt, mống mắt, tĩnh mạch,…để nhận diện, xác thực bảo mậ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]

2.2. Phát hiện khuôn mặt [15]


Face detection (phát hiện khuôn mặt) là tính năng dùng để phát hiện có sự hiện
diện của khuôn mặt con người mà không so sánh sự khác nhau giữa các khuôn mặt. Phát
hiện khuôn mặt là việc làm tiên quyết khi cần đi sâu vào bất cứ một bài toán, tác vụ nào
đối với xử lý khuôn mặt. Việc khoanh vùng cũng như xác định chính xác vị trí vật thể
nhằm mục đích loại bỏ phần nhiễu, phần hình ảnh không thuộc đối tượng, có khả năng
làm tăng đáng kể độ chính xác đối với các nhiệm vụ như phân tích, phân loại dự đoán
sau đó.

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

Hình 2.2: Công nghệ phát hiện khuôn mặt [17]

2.3. Nhận dạng khuôn mặt [25]


Nhận dạng khuôn mặt là một ứng dụng máy tính tự động xác định hoặc nhận dạng
một người nào đó từ một bức hình ảnh kỹ thuật số hoặc một khung hình video từ một
nguồn video. Một trong những cách để thực hiện điều này là so sánh các đặc điểm khuôn
mặt chọn trước từ hình ảnh và một cơ sở dữ liệu về khuôn mặt.
Hệ thống này thường được sử dụng trong các hệ thống an ninh và có thể được so
sánh với các dạng sinh trắc học khác như các hệ thống nhận dạng vân tay hay tròng mắt.
Các công ty lớn như Facebook, Apple và Google đang tích cực nghiên cứu vấn đề
này để cung cấp các dịch vụ như tìm kiếm trực quan, tự động gắn thẻ bạn bè trong các
bài đăng trên phương tiện truyền thông xã hội và khả năng sử dụng khuôn mặt của bạn
để mở khóa điện thoại di động, hay có thể thanh toán dịch vụ. Các cơ quan thực thi pháp
luật cũng rất quan tâm, chủ yếu để nhận diện khuôn mặt trong hình ảnh kỹ thuật số.
Phát hiện tội phạm nguy hiểm công nghệ nhận dạng khuôn mặt đang được một số
lực lượng cảnh sát sử dụng để hỗ trợ vào việc thực thi pháp luật. Ví dụ, các nhân viên ở
Ireland có ý định sử dụng công nghệ này để giúp xác định các nghi phạm ở các khu vự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 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.

Hình 2.3: Hệ thống nhận dạng khuôn mặt [15]

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.

2.3.2. Nhận dạng 3D


Một xu hướng mới nổi lên, tuyên bố cải thiện được độ chính xác, là nhận dạng
khuôn mặt ba chiều. Kỹ thuật này sử dụng các cảm biến 3D để nắm bắt thông tin về hình
dạng của khuôn mặt. Thông tin này sau đó được sử dụng để xác định các tính năng đặc
biệt trên bề mặt của một khuôn mặt, chẳng hạn như các đường viền của hốc mắt, mũi và
cằm.

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.

2.4. Nhận dạng vân tay [18]


Ngày nay, người ta cũng lợi dụng các đặc điểm riêng biệt của vân tay để xây dựng
các hệ thống bảo mật các thông tin riêng tư cho người sở hữu chúng, từ việc dùng các
ổ khóa vân tay thay thế cho các ổ khóa thông thường cho đến việc dùng vân tay thay thế
mật khẩu đã quá phổ biến trong thời đại công nghệ thông tin. Người ta chỉ cần quét dấu
vân tay của mình qua các thiết bị chức năng là có thể mở được một cánh cửa, đăng nhập
vào hệ thống máy vi tính, qua một phòng bí mật hay các trạm bảo vệ bí mật. Đó là giải
pháp an ninh tuyệt đối cho những yêu cầu bảo mật của con người trong nhiều lĩnh vực
như: Kiểm soát an ninh trong các cơ quan của Chính phủ, trong quân đội, ngân hàng,
trung tâm lưu trữ dữ liệu... hoặc để kiểm soát ra vào của nhân viên tại các trung tâm
thương mại, các tập đoàn, các đại sứ quán...

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

Hình 2.4: Công nghệ nhận dạng vân tay [18]

2.5. Tổng quan xử lý ảnh [16]

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:

- Biến đổi ảnh làm tăng chất lượng ảnh.

- 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.

2.6. Công nghệ RFID [24]

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.

Hình 2.5: Công nghệ RFID [24]

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

 Hoạt động của hệ thống RFID:

Đầ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ẻ kích hoạt cảnh báo trong quá trình di chuyển.

- Cho phép người đọc và thẻ tương tác với nhau.

- Dữ liệu được đọc và lưu trữ tự động.

- 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.

- Dữ liệu của thẻ tương thích với hệ thống WMS và ERP.

- 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.

Hình 2.6: Biểu tượng Arduino IDE [6]

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.

- New, Open, Save : Tạo mới, mở và Save sketch.


- Serial Monitor : Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên máy tính
hoặc tổ hợp phìm CTRL + SHIFT + M.
2.7.2. Ứng dụng tin nhắn telegram [4]
a. Giới thiệu telegram:

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.

b. Cách tạo BOT telegram:

Đầu tiên truy cập vào Google Play hoặc AppStore để tải xuống và cài đặt Telegram.

Hình 2.8: Ứng dụng telegram trên Google Play

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.

Hình 2.9:Tìm kiếm 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

Hình 2.10: Cửa sổ lệnh của botfather

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

Hình 2.11: Thông báo tạo bot thành công

c. Cách nhận ID telegram

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

Hình 2.12: Tìm kiếm idbot

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.

Hình 2.13: Nhận ID User

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

2.8. Giới thiệu linh kiện


2.8.1. Giới thiệu về Module ESP32 CAM [9]
Giới thiệu ESP32 – CAM và các thông số kĩ thuật:
- ESP32-CAM có một module camera cỡ nhỏ có thể hoạt động như một hệ thống
độc lập với kích thước 27x40.5x4.5mm và dòng ở chế độ deep sleep lên đến 6mA.
- ESP32-CAM được đóng gói DIP-16 (Dual In-line Package) và có thể được lắp
trực tiếp vào bo mạch chủ, cung cấp cho khách hàng chế độ kết nối với độ tin cậy
cao, thuận tiện cho việc ứng dụng trong các thiết bị IoT khác nhau.
- Module cần phải được lập trình với ESP-IDF và không hỗ trợ Arduino IDE.

Hình 2.14. Module ESP32- CAM [9]


Thông số kỹ thuật ESP32 CAM:

Bảng 2.1: Thông số ESP32 CAM [9]


Điện áp cung cấp 5V
SPI Flash Mặc định 32MB
RAM 520KB SRAM + 4MB PSRAM
Bộ nhớ ngoài Khe cắm thẻ micro SD lên đến 4GB
Bluetooth Chuẩn Bluetooth 4.2 BR/EDR và BLE
WiFi 802.11 b/g/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 24
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt

Interface UART, SPI, I2C, PWM


IO Port 9
Tốc độ truyền UART 115200bps(Mặc định)
+ Đầu nối FPC
+ Hỗ trợ camera OV2640 hoặc camera OV7670
Camera
+ JPEG(chỉ hỗ trợ OV2640), BMP, GRAYSCALE
+ Đèn led
Dải quang phổ 2412 ~2484MHz
Antenna Onboard PCB antenna, gain 2dBi
802.11b: 17±2 dBm (@11Mbps)
Transmit Power 802.11g: 14±2 dBm (@54Mbps)
802.11n: 13±2 dBm (@MCS7)
CCK, 1 Mbps : -90dBm
CCK, 11 Mbps: -85dBm
Receiving Sensitivity 6 Mbps (1/2 BPSK): -88dBm
54 Mbps (3/4 64-QAM): -70dBm
MCS7 (65 Mbps, 72.2 Mbps): -67dBm
+ Tắt đèn flash: 180mA@5V
+ Bật đèn flash và bật độ sáng tối đa: 310mA@5V
Tiêu thụ điện năng + Deep-sleep: 6mA@5V
+ Moderm-sleep: 20mA@5V
+ Light-sleep: 6.7mA@5V
Bảo mật WPA/WPA2/WPA2-Enterprise/WPS
Nhiệt độ hoạt động -20 ℃ ~ 85 ℃
Môi trường bảo quản -40 ℃ ~ 90 ℃ , < 90%RH

Hình 2.15: Hình ảnh các chân ESP32 Cam [9]

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

Ứng dụng thực tế trong thực tế:


Sử dụng rộng rãi trong các ứng dụng IoT: các thiết bị thông minh trong nhà, giám
sát và điều khiển không dây, nhận dạng không dây QR, tín hiệu hệ thống định vị không
dây, …
Sử dụng trong đề tài:
- Module ESP32 CAM có tích hợp một camera nhỏ cho phép chúng ta nhận tín
hiệu vào là hình ảnh, video sau đó xử lí các hình ảnh đó theo chương trình của
chúng ta.
- Sau khi xử lí các dữ liệu thu vào, thiết bị sẽ gửi một tín hiệu tới cho thiết bị relay
cho phép đóng/ mở cửa.
2.8.2. Giới thiệu về module ESP32 [21]
ESP32 là một hệ thống vi điều khiển trên chip (SoC) giá rẻ của Espressif Systems,
nhà phát triển của ESP8266 SoC. Nó là sự kế thừa của SoC ESP8266 và có cả hai biến
thể lõi đơn và lõi kép của bộ vi xử lý 32-bit Xtensa LX6 của Tensilica với Wi-Fi và
Bluetooth tích hợp.

Hình 2.16: module ESP32 [21]

Đ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.

Hình 2.17: Các chân của ESP32 [21]

Thông số kỹ thuật ESP32:

Bảng 2.2: Thông số ESP32 [21]

IC chính Wifi BLE SoC ESP32 ESP-WROOM-32

Điện áp hoạt động 2.2V~3.6V

Nhiệt độ hoạt động -40C~85C

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

Bluetooth: v4.2 BR/EDR and BLE

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

Tốc độ xử lý 160MHZ ~ 240 MHz

Tốc độ xung nhịp đọc flash 40mhz --> 80mhz

2.8.3. Cảm biến nhận dạng vân tay AS608 [13]


Cảm biến nhận dạng vân tay AS608 đượ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.

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]

Thông số kỹ thuật cảm biến vân tay AS608:

Bảng 2.3: Thông số kỹ thuật cảm biến vân tay [13]


Nguồn cấp 3.6 - 6VDC

Giao tiếp TTL-UART hoặc USB 1.1

Dòng điện tiêu thụ < 150mA

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

Phương thức giao tiếp UART

Mức độ an toàn 5

Tỉ lệ chấp nhân sai <0,001%

Tỉ lệ từ chối sai <1%

Số vân tay lưu trữ 127

Nhiệt độ hoạt động -10C ~ 40C

2.8.4. Module Relay [23]


Rơ-le là một công tắc (khóa K). Nhưng khác với công tắc ở một chỗ cơ bản, rơ-le
được kích hoạt bằng điện thay vì dùng tay người. Chính vì lẽ đó, rơ-le được dùng làm
công tắc điện tử. Vì rơ-le là một công tắc nên nó có 2 trạng thái: đóng và mở.

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).

Hình 2.19. Relay [23]

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

Ba chân dùng để kích:

- 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.

2.8.5. Ổ khóa điện từ LY-03 [12]


Khóa chốt điện từ LY-03 có chức năng hoạt động như một ổ khóa cửa sử dụng
Solenoid để kích đóng mở bằng điện, được sử dụng nhiều trong nhà thông minh hoặc
các loại tủ, cửa phòng, cửa kho,…. Khóa chốt điện từ này sử dụng điện áp 12VDC, là
loại thường đóng (cửa đóng) với chất lượng tốt, độ bền cao. Khóa có thể sử dụng chung
với các mạch chức năng tạo thành một hệ thống thông minh.

Hình 2.20: Ổ khóa điện từ LY-03 [12]

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

2.8.6. Module RFID RC522: [11]


Mạch RFID NFC 13.56MHZ RC522 sử dụng IC MFRC522 của NXP được sử
dụng để đọc và ghi dữ liệu cho thẻ RFID NFC tần số 13.56Mhz, mạch có thiết kế nhỏ
gọn được sử dụng rất phổ biến hiện nay với Arduino hoặc các loại Vi điều khiển khác
trong các ứng dụng cần ghi, đọc thẻ RFID NFC.

Hình 2.21: Module RFID RC522 [11]

Thông số kỹ thuật Module RFID RC522:

Bảng 2.4: Thông số kỹ thuật module RFID [11]

Nguồn điện sử dụng 3.3V

Dòng điện tiêu thụ 13~26mA

Tần số hoạt động 13.56Mhz

Khoảng cách hoạt động 0~60mm

Chuẩn giao tiếp SPI

Tốc độ truyền dữ liệu Tối đa 10Mbit/s

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

2.8.7. Module chuyển đổi FT232RL [19]


FT232RL là module được sử dụng phổ biến để kết nối chuẩn tín hiệu nối tiếp
TTL giao tiếp với máy tính qua cổng USB mini. Module có các tùy chọn điện áp đầu ra
khác nhau được thiết lập bởi jumper trên bo mạch. FT232RL được sử dụng để nâng cấp
thiết bị ngoại vi lên chuẩn tín hiệu USB.

Hình 2.22: Module FT232RL [19]

Thông số kỹ thuật Module FT232RL:

Bảng 2.5: Thông số kỹ thuật module FT232RL [19]

Điên áp hoạt động 3.3V/5V

Dòng điện tối đa 5V – 500mA; 3.3V – 50mA

Kết nối USB Mini

Tốc độ truyền dữ liệu 300 baud - 3 Mbaud

2.8.8. Bàn phím mềm 4x4 [3]


Bàn phím mềm 4×4 keypad có thiết kế nhỏ gọn, dễ kết nối và sử dụng, các chân
của 16 phím được nối theo ma trận, tín hiệu khi nhấn phím sẽ là tín hiệu GND (0VDC)
hoặc Vcc (5VDC) tùy vào cách quét phím của các bạn kích vào chân Vi điều khiển, bà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 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.

Hình 2.23: Bàn phím mềm 4x4 [3]

2.8.9. Module tăng áp XL6009 [10]


Mạch tăng áp DC XL6009 được sử dụng để tăng điện áp DC, hiệu suất chuyển đổi
của mạch lên đến 94%, dòng đầu ra tối đa 4A, là sự lựa chọn phù hợp cho các ứng dụng
tăng áp.

Hình 2.24: Module tăng áp XL6009 [10]

Thông số kỹ thuật Module tăng áp XL6009:

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

Bảng 2.6: Thông số module XL6009 [10]

IC chính XL6009

Tần số 400Khz

Dòng không tải 18mA

Điện áp đầu vào 3.5V đến 32V

Điện áp đầu ra 5V đến 35V

Công suất tối đa 10W

Dòng đáp ứng 4A

2.8.10. Module giảm áp LM2596 [1]


Mạch Giảm Áp LM2596 là module giảm áp có khả năng điều chỉnh được dòng ra
đến 3A. LM2596 là IC nguồn tích hợp đầy đủ bên trong. Tức là khi cấp nguồn 9v vào
module, sau khi giảm áp ta có thể lấp được nguồn 3A nhỏ hơn 9V như 5V hay 3.3V.

Hình 2.25: Module giảm áp LM2596 [6]

Thông số kỹ thuật Module giảm áp LM2596:

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

Bảng 2.7: Thông số kỹ thuật Module LM2596 [6]

Nguồn vào 4V – 35V

Nguồn ra 1V – 30V

Dòng ra 3A

2.8.11. Màn hình LCD 1602 và module I2C [2]


a. Màn hình LCD 1602

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.

Hình 2.26: Màn hình LCD [2]

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

Hình 2.27: Module I2C [2]

Thông số kỹ thuật Module I2C:

Bảng 2.8: Thông số module I2C [16]

Điện áp hoạt động 2.5V – 6V

Hỗ trợ màn hình LCD1602,1604,2004 (driver HD44780)

Giao tiếp I2C

Địa chỉ mặc định 0x27

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

CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG

3.1. Sơ đồ khối hệ thống


3.1.1. Yêu cầu đề tài
Yêu cầu: Thiết kế 1 khóa điện thông minh có thể phát hiện và nhận diện khuôn
mặt để mở khóa, đồng thời vẫn có thể sử dụng vân tay, RFID, mật khẩu để mở khóa. Có
thể gửi được thông tin, hình ảnh cảnh báo về ứng dụng nhắn tin telegram.
3.1.2. Thiết kế sơ đồ khối

Hình 3.1: Sơ đồ khối

 Nguyên lý hoạt động sơ đồ khối:


Khi cấp nguồn cho mạch thì ESP32 CAM, ESP32, cảm biến vân tây, RFID và bàn
phím hoạt động. ESP32 CAM có chức năng thu thập dữ liệu khuôn mặt và so sánh với
hình ảnh khuôn mặt đã được đăng ký trong hệ thống để điều khiển khóa đóng/mở. ESP32
sẽ thu thập dữ liệu vào của cảm biến vân tay, RFID, bàn phím để đối chiếu với dữ liệu
đã lưu trong hệ thống sau đó điều khiển khóa đóng/mở và gửi thông tin cảnh báo về khối
hiển thị.
3.1.3. Chức năng các khối
 Khối nguồn: có chức năng cung cấp nguồn điện cho toàn mạch.
- Nguồn chính cho mạch là nguồn cấp bằng 3 pin 18650 qua module giảm áp
LM2596 để giảm điện áp xuống 5V để cung cấp cho vi điều khiển và các thiết bị
khá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 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.

Hình 3.2: Pin 18650

 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.

3.2. Thiết kế đề tài


3.2.1. ESP32 CAM
ESP32 CAM là một module gồm camera và IC ESP32-S nên có thể xử lý các công
việc một cách độc lập tuy nhiên phải kết nối ESP32 CAM với module chuyển đổi
FT232RL để có thể giao tiếp được với máy tính .

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.

- Lưu đồ thuật toán ESP32 CAM

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

Hình 3.3: Lưu đồ thuật toán ESP32 CAM

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

Hình 3.4: Sơ đồ nguyên lý ESP32


- Lưu đồ thuật toán ESP32

Hình 3.5: Lưu đồ thuật toán 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 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:

Hình 3.6: Sơ đồ nguồn của mạch

- Nguồn của khóa điện:

Hình 3.7: Sơ đồ nguồn của khóa điệ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 41
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt

CHƯƠNG 4: THI CÔNG HỆ THỐNG

4.1. Thi công sản phẩm


4.1.1. Mạch in

Hình 4.1: Mạch in khối ESP32

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

Hình 4.2: Mạch in 3D mặt trước

Hình 4.3: mạch in 3D mặt sau

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

4.1.3 Mạch sau khi thi công


Nhóm hàn linh kiện và lắp ráp mạch. Tiến hành đo và kiểm tra nguồn vào và ra rồi
chỉnh lại sao cho phù hợp .

Hình 4.4: Mạch sau khi thi công

4.2. Mô hình sản phẩm và quá trình hoạt động


4.2.1. Mô hình sản phẩm
Sau khi thi công xong mạch, nhóm tiến hành thiết kế mô hì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 44
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt

Hình 4.5: Mô hình sau khi hoàn thiện

Để đă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

Hình 4.6: Lấy địa chỉ IP

Hình 4.7:Giao diện web ESP32 CAM

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

Hình 4.8: Cảnh báo gửi về Telegram

4.2.2. Quá trình hoạt động


 ESP32 CAM: khi cấp nguồn camera sẽ thu thập và nhận dạng hình ảnh đưa vào,
nếu phát hiện khuôn mặt trong hình ảnh đưa vào sẽ tiến hành so sánh với dữ liệu
khuôn mặt đã được đăng kí trên giao diện web, nếu đúng khuôn mặt đã được
đăng kí khóa điện sẽ mở ngược lại nếu không đúng khuôn mặt đã đăng kí ESP32
CAM sẽ chụp khuôn mặt đối tượng lại rồi gửi về ứng dụng Telegram.
 ESP32: Khi cấp nguồn cảm biến vân tay, RFID, bàn phím sẽ gửi dữ liệu mà người
dùng nhập vào cho ESP32. ESP32 sau đó sẽ xử lý các dữ liệu nhận vào, nếu đúng
sẽ điều khiển relay mở khóa, hiển thị thông báo lên LCD và gửi thông báo về ứng
dụng Telegram. Ngược lại nếu sai LCD sẽ hiện thông báo và gửi cảnh báo 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 47
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt

KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ

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

KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN

 Kết quả đạt được:


Thực hiện được các mục tiêu đề ra, mặc dù còn nhiều thiếu sót nhưng nhờ sự
hướng dẫn tận tình của thầy hướng dẫn, đề tài đồ án “Thiết kế và chế tạo khóa thông
minh nhận diện bằng khuôn mặt” đã đạt được kết quả tố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

TÀI LIỆU THAM KHẢO

[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

Code ESP32 CAM:


#include "esp_camera.h"
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>
#include "soc/soc.h"
#include "soc/rtc_cntl_reg.h"

#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

bool sendPhoto = false;

WiFiClientSecure clientTCP;
UniversalTelegramBot bot(token, clientTCP);

int botRequestDelay = 1000;


unsigned long lastTimeBotRan;

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

esp_err_t err = esp_camera_init(&config);


if (err != ESP_OK) {
Serial.printf("Camera init failed with error 0x%x", err);
return;
}

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

while (WiFi.status() != WL_CONNECTED) {


delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");

startCameraServer();

Serial.print("Camera Ready! Use 'http://");


Serial.print(WiFi.localIP());
Serial.println("' to connect");
}

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

String head = "--India\r\nContent-Disposition: form-data; name=\"chat_id\";


\r\n\r\n" + chat_id + "\r\n--India\r\nContent-Disposition: form-data; name=\"photo\";
filename=\"esp32-cam.jpg\"\r\nContent-Type: image/jpeg\r\n\r\n";
String tail = "\r\n--India--\r\n";

uint16_t imageLen = fb->len;


uint16_t extraLen = head.length() + tail.length();
uint16_t totalLen = imageLen + extraLen;

client_tcp.println("POST /bot"+token+"/sendPhoto HTTP/1.1");


client_tcp.println("Host: " + String(myDomain));
client_tcp.println("Content-Length: " + String(totalLen));
client_tcp.println("Content-Type: multipart/form-data; boundary=India");
client_tcp.println();
client_tcp.print(head);

Phụ lục
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt

uint8_t *fbBuf = fb->buf;


size_t fbLen = fb->len;

for (size_t n=0;n<fbLen;n=n+1024)


{

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

int waitTime = 10000; // timeout 10 seconds


long startTime = millis();
boolean state = false;

while ((startTime + waitTime) > millis())


{
Serial.print(".");
delay(100);
while (client_tcp.available())
{
char c = client_tcp.read();
if (c == '\n')
{
if (getAll.length()==0) state=true;
getAll = "";
}
else if (c != '\r')
getAll += String(c);
if (state==true) getBody += String(c);
startTime = millis();
}
if (getBody.length()>0) break;

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

Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM,


COLUMN_NUM );

const String password = "7890";


String input_password;
int l =4,bt=0;
String TheDung="3B C3 3C 0D";
MFRC522::MIFARE_Key key;

int relay = 2; //Led


int ledStatus = 0;
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

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;

String from_name = bot.messages[i].from_name;


if (from_name == "")
from_name = "Guest";

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++)

{ content.concat(String(mfrc522.uid.uidByte[i]<0x10?" 0":" "));


content.concat(String(mfrc522.uid.uidByte[i],HEX));
}
content.toUpperCase();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ID:");
lcd.setCursor(4,0);
lcd.print(content.substring(1));
if(content.substring(1)==TheDung)
{
lcd.setCursor(0,1);
lcd.print("The Dung Moi Vao");
bot.sendMessage(CHAT_ID, "Da Mo Cua Bang The", "");
digitalWrite(LED_BUILTIN, 1);
delay(2000);
digitalWrite(LED_BUILTIN, 0);
lcd.clear();
}
else
{
lcd.setCursor(0,1);
lcd.print("The Sai Thu Lai");
bot.sendMessage(CHAT_ID, "Mo Khoa Bang The Sai ", "");
delay(2000);
lcd.clear();
}
}
}
int getFingerprintIDez() {
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz();

Phụ lục
Thiết kế và chế tạo khóa thông minh nhận diện khuôn mặt

if (p != FINGERPRINT_OK) return -1;

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

You might also like