BỘ GIÁO DỤC & ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
---------------------------------
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
ĐỀ TÀI:
GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG
QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU
KHIỂN QUA MẠNG INTERNET
GVHD : ThS. Võ Đức Dũng
SVTH1: Nguyễn Văn Phúc
MSSV : 13141243
SVTH2: Diệp Minh Thiện
MSSV : 13141330
Tp. Hồ Chí Minh - 1/2018
BỘ GIÁO DỤC & ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
---------------------------------
ĐỒ ÁN TỐT NGHIỆP
NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
ĐỀ TÀI:
GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ
THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG
INTERNET
GVHD : ThS. Võ Đức Dũng
SVTH1: Nguyễn Văn Phúc
MSSV : 13141243
SVTH2: Diệp Minh Thiện
MSSV : 13141330
Tp. Hồ Chí Minh - 1/2018
i
TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TP. HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH
Tp. HCM, ngày 15 tháng 01 năm 2018
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên: Nguyễn Văn Phúc MSSV: 13141243
Diệp Minh Thiện MSSV: 13141330
Chuyên ngành: Điện tử công nghiệp Mã ngành: 141
Hệ đào tạo: Đại học chính quy Mã hệ: 1
Khóa: 2013 Lớp: 13141DT3A
I. TÊN ĐỀ TÀI: GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ
THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET
II. NHIỆM VỤ
1. Các số liệu ban đầu:
- Nguyễn Minh Tiến, Phan Hồng Đức, “Thiết kế và thi công hệ thống đóng mở cửa
bằng vân tay sử dụng kit Arduino được giám sát bằng máy tính thông qua Internet”,
Đồ Án Tốt Nghiệp ĐH, Trường ĐH Sư Phạm Kỹ Thuật TP.HCM, 2017.
2. Nội dung thực hiện:
- Tìm hiểu và nghiên cứu về cấu tạo, nguyên lý hoạt động, chức năng của các module
Arduino, cảm biến vân tay R305, module Sim 800A, động cơ Servo, ma trận phím.
- Tìm hiểu và nghiên cứu về cách lập trình Web Server, tìm hiểu về ngôn ngữ HTML,
CSS, PHP, cơ sở dữ liệu MySQL để tạo nên một trang Web hoàn chỉnh.
- Cách thiết kế và thi công một mô hình hoàn thiện.
- Thiết kế hệ thống điều khiển, lưu đồ giải thuật và chương trình điều khiển mô hình.
- Thiết kế hoàn thiện mô hình thực tế.
- Chạy thử nghiệm mô hình hệ thống.
- Cân chỉnh mô hình hệ thống.
- Viết sách luận văn.
- Bảo vệ đề tài tốt nghiệp
ii
III. NGÀY GIAO NHIỆM VỤ: 02/10/2017
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 15/01/2018
V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS. Võ Đức Dũng
CÁN BỘ HƯỚNG DẪN BM. ĐIỆN TỬ CÔNG NGHIỆP - Y SINH
TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TP. HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
Tp. HCM, ngày 01 tháng 10 năm 2017
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên 1: ...........................................................................................................
Lớp: ...............................................................................MSSV: .......................................
Họ tên sinh viên 2: ...........................................................................................................
Lớp: ...............................................................................MSSV: .......................................
Tên đề tài: .........................................................................................................................
...........................................................................................................................................
Tuần/ngày Nội dung
Xác nhận
GVHD
GV HƯỚNG DẪN
(Ký và ghi rõ họ và tên)
v
LỜI CAM ĐOAN
Đề tài này là do nhóm sinh viên Nguyễn Văn Phúc và Diệp Minh Thiện tự thực hiện, 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 nào đã có trước đó.
Người thực hiện đề tài
Nguyễn Văn Phúc Diệp Minh Thiện
vi
LỜI CẢM ƠN
Sau quá trình tìm hiểu, nghiên cứu và thực hiện đề tài đồ án tốt nghiệp và hoàn thành
đúng tiến độ, chúng em xin chân thành gửi lời cảm ơn sâu sắc nhất đến quý thầy cô, gia
đình và những người anh, người bạn đã hết mình giúp đỡ, đưa ra những lời khuyên, lời
động viên trong những lúc khó khăn.
Chúng em xin gửi lời cảm ơn đến thầy Võ Đức Dũng, giảng viên trường Đại Học Sư
Phạm Kỹ Thuật Tp.HCM đã hướng dẫn và tạo mọi điều kiện điều kiện để nhóm có thể
thực hiện tốt đề tài của mình.
Và chúng em cũng xin gửi lời tri ân đến các thầy cô trong khoa Điện - Điện tử của
trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM đã tận tình dạy dỗ và giảng dạy cho chúng
em những kiến thức cơ bản đến nâng cao tạo cho chúng em một cơ sở kiến thức vững vàng
để hoàn thành đề tài này.
Gia đình luôn là nguồn động lực và là nguồn cảm hứng để chúng em liên tục phấn
đấu và hoàn thành đề tài, xin cảm ơn đấng sinh thành đã luôn động viên chúng em trong
những lúc bế tắc và chán nản nhất.
Và cuối cùng chúng em xin cảm ơn các anh, chị đi trước và bạn bè đã có những lời
khuyên, lời góp ý chân thành để đề tài của chúng em có thể hoàn thiện hơn.
Một lần nữa, chúng em xin cảm ơn tất cả mọi người đã luôn ở bên cạnh và giúp đỡ
chúng em, tạo động lực để chúng em hoàn thành tốt đề tài này.
Xin chân thành cảm ơn!
Người thực hiện đề tài:
Nguyễn Văn Phúc Diệp Minh Thiện
vii
MỤC LỤC
Trang bìa........................................................................................................................ i
Nhiệm vụ đồ án.............................................................................................................ii
Lịch trình thực hiện đồ án tốt nghiệp........................................................................... iv
Cam đoan ..................................................................................................................... v
Lời cảm ơn................................................................................................................... vi
Mục lục .......................................................................................................................vii
Liệt kê hình vẽ .............................................................................................................. x
Liệt kê bảng vẽ............................................................................................................ xv
Tóm tắt ...................................................................................................................... xvi
CHƯƠNG 1. TỔNG QUAN ............................................................................ 1
1.1 ĐẶT VẤN ĐỀ .................................................................................................... 1
1.2 MỤC TIÊU ......................................................................................................... 2
1.3 NỘI DUNG NGHIÊN CỨU............................................................................... 2
1.4 GIỚI HẠN........................................................................................................... 3
1.5. BỐ CỤC............................................................................................................. 3
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT................................................................ 5
2.1 TỔNG QUAN VỀ ARDUINO........................................................................... 5
2.2 TỔNG QUAN VỀ WEB..................................................................................... 6
2.3 NHẬN DẠNG VÂN TAY ................................................................................. 6
2.4 GIỚI THIỆU PHẦN CỨNG............................................................................... 6
2.4.1 Arduino Mega 2560......................................................................................... 7
2.4.2 Module Sim 800A............................................................................................ 7
2.4.3 Module cảm biến vân tay R305 ....................................................................... 7
2.4.8 Màn hình LCD 20x4...................................................................................... 11
2.4.9 Mạch chuyển giao tiếp LCD 20x4................................................................. 12
2.4.10 Bàn phím ma trận 4x4 (Keypad 4x4) .......................................................... 13
2.4.11 Động cơ Servo SG90 9g Micro ................................................................... 13
2.5 CÁC CHUẨN GIAO TIẾP............................................................................... 14
2.5.1 Chuẩn giao tiếp UART .................................................................................. 14
viii
2.5.2 Chuẩn giao tiếp SPI ....................................................................................... 15
2.5.3 Chuẩn giao tiếp I2
C........................................................................................ 16
2.5.3 Chuẩn giao tiếp One-wire.............................................................................. 16
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ. ................................................ 17
3.1 GIỚI THIỆU ..................................................................................................... 17
3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG...................................................... 18
3.2.1 Thiết kế sơ đồ khối hệ thống.......................................................................... 18
3.2.2 Tính toán và thiết kế mạch............................................................................. 22
3.2.3 Sơ đồ nguyên lý của toàn mạch ..................................................................... 38
CHƯƠNG 4. THI CÔNG HỆ THỐNG ....................................................... 40
4.1 GIỚI THIỆU....................................................................................................... 40
4.2 THI CÔNG HỆ THỐNG.................................................................................... 40
4.2.1 Thi công bo mạch hệ thống ............................................................................. 42
4.2.2 Lắp ráp và kiểm tra bo mạch hệ thống ............................................................ 42
4.2.3 Thi công bo mạch module relay điều khiển ngõ ra ......................................... 42
4.2.4 Lắp ráp và khiểm tra bo mạch module relay điều khiển ngõ ra ...................... 44
4.3 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH ........................................................... 45
4.3.1 Đóng gói bộ điều khiển ................................................................................... 45
4.3.2 Thi công mô hình............................................................................................. 45
4.4 LẬP TRÌNH HỆ THỐNG .................................................................................. 46
4.4.1 Lưu đồ giải thuật.............................................................................................. 46
4.4.2 Phần mềm lập trình cho vi điều khiển............................................................. 58
4.4.3 Phần mềm lập trình Android Studio................................................................ 63
4.4.4 Phần mềm lập trình web .................................................................................. 69
4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC............................... 80
4.5.1 Viết tài liệu hướng dẫn sử dụng ...................................................................... 82
4.5.2 Quy trình thao tác ............................................................................................ 83
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ ................................... 85
5.1 KẾT QUẢ........................................................................................................... 85
5.2 NHẬN XÉT – ĐÁNH GIÁ .............................................................................. 112
CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.......................... 114
6.1 KẾT LUẬN ...................................................................................................... 114
ix
6.2 HƯỚNG PHÁT TRIỂN ................................................................................... 115
TÀI LIỆU THAM KHẢO........................................................................... 116
PHỤ LỤC………………………….. ........................................................... 117
x
LIỆT KÊ HÌNH VẼ
Hình Trang
Hình 2.1 Các loại Board Arduino .................................................................................5
Hình 2.2 Arduino Mega 2560 .......................................................................................7
Hình 2.3 Module Sim 800A..........................................................................................7
Hình 2.4 Module cảm biến vân tay R305 .....................................................................8
Hình 2.11 Màn hình LCD 20x4 ....................................................................................11
Hình 2.12 Mạch chuyển giao tiêp LCD 20x4 ...............................................................12
Hình 2.13 Sơ đồ nối dây và hình ảnh thực tế của bàn phím ma trận 4x4 .....................13
Hình 2.14 Động cơ Servo SG90 9g Micro....................................................................13
Hình 2.18 Biểu đồ thời gian của giao thức I2
C.............................................................16
Hình 3.1 Sơ đồ khối hệ thống .......................................................................................18
Hình 3.2 Sơ đồ khối hệ thống thiết bị thực tế ...............................................................19
Hình 3.3 Mô hình hệ thống ...........................................................................................20
Hình 3.4 Khối xử lý trung tâm sử dụng board Arduino Mega 2560.............................22
Hình 3.5 Cảm biến vân tay R305..................................................................................22
Hình 3.6 Sơ đồ nguyên lý Cảm biến vân tay kết nối Arduino Mega............................23
Hình 3.10 Module Sim 800A........................................................................................26
Hình 3.11 Sơ đồ nguyên lý kết nối Module Sim 800A vào Arduino Mega .................27
Hình 3.14 Động cơ servo 9g .........................................................................................29
Hình 3.15 Sơ đồ nguyên lý kết nối Arduino Mega với động cơ Servo SG90 ..............30
Hình 3.16 LCD 20x4.....................................................................................................31
Hình 3.17 Mạch chuyển giao tiếp LCD sang I2C.........................................................31
Hình 3.18 Sơ đồ nguyên lý kết nối Arduino Mega với LCD........................................32
Hình 3.19 Sơ đồ nối dây và hình ảnh thực tế của bàn phím ma trận 4x4 .....................32
Hình 3.20 Sơ đồ nguyên lý kết nối Arduino Mega với ma trận phím ..........................33
Hình 3.24 Nguồn tổ ong 12V 5A..................................................................................36
Hình 3.25 Nguồn tổ ong 5V 4A....................................................................................36
Hình 3.26 Mạch giảm áp LM2596................................................................................37
Hình 3.27 Sơ đồ nguyên lý toàn mạch..........................................................................39
Hình 4.1 Sơ đồ đi dây đã phủ đồng bo mạch hệ thống .................................................40
Hình 4.2 Hình dạng 3D lớp top bo mạch hệ thống .......................................................41
Hình 4.5 Sơ đồ bố trí linh kiện mặt trước mô hình.......................................................45
Hình 4.6 Hình dạng mặt bên mô hình .........................................................................45
xi
Hình 4.7 Hình dạng mặt trên mô hình ..........................................................................45
Hình 4.10 Lưu đồ hệ thống đóng mở cửa .....................................................................48
Hình 4.11 Lưu đồ mở cửa bằng vân tay........................................................................49
Hình 4.12 Lưu đồ chuyển dữ liệu lên web....................................................................50
Hình 4.13 Lưu đồ chế độ mở cửa bằng ma trận phím ..................................................51
Hình 4.14 Lưu đồ mở lại hệ thống khi bị khóa.............................................................52
Hình 4.15 Lưu đồ quản trị admin..................................................................................53
Hình 4.16 Lưu đồ thêm vân tay ....................................................................................54
Hình 4.17 Lưu đồ xóa vân tay.......................................................................................55
Hình 4.20 Quy trình làm việc của arduino....................................................................58
Hình 4.21 Giao diện lập trình arduino ..........................................................................58
Hình 4.22 Giao diện menu arduino IDE......................................................................59
Hình 4.23 Giao diện file menu arduino IDE................................................................59
Hình 4.28 Board Arduino sử dụng................................................................................61
Hình 4.29 Hiển thị Board và Serial Port đã kết nối ......................................................62
Hình 4.30 Arduino Toolbar...........................................................................................62
Hình 4.42 Tạo file mới trên Sublime Text....................................................................69
Hình 4.43 Lưu file php..................................................................................................70
Hình 4.44 Phác thảo giao diện website quản lý thời gian.............................................72
Hình 4.45 Đăng nhập vào trang phpMyAdmin ..........................................................73
Hình 4.46 Khởi tạo CSDL .............................................................................................73
Hình 4.47 Tạo bảng dữ liệu bằng cách thủ công........................................................74
Hình 4.48 Bảng dữ liệu “giamsat” được tạo ra ..........................................................74
Hình 4.49 Các bảng trong cơ sở dữ liệu .....................................................................75
Hình 4.50 Giao diện phần mềm Filezilla quản lý các file nguồn...............................75
Hình 4.51 Các file và nguồn dữ liệu cho website .........................................................76
Hình 4.52 Lưu đồ tương tác dữ liệu giữa người dùng và MySQL. ..............................77
Hình 4.53 Lưu đồ chương trình điều khiển thiết bị Internet.........................................79
Hình 4.54 Quy trình thao tác hệ thống đóng mở cửa....................................................83
Hình 4.55 Quy trình thao tác hệ thống điều khiển thiết bị và hệ thống cảnh báo.........84
Hình 5.1 Menu lựa chọn................................................................................................86
Hình 5.2 Menu quản trị admin ......................................................................................86
Hình 5.3 Nhập mật khẩu quản trị..................................................................................86
Hình 5.4 Nhập lại mật khẩu quản trị.............................................................................86
xii
Hình 5.5 Chờ quét vân tay để mở cửa...........................................................................87
Hình 5.6 Mở cửa bằng vân tay thành công ...................................................................87
Hình 5.7 Cập nhật vân tay lên website..........................................................................88
Hình 5.8 Vân tay sai......................................................................................................88
Hình 5.9 Thêm ID người dùng mới ............................................................................89
Hình 5.10 Quét vân tay người dùng mới lần 1..............................................................89
Hình 5.11 Quét vân tay người dùng mới lần 2..............................................................89
Hình 5.12 Nhập ID cần xóa vân tay..............................................................................89
Hình 5.13 Nhập mật khẩu mở cửa ................................................................................90
Hình 5.14 Mở cửa bằng mật khẩu thành công..............................................................90
Hình 5.15 Nhập mật khẩu sai........................................................................................90
Hình 5.17 Nhập mật khẩu cũ.........................................................................................91
Hình 5.18 Nhập mật khẩu mới......................................................................................91
Hình 5.20 Mở hệ thống thành công...............................................................................92
Hình 5.22 Nhiệt độ, độ ẩm, khí gas trên Internet..........................................................93
Hình 5.23 Kết quả điều khiển thiết bị trên Smartphone................................................93
Hình 5.24 Kết quả điều khiển khiển thiết bị trên Internet.............................................94
Hình 5.25 Kết quả trên hệ thống ...................................................................................94
Hình 5.26 Hẹn giờ tắt/mở thiết bị trên Internet.............................................................95
Hình 5.27 Cú pháp kiểm tra hệ thống và tin nhắn phản hồi từ hệ thống ......................95
Hình 5.28 Tin nhắn cảnh báo khí gas trên hệ thống vượt ngưỡng cho phép................96
Hình 5.29 Cửa sổ đăng nhập hệ thống ..........................................................................97
Hình 5.30 Trang chủ chế độ admin...............................................................................98
Hình 5.31 Lọc dữ liệu thời gian mở cửa .......................................................................98
Hình 5.32 Xuất file Excel thống kê thời gian mở cửa ..................................................99
Hình 5.33 Nội dung file Excel thống kê thời gian mở cửa ...........................................99
Hình 5.34 Tổng kết thời gian ........................................................................................100
Hình 5.35 Xuất file Excel tổng kết thời gian ................................................................100
Hình 5.36 Nội dung file Excel tổng kết thời gian.........................................................100
Hình 5.37 Danh sách quản lý người dùng.....................................................................102
Hình 5.38 Xuất file Excel danh sách quản lý người dùng ............................................102
Hình 5.39 Thêm người dùng.........................................................................................103
Hình 5.40 Phản hồi........................................................................................................103
Hình 5.41 Trang chủ supervisor....................................................................................103
xiii
Hình 5.42 Tổng kết thời gian supervisor ......................................................................105
Hình 5.43 Hồ sơ cá nhân supervisor .............................................................................106
Hình 5.44 Gửi phản hồi.................................................................................................106
Hình 5.45 Trang chủ user..............................................................................................107
Hình 5.46 Hồ sơ cá nhân supervisor .............................................................................108
Hình 5.47 Hình thực tế gắn linh kiện cho mặt trên.......................................................109
Hình 5.48 Hình ảnh thực tế gắn linh kiện cho mặt dưới...............................................109
Hình 5.50 Mặt ngoài mô hình .......................................................................................110
Hình 5.51 Mặt trong mô hình........................................................................................111
Hình 5.52 Mặt sau mô hình...........................................................................................111
xv
LIỆT KÊ BẢNG
Bảng Trang
Bảng 2.1 Các chân của LCD.................................................................................12
Bảng 4.1 Danh sách các linh kiện mạch chính...................................................41
Bảng 4.2 Danh sách các linh kiện mạch relay....................................................44
xvi
TÓM TẮT
Ngày nay, với sự phát triển vượt bậc của khoa học công nghệ, kéo theo các công nghệ
nhận dạng sinh trắc học phát triển. Do tính bảo mật cũng như giá thành không quá đắt nên
công nghệ nhận dạng vân tay được được sử dụng rộng rãi trong đời sống. Công nghệ nhận
dạng vân tay được tích hợp trong nhiều thiết bị điện tử mang lại những ứng dụng cần thiết
cho nhu cầu của con người. Những ứng dụng hiện hữu của công nghệ nhận dạng vân tay
như quét vân tay để đóng mở cửa, quản lí số lượng cá nhân ra vào hay điểm danh chấm
công trong một công ty, bệnh viện hay trường học,…
Được sự gợi ý từ giáo viên hướng dẫn cũng như mong muốn tìm hiểu các công nghệ
đang phát triển trên thế giới. Nên nhóm thực hiện đồ án này với mong muốn chế tạo ra một
hệ thống giám sát và cảnh báo thời gian ra vào lớp học của sinh viên thông qua việc quét
vân tay. Hệ thống quét vân tay sử dụng kit Arduino được giám sát và cảnh báo bằng máy
tính qua Internet bao gồm:
Hệ thống bao gồm cửa được đóng mở bằng hệ thống quét vân tay hoặc bằng ma trận
phím. Quá trình quét vân tay sẽ được gửi lên Internet nhằm thống kê thời gian ra vào lớp
học, số lần đi trễ, số ngày vắng, thông tin sinh viên, giảng viên… Hệ thống cho phép thêm
vân tay hay xóa vân tay người dung, đổi mật khẩu,… Hệ thống sẽ gửi cảnh báo về mail
của người dùng về thời gian ra vào cũng như số ngày trễ, vắng.
Mô hình sử dụng kit Arduino Mega 2560 làm vi điều khiển trung tâm để điều khiển
các module mở rộng như cảm biến vân tay R305, Sim 800, ma trận phím,…
Cửa được điều khiển bằng động cơ servo qua việc quét vân tay hay nhập mật khẩu.
Người dùng dễ dàng tương tác sử dụng thông qua cảm biến vân tay, ma trận phím. Giám
sát và cảnh báo người dùng thông qua mạng Internet.
CHƯƠNG 1. TỔNG QUAN
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Chương 1. TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Trong thời đại ngày nay, sự phát triển không ngừng của khoa học kỹ thuật đã giúp
cho con người thuận tiện hơn trong các công việc hằng ngày. Với sự bùng nổ về công
nghệ thông tin, quá trình toàn cầu hóa diễn ra nhanh chóng, sự bảo mật riêng tư thông
tin cá nhân cũng như để nhận biết một người nào đó trong hàng tỉ người trên trái đất
đòi hỏi phải có một tiêu chuẩn, hệ thống đảm nhận các chức năng đó. Công nghệ sinh
trắc ra đời và đáp ứng được các yêu cầu trên.
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. Nhận dạng vân tay đượ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.
Với việc kế thừa và phát triển từ đề tài trước đó “Thiết kế và thi công hệ thống đóng
mở cửa bằng vân tay sử dụng kit Arduino được giám sát bằng máy tính thông qua
Internet”., nhóm sinh viên quyết định thực hiện mở rộng thêm với tên đề tài “GIÁM
SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY
ĐIỀU KHIỂN QUA MẠNG INTERNET” nhằm mục đích kiểm soát tốt hơn trong việc
quản lý sinh viên trong trường học cũng như thông báo, cảnh báo cho sinh viên biết
được số lần vi phạm của mỗi sinh viên trong quá trình tham gia hoạt động học tập trên
lớp.
Dấu vân tay của mỗi cá nhân là độc nhất và không thay đổi trong suốt cuộc đời.
Vân tay là một tham số sinh học bất biến theo tuổi tác đặc trưng cho mỗi cá thể. Mạng
Internet đang ngày càng phát triển, nhờ có nó mà cuộc sống và công việc của con người
ngày càng hiện đại hơn. Vì vậy, việc truyền dữ liệu lên mạng quản lý dữ liệu vân tay
bằng Internet trở nên tiện lợi, nhanh chóng và chính xác. Mặt khác, việc phát triển không
CHƯƠNG 1. TỔNG QUAN
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
ngừng của vi xử lý đã cho ra đời nhiều loại sản phẩm thông minh nhỏ gọn, tích hợp
nhiều chứ năng cho người dùng dễ sử dụng. Không thể không kể đến kit Arduino- một
sản phẩm được sử dụng trên toàn cầu và có cộng đồng người dùng rất lớn. Kit Arduino
có thể kết hợp với nhiều module khác để tạo nên những ứng dụng thiết thực cho cuộc
sống hiện đại ngày nay. Với những đặc tính trên, nhóm đã quyết định thực hiện mô hình
bao gồm Arduino, module cảm biến vân tay, động cơ servo và ma trận phím để làm một
hệ thống quét vân tay quản lí sinh viên và gửi dữ liệu lên Internet, cảnh báo số lần vi
phạm của sinh viên thông qua việc mail thông báo cho sinh viên.
1.2 MỤC TIÊU
Tìm hiểu và nghiên cứu về kit Arduino, module cảm biến vân tay R305, thiết bị điện
và cách kết nối giữa các module để hoàn thành mô hình hoàn thiện.
Xây dựng hệ thống quét dấu vân tay để điều khiển đóng mở cửa qua cảm biến vân
tay và dữ liệu vân tay sẽ được gửi lên Internet thông qua module Sim 800A.
Dữ liệu vân tay, thống kê thời gian ra vào, số lần ra vào, số lần trễ so với quy định
của người dùng sẽ được quản lý thông qua Internet.
Cảnh báo sinh viên ra số lần ra vào, số lần trễ, vắng bằng cách gửi bảng thống kê về
mail của người dùng.
1.3 NỘI DUNG THỰC HIỆN
 NỘI DUNG 1: Tìm hiểu và nghiên cứu về cấu tạo phần cứng, nguyên lý hoạt
động, tính năng của các module Arduino, R305, động cơ servo, ma trận phím.
 NỘI DUNG 2: Tìm hiểu và nghiên cứu về lập trình Web Server, tìm hiểu về
ngôn ngữ HTML, CSS, PHP, cơ sở dữ liệu MySQL, gửi thông tin đến mail sinh
viên.
 NỘI DUNG 3: Các giải pháp thiết kế hệ thống, thi công mô hình.
 NỘI DUNG 4: Thiết kế hệ thống điều khiển, lưu đồ giải thuật và chương trình
điều khiển mô hình hệ thống.
 NỘI DUNG 5: Thiết kế hoàn chỉnh mô hình thực tế.
 NỘI DUNG 6: Tiến hành chạy thử nghiệm mô hình hệ thống.
CHƯƠNG 1. TỔNG QUAN
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
 NỘI DUNG 7: Cân chỉnh mô hình hệ thống.
 NỘI DUNG 8: Viết sách luận văn.
 NỘI DUNG 9: Bảo vệ đề tài tốt nghiệp.
1.4 GIỚI HẠN
Thiết kế mô hình cửa có kích thước dài, rộng, cao là 30 x 30 x 30 cm bằng mica và
giấy foam.
Cảm biến vân tay R305 có thể quét và lưu trữ hơn 120 mẫu vân tay khác nhau.
Hệ thống sử dụng được khi cấp điện, không có nguồn dự phòng.
Hai nguồn tổ ông cấp cho toàn hệ thống có thông số: 12V 5A và 5V 4A.
1.5 BỐ CỤC
 Chương 1: Tổng Quan
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. Như: 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.
CHƯƠNG 1. TỔNG QUAN
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
 Chương 5: Kết Quả_Nhận Xét_Đánh Giá
Trình bày về những kết quả đã được mục tiêu đề ra sau quá trình nghiên cứu thi công.
Từ những kết quả đạt được để đánh giá quá trình hoàn thành được bao nhiêu phần trăm.
 Chương 6: Kết Luận Và Hướng Phát Triển
Trình bày về những kết quả mà đồ án đạt được, những hạn chế, từ đó rút ra kết luận
và hướng phát triển để giải quyết các vấn đề tồn đọng để đồ án hoàn thiện hơn.
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Chương 2. CƠ SỞ LÝ THUYẾT
2.1 TỔNG QUAN VỀ ARDUINO
Hình 2.1. Các loại Board Arduino
2.2.1 Giới thiệu
Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các
thiết bị phần cứng như cảm biến, động cơ hoặc các thiết bị khác. Đặc điểm nổi bật của
Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập
trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập
trình cũng có thể sử dụng một cách dễ dàng. Arduino có mức giá thấp, phù hợp với nhu
cầu người dùng, có tính chất nguồn mở và cộng đồng người dùng đông đảo. Với lợi thế
đến từ giá thành cũng như lợi thế về cộng đồng người dùng, không quá ngạc nhiên khi
được biết số người sử dụng Arduino trải rộng từ học sinh phổ thông đến sinh viên đại
học.
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Board mạch Arduino được sử dụng để thực hiện nhiều ứng dụng như: cánh tay
robot, điều khiển và giám sát nhiệt độ độ ẩm phòng thí nghiệm, điều khiển động cơ đóng
mở cửa, ...
2.2.2 Phần cứng
Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử
lý AVR Atmel 8-bit, hoặc ARM Atmel 32-bit. Board Arduino sẽ đưa ra hầu hết các chân
I/O của vi điều khiển để sử dụng cho những mạch ngoài.
Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào
analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau giúp dễ
dàng lập trình và có thể mở rộng với các mạch khác, các module thêm vào có thể dễ
dàng chuyển đổi, được gọi là shield. Vài shield kết nối với board Arduino trực tiếp thông
qua các chân khác nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I2C,
nhiều shield có thể được xếp chồng và sử dụng dưới dạng song song. Arduino chính
thức thường sử dụng các dòng chip MegaAVR, đặc biệt là ATMega8, ATMega168,
ATMega328, ATMega1280, và ATMega2560.
Theo nguyên tắc, khi sử dụng phần mềm Arduino, tất cả các board được lập trình
thông qua một kết nối RS-232, nhưng cách thức thực hiện lại tùy thuộc vào đời phần
cứng. Các board Serial Arduino có chứa một mạch chuyển đổi giữa RS-232 sang TTL.
Các board Arduino hiện tại được lập trình thông qua cổng USB, thực hiện thông qua
chip chuyển đổi USB-to-serial như là FTDI FT232.
2.2 NHẬN DẠNG VÂN TAY
2.2.1 Giới thiệu sơ lược về dấu vân tay và nhận dạng vân tay
a. Khái niệm về dấu vân tay
Vân tay [1] là do các gai da đội lớp biểu bì lên mà thành. Đó là nơi tập kết miệng
các tuyến mồ hôi, tuyến bã nhờn… Nó đã định hình khi con người còn là cái thai 4 tháng
trong bụng mẹ. Khi đứa bé ra đời, lớn lên, vân tay được phóng đại nhưng vẫn giữ nguyên
dạng cho đến khi về già. Nếu tay có bị bỏng, bị thương, bị bệnh thì khi lành, vân tay lại
tái lập y hệt như cũ. Chỉ khi có tổn thương sâu huỷ hoại hoàn toàn, sẹo chằng chịt mới
xoá mất vân tay.
Vân tay không ai giống ai, đặc sắc nhất là vân ngón cái và ngón trỏ.
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
b. Giới thiệu về nhận dạng vân tay
Từ xa xưa, con người đã nhận ra mỗi cá nhân đều có một vân tay riêng nhưng chưa
có một cơ sở khoa học nào để nghiên cứu và nhận dạng. Nhưng đến thế kỷ 16, các kỹ
thuật vân tay khoa học hiện đại đã xuất hiện và từ đó các lí thuyết và chương trình mô
tả, nhận dạng vân tay mới phát triển mau chóng. Năm 1888, Francis Galton giới thiệu
các đặc trưng chi tiết phục vụ cho đối sánh vân tay.
Nhưng đến đầu thế kỉ 20, nhận dạng vân tay chính thức được chấp nhận như một
phương pháp nhận dạng cá nhân có giá trị và trở thành tiêu chuẩn trong pháp luật. Ví
dụ, năm 1924 FBI đã thiết lập một cơ sở dữ liệu có 810.000 thẻ vân tay.
2.2.2 Việc ứng dụng công nghệ nhận dạng vân tay hiện nay
Trên thế giới hiện nay đã xuất hiện nhiều sản phẩm công nghệ cao sử dụng phương
pháp nhận dạng vân tay như khóa vân tay, máy chấm công vân tay, máy tính xách tay,
điện thoại thông minh... Tuy nhiên đây vẫn là vấn đề còn chưa được nghiên cứu nhiều
ở Việt Nam. Ở nước ta, phương pháp này mới chỉ phổ biến ở việc quản lý nhân sự thông
qua chứng minh thư nhân dân và phục vụ điều tra phá án. Các sản phẩm công nghệ cao
nói trên chúng ta vẫn phải nhập khẩu với giá thành khá cao, do đó chúng vẫn chưa được
phổ biến rộng rãi.
2.2.3 Nguyên lý hoạt động cơ bản của nhận dạng vân tay
Nguyên lý hoạt động của công nghệ nhận dạng vân tay là khi đặt ngón tay lên trên
một thiết bị nhận dạng dấu vân tay, ngay lập tức thiết bị này sẽ quét hình ảnh ngón tay
đó và đối chiếu các đặc điểm của ngón tay đó với dữ liệu đã được lưu trữ trong hệ thống.
Quá trình xử lý dữ liệu sẽ được thiết bị chuyển sang các dữ liệu số và ra thông báo rằng
dấu vân tay đó là hợp lệ hay không hợp lệ để cho phép hệ thống thực hiện các chức năng
tiếp theo. Hệ thống sinh trắc học sẽ ghi nhận mẫu vân tay của người dùng và lưu trữ tất
cả những dữ liệu đặc biệt này thành một mẫu nhận diện được số hoá toàn phần. Có hai
phương pháp để lấy dấu vân tay.
Cách thứ nhất (cổ điển) là sao chép lại hình dạng vân tay (như lăn tay bằng mực,
hay chạm vào một vật gì đó) thông qua máy quét ghi nhận và xử lý.
Cách thứ hai, hiện tại đa số các nước đều sử dụng phần mềm hoặc thiết bị quét vân
tay để nhận dạng vân tay.
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
2.2.4 Các bước xử lý trong quá trình nhận dạng vân tay
Quá trình xử lý nhận dạng vân tay được chia làm hai quá trình lớn: quá trình xử lý
ảnh và quá trình so sánh vân tay.
a. Quá trình xử lý ảnh
Image Enhancement Image Analysis Binarization
Thinning
Minutiae Extraction
Hình 2.2. Sơ đồ quá trình xử lý ảnh
Mục đích của quá trình này được biểu diễn qua hình 2.2 là tăng cường ảnh vân tay,
sau đó, rút trích các đặc trưng vân tay từ ảnh đã được tăng cường. Quá trình này được
thực hiện qua các bước nhỏ sau:
- Tăng cường ảnh (Image Enhancement): Ảnh được lấy từ thiết bị đầu đọc vân
tay sẽ được làm rõ. Do các thiết bị đầu đọc vân tay không lấy ảnh tốt hay do vân tay của
người dùng trong lúc lấy bị hao mòn, dơ bẩn, hay do lực ấn ngón tay trong lúc lấy vân
tay. Vì vậy, bước này là một trong các bước quan trọng nhất của quá trình này để làm
rõ ảnh vân tay để rút trích các đặc trưng đúng và đầy đủ.
- Phân tích ảnh (Image Analysis): Thông qua phân tích ảnh, ảnh sẽ được loại
bỏ những thông tin làm nhiễu hay những thông tin không cần thiết.
- Nhị phân hóa (Binarization): Nhị phân hóa ảnh vân tay thành ảnh trắng đen.
Bước này phục vụ cho bước Làm mỏng vân tay. Bước này có thể có hoặc không vì phục
thuộc vào thuật toán rút trích đặc trưng.
- Làm mỏng (Thinning): Làm mỏng các đường vân lồi của ảnh vân tay. Bước
này nhằm mục đích cho việc rút trích đặc trưng của vân tay. Bước này cũng có thể có
hoặc không vì phục thuộc vào thuật toán rút trích đặc trưng.
- Rút trích đặc trưng (Minutiae Extraction): Rút trích những đặc trưng cần
thiết cho quá trình so sánh vân tay.
b. Quá trình so sánh vân tay
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Minutiae Analysis Local
Similarily
Calculate
Matching Score
Global
Similarily
Hình 2.3. Sơ đồ quá trình so sánh vân tay
Mục đích của quá trình này được biểu diễn trên hình 2.3 là so sánh vân tay dựa trên
các đặc trưng đã được rút trích. Quá trình này được thực hiện qua các bước nhỏ sau:
- Phân tích đặc trưng (Minutiae Analysis): Phân tích các đặc điểm cần thiết
của các đặc trưng để phục vụ cho việc so sánh vân tay.
- Xét độ tương tự cục bộ (Local Similarily): Thuật toán so sánh vân tay sẽ dựa
vào các thông tin cục bộ của các đặc trưng (gồm: tọa độ (x, y), hướng của đặc trưng, góc
tạo bởi tiếp tuyến của đường vân tại đặc trưng và trục ngang) của vân tay để tìm ra các
cặp đặc trưng giống nhau giữa hai vân tay.
- Xét độ tương tự toàn cục (Global Similarily): Từ nhưng khu vực tương tự
nhau trên cục bộ, thuật toán sẽ tiếp tục mở rộng so sánh trên toàn cục.
- Tính điểm so sánh (Calculate Matching Score): Tính toán tỷ lệ độ giống nhau
giữa các cặp đặc trưng. Điểm so sánh này sẽ cho biết độ giống nhau của hai ảnh vân tay
là bao nhiêu.
2.3 GIỚI THIỆU PHẦN CỨNG
 Thiết bị đầu vào: bàn phím ma trận 4x4, module cảm biến vân tay R305,
Module Ethernet Shield, Module Bluetooth HC-05.
 Thiết bị đầu ra: màng hình LCD 20x4, động cơ Servo SG90, relay
 Thiết bị điều khiển trung tâm: Board Arduino Mega 2560.
 Các chuẩn truyền dữ liệu UART, SPI, chuẩn giao tiếp 1 Wire.
2.3.1 Arduino Mega 2560
Arduino Mega 2560 sử dụng chip ATmega2560. Nó có 54 chân digital I/O (trong
đó có 15 chân điều chế độ rộng xung PWM), 16 chân đầu vào tương tự (Analog Inputs),
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
4 UARTs (cổng nối tiếp phần cứng), một thạch anh dao động 16 MHz, kết nối USB,
một jack cắm điện, một đầu ICSP và một nút reset. Nó chứa tất cả mọi thứ cần thiết để
hỗ trợ các vi điều khiển, chỉ đơn giản là kết nối nó với một máy tính bằng cáp USB hoặc
với một bộ chuyển đổi điện AC-DC hoặc có thể sử dụng pin.
Board có khả năng tự động reset nhờ phần mềm thay vì đòi hỏi phải ấn nút reset
trước khi tải lên. Phần mềm Arduino sử dụng khả năng này để cho phép nạp code lên
chỉ cần nhấn vào nút Upload trong Arduino IDE. Điều này có nghĩa rằng bộ nạp khởi
động có thể có một thời gian chờ ngắn hơn. Arduino Mega 2560 có thể bảo vệ cổng
USB của máy tính khi xảy ra hiện tượng quá dòng. Mặc dù hầu hết các máy tính cung
cấp bảo vệ nội bộ, các cầu chì cung cấp thêm một lớp bảo vệ. Nếu dòng cao hơn 500mA
được áp dụng cho các cổng USB, cầu chì sẽ tự động phá vỡ các kết nối cho đến khi ngắt
hoặc hiện tượng quá tải được khắc phục.
a. Thông số kỹ thuật Arduino Mega 2560
- Chip vi điều khiển: ATmega2560.
- Điện áp cấp nguồn: 5V.
- Điện áp đầu vào (kiến nghị): 7-12V.
- Điện áp đầu vào (giới hạn): 6-20V.
- Số chân Digital I/O: 54 (có 15 chân điều chế độ rộng xung PWM).
- Số chân Analog (Input): 16.
- Dòng DC trên chân I/O: 40 mA.
- Dòng DC cho chân 3.3V: 50 mA.
- Flash Memory: 256KB trong đó có 8KB được sử dụng bởi bộ nạp khởi động
(bootloader).
- SRAM: 8 KB.
- EEPROM: 4 KB.
- Xung nhịp: 16 MH.
- Chiều dài: 101,52 mm.
- Chiều rộng: 53,3 mm.
- Cân nặng: 37 g.
b. Sơ đồ kết nối chân của Arduino Mega 2560
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trong hình 2.4 bên dưới là hình ảnh sơ đồ các chân kết nối trên Arduino Mega 2560
cùng với hình 2.5 là vị trí các chân của Arduino Mega 2560.
Hình 2.4. Sơ đồ các chân kết nối trên Arduino Mega 2560
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Hình 2.5. Vị trí chân Arduino Mega
 USB (1):
Arduino sử dụng cáp USB để giao tiếp với máy tính. Thông qua cáp USB chúng ta
có thể Upload chương trình cho Arduino hoạt động, ngoài ra USB còn là nguồn cho
Arduino.
 Nguồn (2 và 3):
Khi không sử dụng USB làm nguồn thì chúng ta có thể sử dụng nguồn ngoài thông
qua jack cắm 2.1mm (cực dương ở giữa) hoặc có thể sử dụng 2 chân Vin và GND để
cấp nguồn cho Arduino. Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5 – 20 volt.
Chúng ta có thể cấp một áp lớn hơn tuy nhiên chân 5V sẽ có mức điện áp lớn hơn 5 volt.
Và nếu sử dụng nguồn lớn hơn 12 Volt thì sẽ có hiện tượng nóng và làm hỏng bo mạch.
Khuyến cáo nên dùng nguồn ổn định từ 6 đến dưới 12 volt. Chân 5V và chân 3.3V
(Output voltage): các chân này dùng để lấy nguồn ra từ nguồn mà chúng ta đã cung cấp
cho Arduino để cấp cho các thiết bị giao tiếp khác. Lưu ý: không được cấp nguồn vào
các chân này vì sẽ làm hỏng Arduino.
 Ngõ vào tương tự (4):
Arduino Mega 2560 có 16 ngõ vào tương tự (các chân từ A0 đến A15), mỗi ngõ
vào này đều có độ phân giải 10 bit (1024 giá trị). Mặc định đo từ 0 đến 5V, có thể thiết
ập giá trị bằng cách điều chỉnh chân AREF và sử dụng hàm Analog Referency() để
chuyển đổi.
 Ngõ vào số (5 và 6):
Mỗi một chân trong 54 chân số của board đều có thể sử dụng như một ngõ vào
hoặc ngõ ra. Mỗi chân có thể cung cấp hoặc nhận được tối đa 40 mA và có một điện trở
kéo lên bên trong 20-50 kOhms. Ngoài ra, một số chân có chức năng đặc biệt:
- Serial: để truyền và nhận dữ liệu nối tiếp. Gồm các chân: Serial 0: 0 (RX)
và 1 (TX); Serial 1: 19 (RX) và 18 (TX); Serial 2: 17 (RX) và 16 (TX); Serial 3: 15 (RX)
và 14 (TX).
- External Interrupt: Các chân này có thể được cấu hình để kích hoạt sự
kiện ngắt mức thấp, ngắt cạnh lên hoặc xuống. Gồm các chân: 2 (interrupt 0), 3 (interrupt
1), 18 (interrupt 5), 19 (interrupt 4), 20 (interrupt 3), 21 (interrupt 2).
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
- PWM: Cung cấp ngõ ra PWM 8 bit. Gồm các chân từ chân 2 đến 13 và 44
đến 46.
- SPI: Các chân này hỗ trợ giao tiếp SPI bằng cách sử dụng thư viện SPI. Có
các chân: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS).
- TWI: Hỗ trợ giao tiếp TWI bằng việc sử dụng thư viện WIRE. Có các chân:
20 (SDA) và 21 (SCL).
 Nút Retset (7):
Mang dòng mức thấp để thiết lập lại vi điều khiển.
2.3.2 Module cảm biến vân tay R305 (Finger print R305)
Hiện tại trên thị trường có rất nhiều loại cảm biến để nhận dạng và phát hiện người
dùng như: cảm biến nhận dạng khuôn mặt, cảm biến hồng ngoại, cảm biến giọng nói,
RFID,… nhưng với tính bảo mật và tiện lợi của cảm biến vân tay rất phù hợp cho việc
quản lý khóa và mở cửa.
Đây là module nhận dạng vân tay giao tiếp trực tiếp qua giao thức UART có thể
kết nối trực tiếp đến vi điều khiển hoặc qua PC adapter Max232/USB-Serial. Người sử
dụng có thể lưu trữ dữ liệu vân tay trực tiếp vào module. Module có thể dễ dàng giao
tiếp với các loại vi điều khiển chuẩn 3.3V hoặc 5V. Có một con Led xanh được bật sáng
nằm sẵn trong ống kính trong suốt quá trình chụp vân tay. Cảm biến với độ chính xác
cao và có thể được nhúng vào các thiết bị như: điều khiển truy cập, két sắt, khóa cửa
nhà, khóa cửa xe,…
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trong hình 2.6 là hình ảnh thực tế của module cảm biến vân tay R305.
Hình 2.6. Module cảm biến vân tay R305
a. Nguyên lý hoạt động
Nguyên lý hoạt động của module cảm biến vân tay cơ bản có 2 phần:
- Lấy dữ liệu hình ảnh của vân tay: Khi lấy dữ liệu, người dùng cần phải thực
hiện quét dấu vân tay hai lần thông qua cảm biến quang học. Hệ thống sẽ tiến hành thuật
toán xử lý hình ảnh của 2 lần quét vân tay, tạo ra một khuôn mẫu của các vân tay dựa
trên kết quả xử lý và lưu trữ lại các bản mẫu.
- So sánh dấu vân tay (có thể theo chế độ 1:1 hoặc theo 1:N): Khi người dùng
thực hiện quét dấu vân tay, module sẽ chụp lại dữ liệu hình ảnh vân tay và so sánh với
các mẫu vân tay đã được lưu trữ sẵn trong thư viện. Đối với 1:1, hệ thống sẽ so sánh
trực tiếp vân tay với mẫu được chỉ định cụ thể trong module; đối với 1:N, hoặc tìm kiếm,
hệ thống sẽ tìm kiếm trong thư viện để tìm vân tay phù hợp. Sau đó trả về kết quả đúng
nếu trùng khớp hoặc kết quả sai nếu không trùng khớp dữ liệu đã được lưu trữ.
b. Các đặc tính
Module tích hợp nhiều loại chip xử lý trong cùng 1 module: cảm biến dấu vân tay
quang học, bộ vi xử lý DSP tốc độ cao, bộ nhớ PLASH…
Dễ dàng sử dụng với các tính năng bảo mật cao, thông minh. Mức độ bảo mật điều
chỉnh được: thích hợp cho các ứng dụng khác nhau, mức độ bảo mật có thể được thiết
lập điều chỉnh bởi người sử dụng.
Người dùng có thể tiến hành phát triển kết hợp với các module khác để làm ra một
loạt các sản phẩm cuối cùng, chẳng hạn như: kiểm soát quyền truy cập, điểm danh vào
lớp học hoặc chấm công, két an toàn, khóa cửa nhà hay cửa xe…
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Tiêu thụ điện năng thấp, giá thành không cao, kích thước nhỏ gọn, hiệu năng tuyệt
vời.
Khả năng chống tĩnh điện mạnh mẽ, chỉ số chống tĩnh điện đạt 15KV trở lên.
Khả năng xử lý hình ảnh tốt, có thể chụp được hình ảnh có độ phân giải lên đến
500 dpi.
c. Thông số kỹ thuật
Điện áp cung cấp: DC 3.6 ~ 6.0V.
Dòng cung cấp:
 Dòng làm việc bình thường: 40 mA.
 Dòng đỉnh: 150 mA.
Thời gian thu thập hình ảnh: < 0.5 giây.
Kích thước cửa sổ quét: 18x22 mm.
Chế độ quét:
 So sánh với một mẫu duy nhất (1:1).
 Tìm kiếm và so sánh với mẫu lưu trong bộ nhớ (1: N).
Bộ nhớ lưu trữ mẫu: 256 bytes.
Mức độ an toàn: năm (từ thấp đến cao: 1, 2, 3, 4, 5 (cao nhất)).
Tỷ lệ lỗi chấp nhận nhầm (FAR): < 0,001.
Tỷ lệ từ chối nhầm (FRR): < 0.1%.
Thời gian tìm kiếm: < 0.8 giây (1: 880, trung bình).
Giao tiếp với máy tính: UART (TTL mức logic) hoặc USB 1:1
Tốc độ truyền thông tin liên lạc (UART): (9600 x N) bps đó N = 1 ~ 12 (giá trị mặc
định N = 6, tức là 57600bps)
Môi trường làm việc:
 Nhiệt độ: -10 ℃ ~ + 40 ℃
 Độ ẩm tương đối: 40% - 85%
Môi trường bảo quản:
 Nhiệt độ: -40 ℃ ~ + 85 ℃
 Độ ẩm tương đối: <85%
d. Giao tiếp phần cứng
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Giao tiếp phần cứng của module R305 được thể hiện qua bảng 2.3:
Bảng 2.1. Các chân kết nối của module R305
Số
chân
Tên
chân
Chức năng
1 VCC Nguồn vào
2 GND Tín hiệu nối đất
3 TXD Dữ liệu đầu ra. Kiểu TTL logic
4 RXD Dữ liệu đầu vào. Kiểu TTL logic
5 VCC +5V DC
6 D- Dữ liệu âm
7 D+ Dữ liệu dương
8 GND Ground
e. Giao thức truyền thông nối tiếp không đồng bộ UART
Được truyền theo chế độ nối tiếp bán song công bất đồng bộ. Tốc độ baud truyền
mặc định là 57600 bps và có thể cài đặt tốc độ này trong dải từ 9600 – 115200. Tại thời
điểm bật nguồn, nó sẽ tốn 300ms cho việc thiết lập.
Khung truyền với định dạng 10bit: với 1 bit bắt đầu (start bit) ở mức logic ‘0’, 8
bit dữ liệu với bit đầu LBS và 1 bit kết thúc (stop bit). Không có bit kiểm tra (check bit).
Dữ liệu được truyền đi trên chân TX gồm 1 start bit (mức ‘0’), data và 1 stop bit
(mức ‘1’). Tốc độ truyền: đơn vị bit per second (bps) còn gọi là Baud (số lần thay đổi
tín hiệu trong 1 giây – thường sử dụng cho modem). UART là phương thức truyền nhận
bất đồng bộ, nghĩa là bên nhận và bên phát không cần phải có chung tốc độ xung clock
(ví dụ: xung clock của vi điều khiển khác xung clock của máy tính). Khi đó bên truyền
muốn truyền dữ liệu sẽ gửi start bit (bit ‘0’) để báo cho bên thu biết để bắt đầu nhận dữ
liệu và khi truyền xong dữ liệu thì stop bit (bit ‘1’) sẽ được gửi để báo cho bên thu biết
kết thúc quá trình truyền.
Khi có start bit thì cả hai bên sẽ dùng chung 1 xung clock (có thể sai khác một ít)
với độ rộng 1 tín hiệu (0 hoặc 1) được quy định bởi baud rate, ví dụ baud rate = 9600
bps nghĩa là độ rộng của tín hiệu 0 (hoặc 1) là 1/9600 = 104 ms và khi phát thì bên phát
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
sẽ dùng baud rate chính xác (ví dụ 9600 bps) còn bên thu có thể dùng baud rate sai lệch
1 ít (9800bps chẳng hạn). Truyền bất đồng bộ sẽ truyền theo từng frame và mỗi frame
có cấu trúc như trong hình 2.10 sau đây:
Hình 2.7 Giao thức truyền thông của R305
Ngoài ra trong frame truyền có thể có thêm bit odd parity (bit lẻ) hoặc even parity
(bit chẵn) để kiểm tra lỗi trong quá trình truyền. Bit parity này có đặc điểm nếu sử dụng
odd parity thì số các bit ‘1’ + odd parity bit sẽ ra một số lẻ còn nếu sử dụng even parity
thì số các bit ‘1’ + even parity bit sẽ ra một số chẵn.
Module sẽ kết nối với MCU theo kết nối sau: TXD (chân 3 của module) kết nối
với RXD (chân nhận của MCU), RXD (chân 4 của module) kết nối với TXD (chân
truyền của MCU).
f. Tài nguyên hệ thống
 Bộ đệm:
Có một bộ đệm hình ảnh và hai 512 byte tệp kí tự đệm bên trong không gian bộ
nhớ RAM của module. Người dùng có thể đọc và viết bất kỳ của bộ đệm bằng cách
hướng dẫn.
Lưu ý: Nội dung của bộ đệm trên sẽ bị mất khi tắt nguồn.
- Bộ đệm hình ảnh:
Bộ đệm hình ảnh phục vụ cho việc lưu trữ hình ảnh và các định dạng hình ảnh là
256 * 288 pixel. Khi truyền qua UART, để đẩy nhanh tốc độ, chỉ có 4 bit cao của các
điểm ảnh được truyền (có nghĩa là 16 độ xám). Và hai điểm ảnh lân cận của cùng hàng
sẽ hình thành một byte trước khi truyền. Khi tải lên máy tính, hình ảnh 16-xám-độ sẽ
được mở rộng sang định dạng 256 mức xám. Đó là định dạng BMP 8-bit. Khi chuyển
qua USB, hình ảnh 8 bit pixel, đó là 256 mức xám.
- Bộ đệm tệp kí tự:
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Bộ đệm kí tự CharBuffer1, CharBuffer2, có thể được sử dụng để lưu trữ cả tệp kí
tự và tệp mẫu.
 Thư viện vân tay:
Hệ thống đặt ra một không gian nhất định trong Flash cho mẫu dấu vân tay lưu trữ,
đó là thư viện vân tay. Nội dung của thư viện vẫn còn khi tắt nguồn.
Dung lượng của thư viện thay đổi dung lượng của Flash, hệ thống sẽ nhận biết sau
khi tự động. Lưu trữ dấu vân tay mẫu trong Flash là theo tuần tự.
 Cấu hình các thông số của hệ thống:
- Kiểm soát tốc độ baud(Thông số thứ: 6):
Các thông số điều khiển UART tốc độ truyền thông của Module. Giá trị của nó là
một số nguyên N, N = [1, 12]. Tỷ lệ tương ứng là 9600 baud * N bps.
- Mức độ bảo mật(Thông số thứ: 5):
Các thông số kiểm soát các giá trị ngưỡng phù hợp với tìm kiếm của dấu vân tay
và đối chiếu. Mức độ bảo mật được chia thành 5 lớp và giá trị tương ứng là 1, 2, 3, 4, 5.
Ở cấp độ 1, FAR là cao nhất và FRR là thấp nhất. Tuy nhiên ở cấp độ 5, FAR là thấp
nhất và FRR là cao nhất.
- Độ dài gói dữ liệu (Thông số thứ: 7):
Các thông số quyết định độ dài tối đa của các gói dữ liệu chuyển giao khi giao tiếp
với máy tính trên. Giá trị của nó là 0, 1, 2, 3, tương ứng với 32 bytes, 64 byte, 128 byte,
256 byte tương ứng.
 Thanh ghi trạng thái hệ thống:
Ghi trạng thái hệ thống cho biết tình trạng hoạt động hiện tại của Module. Chiều
dài của nó là 1 word, và có thể được đọc qua hướng dẫn ReadSysPara. Định nghĩa của
thanh ghi được biểu hiện qua hình 2.8 như sau:
Hình 2.8. Định nghĩa của thanh ghi
Chú ý:
- Busy: 1 bit. 1: Hệ thống là lệnh thực thi; 0: hệ thống thì rãnh;
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
- Pass: 1 bit. 1: tìm thấy ngón tay phù hợp; 0: sai ngón tay;
- PWD: 1 bit. 1: xác minh mật khẩu bắt tay của thiết bị.
- ImgBufStat: 1 bit. 1: bộ đệm hình ảnh chứa hình ảnh hợp lệ.
 Mật khẩu module:
Khi mở nguồn lại, hệ thống kiểm tra đầu tiên cho dù mật khẩu bắt tay đã được sửa
đổi. Nếu không, hệ thống máy tính trên xét thấy không có yêu cầu xác minh mật khẩu
và sẽ bước vào chế độ hoạt động bình thường. Đó là, khi mật khẩu vẫn là mặc định, quá
trình xác minh có thể được bỏ qua. Chiều dài mật khẩu là 4 byte, và giá trị nhà máy mặc
định của nó là 0xFF, 0xFF, 0xFF, 0xFF.
Nên thay đổi mật khẩu, tham khảo hướng dẫn SetPwd, sau đó Module (hoặc thiết
bị) bắt tay mật khẩu phải được xác nhận trước khi hệ thống đi vào chế độ hoạt động bình
thường. Hoặc nếu không, hệ thống sẽ từ chối thực hiện và lệnh.
 Địa chỉ module:
Mỗi module có một địa chỉ xác định. Khi giao tiếp với máy tính trên, mỗi lệnh / dữ
liệu được chuyển giao theo hình thức gói dữ liệu, trong đó có các mục địa chỉ. Module
hệ thống chỉ phản ứng với các gói dữ liệu có mục địa chỉ giá trị là giống với địa chỉ xác
định của nó. Chiều dài địa chỉ là 4 byte, và giá trị mặc định của nó là 0xFFFFFFFF.
Người dùng có thể thay đổi địa chỉ qua SetAdder. Địa chỉ đổi mới vẫn còn lưu lại khi
tắt nguồn.
 Bộ tạo số ngẫu nhiên:
Module tích hợp một phần cứng 32-bit Bộ tạo số ngẫu nhiên (RNG). Qua
GetRandomCode, hệ thống sẽ tạo ra một số ngẫu nhiên và tải nó lên.
g. Giao thức truyền gói dữ liệu:
Khi module R308 thực hiện việc giao tiếp, truyền và nhận các câu lệnh/ dữ liệu/
kết quả thì tất cả được gói trong một định dạng gói dữ liệu được biểu diễn qua hình 2.9:
Hình 2.9. Định dạng gói dữ liệu
Trong đó, các thông số chi tiết hơn được biểu diễn qua bảng 2.2 sau:
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Bảng 2.2. Định dạng gói dữ liệu
Tên Ký hiệu Độ dài Mô tả
Header START 2 bytes Có 2 byte được truyền đầu tiên trong gói dữ
liệu. Được mặc định giá trị 0xEF01.
Adder ADDER 4 bytes Có 4 byte địa chỉ của module. Giá trị mặc định
ban đầu là 0XFFFFFFFF, nhưng nó có thể
được sửa đổi bởi lệnh. Byte cao sẽ được
chuyển vào đầu tiên và nếu giá trị adder sai,
module sẽ từ chối để chuyển.
Package
indentifier
PID 1 bytes Định dạng loại gói dữ liệu
0x01: Gói lệnh.
0x02: Gói dữ liệu.
0x07: Gói xác nhận.
0x08: Gói kết thúc dữ liệu.
Package
length
LENGTH 2 bytes Chiều dài gói dữ liệu tính từ Package content
đến Checksum. Đơn vị chiều dài là byte (tối đa
256 bytes).
Package
contents
DATA - Nội dung dữ liệu. Có thể là lệnh, dữ liệu, kết
quả được xác nhận…(như giá trị ký tự dấu vân
tay).
Checksum SUM 2 bytes Là tổng số học của Package identifier, Package
length, Package content. Bit tràn được bỏ qua,
bit cao được truyền đầu tiên.
h. Kiểm tra và xác nhận gói dữ liệu:
Lưu ý: lệnh chỉ được gửi từ VXL đến cảm biến, cảm biến chỉ trả về các gói xác
nhận.
Định nghĩa bytes xác nhận:
- 0x00h: thực thi hoàn tất.
- 0x01h: lỗi nhận dữ liệu.
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
- 0x02h: không phải vân tay.
- 0x03h: thất bại đăng ký vân tay.
- 0x06h: không tạo được đặt điểm nhân dạng.
- 0x07h: dấu vân quá nhỏ để lấy mẫu.
- 0x08h: dấu vân không trùng.
- 0x09h: thất bại tìm kiếm dấu vân tay.
- 0x0Ah: lỗi kết hợp đặc điểm dấu vân tay.
- 0x0Bh: đại chỉ ID vượt khung.
- 0xCh: lỗi đọc từ dữ liệu vân tay. Dữ liệu xấu.
- 0xDh: lỗi nạp dữ liệu.
- 0xEh: không thể nhận dữ liệu
- 0xFh: lỗi gửi hình ảnh.
- 0x10h: lỗi xoá dữ liệu.
- 0x11h: lỗi xoá một ID.
- 0x15h: lỗi tạo ảnh.
- 0x18h: lỗi ghi flash.
- 0x19h: không xác định được lỗi.
- 0x1Ah: số đăng ký không hợp lệ.
- 0x1Bh: gói dữ liệu sai.
- 0x1Ch: sai số trang.
- 0x1Dh: lỗi cổng giao tiếp.
- others: dự phòng.
2.3.3 Bàn phím ma trận 4x4 (Keypad 4x4)
Sơ đồ nối dây và hình ảnh thực tế của bàn phím ma trận 4x4 được giới thiệu qua
hình 2.17 bên dưới.
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Hình 2.10. Sơ đồ nối dây và hình ảnh thực tế của bàn phím ma trận 4x4
a. Khái niệm
Keypad là một "thiết bị nhập" chứa các nút nhấn cho phép người dùng nhập các
chữ số, chữ cái hoặc ký hiệu vào bộ điều khiển. Keypad không chứa tất cả bảng mã
ASCII như keyboard và vì thế keypad thường được tìm thấy trong các thiết bị chuyên
dụng. Các nút nhấn trên các máy tính điện tử cầm tay là một ví dụ về keypad. Số lượng
nút nhấn của một keypad thay đổi phụ thuộc vào yêu cầu ứng dụng. Gọi là keypad 4x4
vì keypad này có 16 nút nhấn được bố trí dạng ma trận 4 hàng và 4 cột. Cách bố trí ma
trận hàng và cột là cách chung mà các keypad sử dụng. Cũng giống như các ma trận
LED, các nút nhấn cùng hàng và cùng cột được nối với nhau, vì thế với keypad 4x4 sẽ
có tổng cộng 8 ngõ ra (4 hàng và 4 cột).
b. Hoạt động của Keypad 4x4
Theo hình trên, giả sử nút ‘2’ được nhấn, khi đó đường R1 và C2 được nối với
nhau. Giả sử đường C2 được nối với GND (mass, 0V) thì R1 cũng sẽ là GND. Tuy
nhiên, bằng cách kiểm tra trạng thái đường R1 chúng ta sẽ không kết luận nút ‘2’ được
nhấn. Giả sử tất cả các đường C1, C2, C3, C4 đều nối với GND, nếu R1= GND thì rõ
ràng ta không thể kết luận nút ‘1’ hay nút ‘2’ hay nút ‘3’ hay nút ‘A’ được nhấn. Kỹ
thuật để khắc phục vấn đề này chính là kỹ thuật “quét” keypad. Có 2 cách quét phím là
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
quét theo cột hoặc quét theo hàng. Sau đây là ví dụ về quét theo hàng, quét cột cũng
hoàn toàn tương tự:
- Ta lần lượt xuất tín hiệu mức 0 ra các hàng (khi một hàng là mức ‘0’ thì tất cả
các hàng khác phải là mức 1).
- Sau đó kiểm tra các cột nếu cột nào có mức logic 0 thì phím có tọa độ hàng và
cột đó được ấn.
a. Thông số kỹ thuật của Keypad 4x4
- Module bàn phím ma trận 4x4 loại phím mềm
- Dòng / áp hoạt động tối đa: 30mA, 24V DC.
- Tuổi thọ hoạt động: khoảng 1.000.000 lần nhấn phím
- Thời gian phản hồi: ≤ 5ms
- Độ dài cáp: 88mm
- Nhiệt độ hoạt động: 0~70℃
- Đầu nối ra 8 chân
- Kích thước bàn phím 77 x 69mm
d. Ứng dụng của Keypad 4x4
Ý tưởng ứng dụng:
- Hệ thống an ninh bảo vệ bằng mật khẩu.
- Nhập liệu lựa chọn menu, điều khiển thiết bị.
- Nhập dữ liệu cho các hệ thống nhúng.
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
2.3.4 Màn hình LCD 20x4
Hình 2.11. Màng hình LCD 20x4
Hình ảnh thực tế màng hình LCD 20x4 và chi tiết các chân của LCD được biểu
hiện lần lượt qua hình 2.11 và bảng 2.3 như sau:
Bảng 2.3. Các chân của LCD
Thứ tự Tên kí hiệu I/O Mô tả
1 Vss Power GND
2 Vdd Power +5V
3 Vo Analog Điều khiển ánh sáng nền
4 RS Input Register Select
5 R/W Input Read/Write
6 E Input Enable (Storage)
7 D0 I/O Data LSB
8 D1 I/O Data
9 D2 I/O Data
10 D3 I/O Data
11 D4 I/O Data
12 D5 I/O Data
13 D6 I/O Data
14 D7 I/O Data MSB
15 A I Nguồn dương 5V
16 K I GND
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
 Chân cấp nguồn: Vss nối mass (0V), VDD (nối nguồn +5V), V0 (điều
chỉnh độ tương phản thường nối với biến trở).
 RS: Chân chọn thanh ghi (Register select). Nối chân RS với logic “0”
(GND) hoặc logic “1” (VCC) để chọn thanh ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ
“ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read).
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.
 R/W: Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0”
để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.
 E: Chân cho phép chốt xung kí tự (Enable). Sau khi các tín hiệu được đặt
lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào (chấp nhận) thanh ghi
bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh
lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E
xuống mức thấp.
 D0-D7: Chân dữ liệu dùng để trao đổi dữ liệu giữa thiết bị điều khiển và LCD.
 A, K: Chân điều khiển đèn nền.
2.3.5 Mạch chuyển giao tiếp LCD 20x4
Hình 2.12. Mạch chuyển giao tiếp LCD 20x4
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Bằng việc sử dụng giao tiếp I2C, việc điều khiển trực tiếp màn hình được chuyển
sang cho IC xử lý nằm trên mạch. Chỉ cần việc gửi mã lệnh cùng nội dung hiển thị, do
vậy giúp vi điều khiển có nhiều thời gian xử lý các tiến trình phức tạp khác.
Ưu điểm của việc sử dụng giao tiếp I2C
- Giao tiếp I2C chỉ sử dụng duy nhất 2 dây tín hiệu: SDA và SCL giúp tiết
kiệm chân trên vi điều khiển.
- Tốc độ truyền dữ liệu lên đến 400Kbps
- Dữ liệu truyền nhận đảm bảo tính toàn vẹn vì sử dụng cơ chế phản hồi (ACK)
trên mỗi byte dữ liệu.
- Có khả năng kết nối nhiều thiết bị với nhau: trên mạch có sẵn các mối hàn
A0, A1, A2 để thay đổi địa chỉ của module.
Địa chỉ mặc định: 0x27, có thể mắc vào I2C bus tối đa 8 module
Điện áp hoạt động: 3V-6V.
Đề điều khiển độ tương phản điều chỉnh biến trở màu xanh.
2.3.6 Giới thiệu động cơ Servo SG90 9g Micro
Hình 2.13 là ảnh thực tế và kích thước chi tiết của động cơ Servo SG90 9g Micro:
Hình 2.13. Động cơ Servo SG90 9g Micro
a. Thông số kỹ thuật của Servo SG90 9g Micro
- Khối lượng: 9g
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
- Kích thước: 22.2x11.8.32 mm
- Momen xoắn: 1.8kg/cm
- Tốc độ hoạt động: 60 độ trong 0.1 giây
- Điện áp hoạt động: 4.8V(~5V)
- Nhiệt độ hoạt động: 0 ºC – 55 ºC
b. Điều khiển và kết nối
Kết nối dây màu đỏ với 5V, dây màu nâu với mass, dây màu cam với chân phát
xung của vi điều khiển. Ở chân xung cấp một xung từ 1ms - 2ms theo để điều khiển góc
quay theo ý muốn. Cách kết nối và điều khiển cuả động cơ Servo SG90 9g Micro được
thể hiện qua hình 2.14:
Hình 2.14. Điều khiển và kết nối cuả động cơ Servo SG90 9g Micro
2.3.7 Relay 5V10A 5 chân SRD-05VDC-SL-C
Relay là thiết bị đóng cắt cơ bản, nó được sử dụng rất nhiều trong cuộc sống và
trong các thiết bị điện tử.
Cấu tạo Relay gồm 2 phần
 Cuộn hút:
- Tạo ra năng lượng từ trường để hút các tiếp điểm về phía mình
- Tùy vào điện áp làm việc người ta chia Relay ra DC: 5V, 12V, 24V-
AC:110V, 220V
 Cặp tiếp điểm
- Khi không có từ trường. Tiếp điểm 1 được tiếp xúc với 2 nhờ lực của lò xo.
Tiếp điểm thường đóng
CHUONG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
- Khi có năng lượng từ trường thì tiếp điểm 1 bị hút sang tiếp điểm 3
- Trong Relay có thể có 1 cặp tiếp điểm, 2 cặp tiếp điểm hoặc nhiều hơn
Hình 2.15. Sơ đồ cấu tạo của Relay 5V10A 5 chân SRD-05VDC-SL-C
Thông số kỹ thuật của Relay:
- Tải tiêu thụ: 10A 250VAC/28VDC, 10A 125VAC/28VDC, 10A
125VAC/28VDC
- Điện trở tiếp xúc: 100 mΩ
- Điện áp hoạt động: 3-4.8V
- Công suất: 0.36W, 0.45W
- Nhiệt độ hoạt động: -25℃ ~ 70℃
- Điện trở cách ly: ≥100MΩ
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Chương 3. TÍNH TOÁN VÀ THIẾT KẾ
3.1 GIỚI THIỆU
Đề tài “Giám sát và cảnh báo sinh viên thông qua hệ thống quét vân tay điều khiển
qua mạng Internet” bao gồm:
Hệ thống có các chức năng như sau: hệ thống chính là cửa được đóng mở bằng ma
trận phím hoặc bằng cách tiến hành quét vân tay. Sau đó, vân tay sẽ được gửi lên Internet
để kiểm tra quản lý thời gian ra vào, tính toán số lần đi trễ, thời gian đi trễ, số ngày vắng,
quản lý thông tin người dùng…. Khi sinh viên trễ hoặc vắng hệ thống sẽ gửi cảnh báo đến
mail của sinh viên. Thêm nữa là cho phép thêm vân tay, xóa vân tay, thay đổi mật khẩu mở
cửa.
3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
3.2.1 Thiết kế sơ đồ khối hệ thống
Hệ thống gồm 7 khối ghép lại với nhau theo nhiều hướng tạo nên một hệ thống hoạt
động ổn định được trình bày trong sơ đồ khối hình 3.1 như sau:
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Hình 3.1 Sơ đồ khối hệ thống
Chức năng từng khối:
 Khối nguồn: cung cấp nguồn 5V cho khối hiển thị và khối chấp hành; nguồn 9V
DC cho Module Sim 800A; nguồn 9V DC cấp cho khối xử lý trung tâm board
Arduino Mega 2560. Lấy nguồn từ Arduino cấp cho khối cảm biến vân tay. Sử dụng
2 nguồn tổ ong được thiết kế sẵn.
KHỐI XỬ
LÝ TRUNG
TÂM
KHỐI NGUỒN
KHỐI CHẤP
HÀNH
KHỐI HIỂN
THỊ
KHỐI
MODULE
SIM 800A
KHỐI CẢM
BIẾN VÂN
TAY
KHỐI MA
TRẬN
PHÍM
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
 Khối xử lý trung tâm: thu thập dữ liệu từ các thiết bị sau đó xử lý và điều khiển
khối chấp hành và khối hiển thị. Khối này do Arduino Mega 2560 thực hiện.
 Khối cảm biến vân tay: tiến hành quét dấu vân tay để đóng mở cửa và nơi lưu trữ
dấu vân tay. Khối này do module cảm biến vân tay R305 thực hiện.
 Khối Module Sim 800A: dùng để gửi dữ liệu vân tay người dùng lên mạng Internet.
 Khối hiển thị: hiển thị thông tin chế độ hoạt động khi người dùng thao tác.
 Khối ma trận phím: Cho phép nhập mật khẩu để mở cửa, chọn chế độ hoạt động
và chọn ID người dùng, thay đổi mật khẩu mở cửa.
 Khối chấp hành: đóng mở cửa do động cơ servo SG90 thực hiện.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 29
3.2.2 Tính toán và thiết kế mạch
a. Khối xử lý trung tâm
Arduino Mega 2560 sử dụng chip ATmega2560. Nó có 54 chân digital I/O 16
chân đầu vào tương tự (Analog Inputs), 4 UARTs (cổng nối tiếp phần cứng), một thạch
anh dao động 16 MHz, kết nối USB, một jack cắm điện, một đầu ICSP và một nút reset
như trong hình 3.2. Nó chứa tất cả mọi thứ cần thiết để tạo thành khối xử lý trung tâm
với đầy đủ các port.
Ý tưởng thiết kế của nhóm là kết hợp nhiều module lại với nhau, do vậy sẽ có
nhiều chân kết nối nên việc lựa chọn Arduino Mega 2560 là rất phù hợp.
Hình 3.2. Khối xử lý trung tâm sử dụng board Arduino Mega 2560
Trong quá trình kết nối các module và lập trình cho hệ thống:
Bộ nhớ sử dụng hết 2958 bytes vào khoảng 36% bộ nhớ
Tổng số chân I/O sử dụng là 20 chân, công thức tính dòng tiêu thụ
Dòng tiêu thụ = 20 x 40mA = 800mA (3.1)
b. Khối cảm biến vân tay
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30
Hình 3.3. Sự tương quan giữ khối xử lý và khối cảm biến vân tay
Khối cảm biến vân tay sẽ gửi tín hiệu về khối xử lý, khối xử lý sẽ nhận tín hiệu và
chuyển đến khối khác để chuyển tín hiệu đó đi. Đồng thời, khối cảm biến vân tay chỉ hoạt
động khi khối xử lý trung tâm yêu cầu.
Trên thị trường có rất nhiều loại cảm biến vân tay như đầu đọc vân tay R303S có
khả năng lưu trữ 1000 mẫu vân tay, đầu đọc vân tay R101 có khả năng lưu trữ 1000 mẫu,
module R301 có khả năng lưu trữ 500 mẫu vân tay, module R305 có khả năng lưu trữ
120 vân tay,… Do đề tài của nhóm thực hiện quét vân tay cho một lớp học, mà số lượng
sinh viên một lớp đại trà chỉ khoảng 100 sinh viên nên nhóm lựa chọn module cảm biến
vân tay R305 để thực hiện trong đề tài này.
Cảm biến vân tay R305 tích hợp xử lý hình ảnh và thuật toán xử lý trên cùng một
chip. Khả năng xử lý ảnh chụp tốt với độ phân giải lên đến 500dpi. Chuẩn giao tiếp: USB
- UART (TTL logical logic) từ 9600 – 115200bps, sử dụng tốc độ mặc định là 57600 bps
đảm bảo truyền nhận chính xác dữ liệu. Bên cạnh đó là các thông số khác như:
 Điện áp cung cấp: 3.6V ~ 6V DC.
 Dòng điện tiêu thụ: < 120mA.
Cách nối dây cho cảm biến vân tay R305 vào Arduino Mega 2560 theo thứ tự
chân:
 Dây số 1 nối vào nguồn 5V và dây số 2 nối vào chân GND của arduino.
 Dây số 3 nối vào chân số 19 RX1 và dây số 4 nối chân 18 TX1 của Arduino
Mega.
Dưới đây là cách nối dây vào Arduino Mega 2560 với cảm biến vân tay, được thể hiện
trong hình 3.4:
Khối xử lý
trung tâm
Khối cảm
biến vân
tay
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31
Hình 3.4. Sơ đồ nguyên lý Cảm biến vân tay kết nối Arduino Mega
c. Khối Module Sim 800A.
Đề tài cần một phương tiện để gửi dữ liệu người dùng khi quét vân tay lên mạng
Internet. Với cách kết nối đơn giản cũng như thao tác lập trình dễ dàng nên nhóm quyết
định chọn module Sim800A để gửi dữ liệu lên Internet. Tuy tính kinh tế khi chọn module
này là không cao nhưng module vẫn có những ưu điểm. Nếu hệ thống mất điện, module
vẫn có thể gửi dữ liệu khi sử dụng nguồn dự phòng, hệ thống mạng GPRS được phủ sống
liên tục. Nếu ta chuyển hệ thống đến nơi khác vẫn có thể cập nhật dữ liệu dễ dàng mà
không cần phải cấu hình lại hệ thống.
Vì chỉ gửi dữ liệu vân tay người dùng lên Internet nên ta chỉ dùng 4 chân là VCC,
GND, TXD, RXD được kết nối với Arduino Mega như sau:
 Hai chân nguồn VCC và GND được kết nối với Adapter 9V 2A để dòng điện cho
sim hoạt động ổn định lâu dài.
 TXD được nối vào chân TX2 và RXD nối vào RX2 của Arduino Mega để truyền
nhận dữ liệu theo chuẩn UART.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32
Hình 3.5 thể hiện sơ đồ nguyên lý kết nối sim vào Arduino Mega và sử dụng nguồn
riêng 5V.
Hình 3.5. Sơ đồ nguyên lý kết nối Module Sim 800A vào Arduino Mega
d. Khối hiển thị
Hiển thị trạng thái làm việc của hệ thống lên màng hình LCD 20X4, với 4 hàng ta
có thể dễ dàng thao tác giữa người dùng với mô hình hệ thống.
Hình 3.6. LCD 20x4
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33
Vì ta sử dụng mạch chuyển giao tiếp LCD 20x4 sang I2
C, chỉ cần 2 chân SDA và
SCL của Arduino Mega 2560 kết nối với 2 chân SDA và SCL của module là đã có thể
hiển thị thông tin lên LCD.
Hình ảnh thực tế của mạch chuyển giao tiếp được thể hiện ở hình 3.7:
Hình 3.7. Mạch chuyển giao tiếp LCD sang I2
C
 Hai chân nguồn VCC và GND được kết nối với Adapter 5V 2A để dòng điện cho
sim hoạt động ổn định lâu dài.
 SDA được nối vào chân số 20 SDA và SCL nối vào chân số 21 SCL của Arduino
Mega để truyền nhận dữ liệu theo chuẩn I2
C.
Cách kết nối giữa LCD 20x4 sử dụng mạch chuyển giao tiếp LCD sang I2
C và
Arduino Mega 2560, được thể hiện trong hình 3.8 dưới đây:
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34
Hình 3.8. Sơ đồ nguyên lý kết nối Arduino Mega với LCD
e. Khối ngoại vi
Trong khối này có phím ma trận 4x4. Sơ đồ nối dây và hình ảnh thực tế của bàn
phím ma trận 4x4 được biểu hiện trong hình 3.9 sau:
Hình 3.9. Sơ đồ nối dây và hình ảnh thực tế của bàn phím ma trận 4x4
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35
Sơ đồ nguyên lý kết nối Arduino Mega với ma trận phím được thể hiện trong hình
3.10
Hình 3.10. Sơ đồ nguyên lý kết nối Arduino Mega với ma trận phím
f. Khối nguồn
 Nguồn cấp cho Arduino, cảm biến vân tay
Board Arduino Mega 2560 sử dụng hết 20 chân (N). Dòng DC trên mỗi chân I/O
(I1C) là 40mA.
IAr = I1C x N
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36
= 40 x 20 = 800 mA (3.2)
Dòng tiêu thụ cảm biến vân tay (IFinger) là 150 mA.
Tổng dòng tiêu thụ trên là:
I = IAr + IFinger
= 800 + 150 = 950 mA (3.3)
Theo tính toán thì sẽ cấp dòng tối thiểu là 950mA. Vì vậy, nhóm sinh viên sử dụng
mạch giảm áp LM2596 tử nguồn tổ ong 12V 5A để có ngõ ra là 9V 2A.
 Nguồn cấp cho Module Sim 800A
Theo thông số kỹ thuật, nguồn cấp đầu vào từ 5-18V và dòng vào lớn hơn 1A. Vì
vậy, nhóm sinh viên sử dụng mạch giảm áp LM2596 tử nguồn tổ ong 12V 5A để có ngõ
ra là 9V 2A đảm bảo cho Module Sim 800A hoạt động ổn định.
 Nguồn cấp cho LCD 20x4
Dòng LCD tiêu thụ tối đa là 2.5mA.Vì vậy, nhóm sinh viên sử dụng ngõ ra 5V của
Arduino cấp cho LCD.
Hình 3.11. Nguồn tổ ong 12V 5A
Nguồn tổ ong được sử dụng rộng rãi trong các thiết bị công nghiệp và dân dụng như
lắp đặt tủ điện, lắp đèn, camera giám sát,… Nguồn tổ ong thường được dùng trong các
mạch ổn áp, cung cấp dòng áp đủ để tránh trường hợp dòng ảnh hưởng tới mạch, sụt áp.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37
Bộ nguồn tổ ong có các công dụng nổi bật như chỉnh lưu, biến tần, nắn dòng,.. nhằm làm
dòng điện, điện áp, tần số dao động ổn định, làm tăng tuổi thọ của các thiết bị điện lâu
hơn.
Thông số kỹ thuật của nguồn tổ ong 12V 5A :
- Điện áp ngõ vào :110/220VAC
- Điện áp ngõ ra :12VDC-5A
- Sai số điện áp đầu ra : 1-3%
- Công suất thực tế : 88%
- Nhiệt độ làm việc :0-70℃
Thông số kỹ thuật của nguồn tổ ong 5V 4A :
- Điện áp ngõ vào :110/220VAC
- Điện áp ngõ ra :5VDC-4A
- Sai số điện áp đầu ra : 1-3%
- Công suất tối đa :
- Nhiệt độ làm việc :0-40℃
Hình 3.12. Mạch giảm áp LM2596
Mạch giảm áp DC có khả năng giảm áp từ 30V xuống 1,5V mà vẫn đạt hiệu suất
cao (92%). Thích hợp cho các ứng dụng chia nguồn, hạ áp, cấp cho các thiết bị như
camera, motor, robot,…
Thông số kỹ thuật :
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38
- Điện áp đầu ra : Từ 3V đến 30V
- Điện áp đầu ra : Điều chỉnh được trong khoảng 1,5V đến 30V
- Dòng đáp ứng tối đa là 3A
- Hiệu suất : 92%
- Công suất :15W
3.2.3 Sơ đồ nguyên lý của toàn mạch
Dưới đây là hình 3.13 là sơ đồ nguyên lý toàn mạch thể hiện tất cả các khối và kết
nối các thiệt bị lại với nhau rồi cắm vào Arduino Mega.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39
Hình 3.13. Sơ đồ nguyên lý toàn mạch
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40
Chương 4. THI CÔNG HỆ THỐNG
4.1 GIỚI THIỆU
Sau quá trình tính toán thiết kế, bộ xử lý trung tâm Arduino Mega giao tiếp với
các module cảm biến vân tay, module sim, ma trận phím, màn hình LCD. Do vậy, ta
cần một board mạch đề kết nối tất cả các module ấy lại với nhau. Nhóm đã tiến hành
thiết kế mạch PCB, thi công và test mạch.
4.2 THI CÔNG HỆ THỐNG
4.2.1 Thi công bo mạch hệ thống
Sau khi thiết kế xong sơ đồ nguyên lý và tiến hành vẽ mạch PCB 1 lớp thủ công.
Với lớp bottom để gắn Arduino Mega vào. Còn lớp top dùng để kết nối nguồn 9V, kết
nối cảm biến vân tay, LCD, module Sim 800A, bàn phím ma trận. Hình 4.1 thể hiện sơ
đồ đi dây khi đã phủ đồng. Hình 4.2 thể hiện sơ đồ lớp top hình dạng 3D.
Hình 4.1. Sơ đồ đi dây đã phủ đồng bo mạch hệ thống
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41
Hình 4.2 Hình dạng 3D lớp top bo mạch hệ thống
Danh sách các linh kiện sử dụng của mạch được liệt kê trong bảng 4.1
Bảng 4.1. Danh sách các linh kiện.
STT Tên linh kiện Giá trị Loại Số lượng
1 Đầu bus 1 hàng 4 chân 1
2 Đầu bus 1 hàng 8 chân 1
3 Hàng rào cái đơn 1 hàng Chân cong 1
4 Jack cái nguồn DC 5V 2
5 Board đồng 1 1 lớp 1
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42
4.2.2 Lắp ráp và kiểm tra bo mạch hệ thống
Quá trình thi công, lắp ráp và kiểm tra mạch:
Bước 1: Rửa board đồng sạch sẽ bằng nước rửa mạch sau khi ủi mạch và tiến
hành khoan lỗ.
Bước 2: Dùng đồng hồ chỉnh thang đo điện trở để kiểm tra ngắn mạch trên ngõ
vào của jack DC 9V thông với module Sim 800A chưa. Kiểm tra GND của jack DC
9V có nối với nhau chưa.
Bước 3: Hàn tất cả các hàng rào, đầu bus, jack DC vào board đồng. Đo kiểm tra
các hàng rào, các đầu bus, jack DC có kết nối với nhau không.
Bước 4: Gắn board arduino vào mạch vừa hàn xong. Đo kiểm tra từng chân từ
arduino ra port đã kết nối hết chưa.
Bước 5: Gắn đầu bus của các module Sim 800A, kết nối LCD, ma trận phím. Đo
kiểm tra từng chân của các thiết bị đã kết nối hết chưa.
Bước 6: Cấp nguồn 9V vào Arduino, cấp nguồn 9V cho module sim800A, cấp
nguồn 5V cho các cảm biến và LCD.
Bước 7: Sau đó ta nạp chương trình và test chương trình có đạt như yêu cầu ban
đầu không.
4.3 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH
4.3.1 Đóng gói bộ điều khiển
Sau khi kiểm tra mạch hoạt động tốt ta tiến hành đóng hộp thành mô hình hoàn
chỉnh. Hình 4.3 là sơ đồ bố trí linh kiện hiển thị ra bên ngoài mặt trước.
LCD
MA TRẬN PHÍM
CẢM BIẾN
VÂN TAY
Hình 4.3. Sơ đồ bố trí linh kiện mặt trước mô hình
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43
4.3.2 Thi công mô hình
Mô hình bằng meca kết nối bằng linh kiện cơ khí.
Hình 4.4. Hình dạng trước mô hình
Hình 4.5. Hình dạng sau mô hình
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44
4.4 LẬP TRÌNH HỆ THỐNG
4.4.1 Lưu đồ giải thuật
Hệ thống thực hiện được hai chức năng đó là quét vân tay điểm danh và thêm vân tay
để quản lý sinh viên trong một lớp học. Điểm danh để quản lý thời gian ra vào lớp của
sinh viên được thực hiện bằng cách quét vân tay. Sau khi quét vân tay, dữ liệu ID của
người quét sẽ được gửi lên mạng Internet để kiểm tra, thống kê thời gian ra vào, số lần
đi trễ, thời gian đi trễ, số ngày vắng, quản lý thông tin sinh viên, giảng viên,…. Hệ
thống còn cho phép thêm vân tay, xóa vân tay một cách dễ dàng.
Khi cấp điện vào hệ thống, khởi động Arduino, module Sim 800A, cảm biến vân tay,
LCD, …. Sau khi khởi động xong mặc định sẽ hiển thị menu lựa chọn trên LCD,
muốn đổi chế độ thì ta nhấn phím 1 tương ứng với chức quét vân tay, phím 2 có chức
năng quản trị admin cho phép quản trị viên thêm hoặc xóa vân tay. Trong chức năng
quản trị admin, khi ta nhấn phím 1 có chức năng thêm vân tay, phím 2 chức năng xóa
vân tay, phím D quay lại menu hiển thị ban đầu.
 Lưu đồ hệ thống menu lựa chọn
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45
BẮT ĐẦU
KHỞI ĐỘNG SIM 800A, CẢM
BIẾN VÂN TAY, LCD
THIẾT LẬP TỐC ĐỘ TRUYỀN
KHỞI TẠO CÁC BIẾN
VÀO CHẾ ĐỘ 0
(hiển thị menu tùy chọn)
QUÉT MA TRẬN PHÍM
CHỌN CHẾ ĐỘ 1
TRUYỀN ID NGƯỜI DÙNG
LÊN WEB
QUẢN TRỊ ADMINCHỌN CHẾ ĐỘ 2 NHẬP ĐÚNG MẬT KHẨU
Đ
S
Đ
S
Đ
S
HIỂN THỊ THÔNG TIN NGƯỜI
DÙNG TRÊN WEB
BẮT ĐẦU
Hình 4.6 Lưu đồ menu lựa chọn
GIẢI THÍCH LƯU ĐỒ
Quy trình làm việc của hệ thống như thể hiện trong sơ đồ hình 4.6. Chương trình
bắt đầu vào khởi động sim 800A, LCD, khởi tạo các biến. Sau đó kiểm tra có cảm biến
vân tay kết nối chưa. Nếu chưa kết nối thì chương trình sẽ dừng đợi đến khi nào có kết
nối. Vòng lặp chương trình được thực hiện. Mặc định chương trình sẽ vào chế độ 0. Ở
chế độ 0 thì cho phép hiển thị menu lựa chọn bao gồm 1. Quét vân tay, 2.Quản trị
admin. Cùng lúc đó, kiểm tra bàn phím ma trận, nếu phím 1 được nhấn thì sẽ vào chế
độ 1, nếu phím 2 được nhấn thì sẽ vào chế độ 2.
Ở chế độ 1 thì cho phép quét dấu vân tay. Sau đó, dữ liệu ID của người sử dụng
(tương ứng với vân tay của người đó đã được lưu trữ trước đó) được cập nhật lên
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46
website thông qua GPRS của sim trên Module Sim 800A. Khi việc gửi dữ liệu hoàn tất
thì trở về menu lựa chọn.
Ở chế độ 2 cho phép quản trị Admin. Trước khi vào menu quản trị Admin, người
dùng phải nhập đúng mật khẩu Admin thì hệ thống mới cho phép thêm vân tay, xóa
vân tay.
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 47
 Lưu đồ quét vân tay
BẮT ĐẦU
CHỌN CHẾ ĐỘ 1
ĐƯA VÂN TAY VÀO
CHỤP VÂN TAY
CHUYỂN ĐỔI ẢNH
TRÙNG VÂN TAY ĐÃ
LƯU
LCD HIỂN THỊ ĐÃ QUÉT VÂN
TAY
Đ
S
Đ
Đ
KẾT THÚC
S
Hình 4.7 Lưu đồ quét vân tay
GIẢI THÍCH LƯU ĐỒ QUÉT VÂN TAY
Quá trình quét vân tay bằng dấu vân tay thực hiện theo lưu đồ hình 4.7 phía
trên. Chương trình kiểm tra nếu đang ở chế độ 1 thì ta đưa vân tay vào. Nếu vân tay
được quét so sánh trùng với vân tay đã được lưu trước đó thì màn hình LCD sẽ thông
báo đã quét vân tay.
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 48
 Lưu đồ chuyển dữ liệu lên Web
BẮT ĐẦU
ĐỌC GIÁ TRỊ TỪ SERIAL 2
KẾT NỐI GPRS
THIẾT LẬP KẾT NỐI
GỬI DỮ LIỆU ĐẾN ĐỊA CHỈ
WEBSERVER
TẮT KẾT NỐI
KẾT THÚC
Đ
S
Đ
S
S
Đ
S
Hình 4.8. Lưu đồ chuyển dữ liệu lên web
GIẢI THÍCH LƯU ĐỒ CHUYỂN DỮ LIỆU LÊN WEB
Quy trình chuyển dữ liệu ID người dùng lên web như lưu đồ hình 4.8. Chương
trình kiểm tra nếu có dữ liệu từ serial 2 thì kết nối GPRS. Sau khi kết nối thành công
thì tiến hành gửi dữ liệu ID người dùng lên web. Sau khi quá trình hoàn tất thì kết nối
sẽ được ngắt.
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 49
 Lưu đồ quản trị Admin
BẮT ĐẦU
CHẾ ĐỘ BẰNG 2
MẬT KHẨU
HIỂN THỊ MENU QUẢN TRỊ
ADMIN
CHẾ ĐỘ BẰNG 1
CHẾ ĐỘ BẰNG 2
THÊM VÂN TAY
XÓA VÂN TAY
Đ
S
Đ
Đ
Đ
S
S
S
KẾT THÚC
Hình 4.9. Lưu đồ quản trị admin
GIẢI THÍCH LƯU ĐỒ QUẢN TRỊ ADMIN
Quy trình quản trị admin thực hiện theo lưu đồ hình 4.9. Chương trình kiểm tra
có đang ở chế độ bằng 3 không. Nếu đúng thì nhập mật khẩu để vào menu hiển thị tùy
chọn quản trị admin. Menu tùy chọn này gồm 2 chế độ:
- Ở chế độ 1 cho phép thêm vân tay. Sau khi hoàn tất quay về menu quản trị
admin.
- Ở chế độ 2 cho phép xóa vân tay. Sau khi hoàn tất quay về menu quản trị
admin.
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 50
 Lưu đồ thêm vân tay
BẮT ĐẦU
CHẾ ĐỘ 1
ĐƯA NGÓN TAY
VÀO
CHỤP LẤY ẢNH
CHUYỂN ĐỔI ẢNH
ĐƯA NGÓN TAY RA
ĐƯA NGÓN TAY
VÀO
CHỤP LẤY ẢNH
CHUYỂN ĐỔI ẢNH
SO SÁNH MẪU 2
LẦN
LƯU MÃ VÂN TAY
Đ
S
Đ
Đ
S
Đ
S
Đ
S
S
KẾT THÚC
NHẬP ID
Hình 4.10. Lưu đồ thêm vân tay
GIẢI THÍCH LƯU ĐỒ THÊM VÂN TAY
Quy trình lấy mẫu vân tay thêm người dùng thực hiện theo lưu đồ hình 4.10.
Chương trình kiểm tra nếu đang ở chế độ 1 thì nhập ID vị trí lưu dấu vân tay. Khi đó,
đèn trên cảm biến vân tay sẽ nháy sáng đợi ta đưa vân tay vào. Ta đưa vân tay cần lưu
vào cảm biến để tiến hành lấy mẫu lần một và tương tự lấy mẫu lần hai. Vân tay ta đưa
vào cảm biến lần thứ hai mà không giống với lần đầu thì ta sẽ lấy mẫu lại lần hai cho
đến khi giống với vân tay đưa vào lần đầu thì ta lưu dấu vân tay lại. Tiếp tục lưu vân
tay với những mẫu khác tương tự như trên cho đến khi kết thúc việc lấy mẫu thì
chương trình quay về menu quản trị admin.
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 51
 Lưu đồ xóa vân tay
BẮT ĐẦU
CHỌN CHẾ ĐỘ 2
XÓA VÂN TAY TẠI ID
S
BẮT ĐẦU
NHẬP ID CẦN XÓA
Hình 4.11. Lưu đồ xóa vân tay
GIẢI THÍCH LƯU ĐỒ XÓA VÂN TAY
Quy trình xóa vân tay người dùng như lưu đồ hình 4.11. Chương trình kiểm tra
nếu đang ở chế độ 2 thì vào chương trình xóa dấu vân tay. Nhập ID cần xoá, thực hiện
cho đến khi kết thúc quá trình xóa thì chương trình quay về menu quản trị admin.
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 52
4.4.2 Phần mềm lập trình cho vi điều khiển
Giới thiệu phần mềm lập trình Arduino IDE
Arduino IDE là phần mềm giúp ta lập trình cho các dòng sản phẩm của Arduino
như Arduino Uno, Arduino Mega, nano,.. Lập trình trên Arduino IDE là cách tiếp cận
đơn giản cho những người đam mê điện tử và muốn tạo ra những sản phẩm nhúng ấn
tượng mà không cần quá nhiều kiến thức chuyên sâu về điện tử. Môi trường phát triển
tích hợp Arduino IDE là một ứng dụng đa nền tảng được viết bằng Java.
Arduino IDE hình 4.12 là nơi để soạn thảo code, kiểm ra lỗi và upload code.
Hình 4.12. Giao diện lập trình arduino.
Arduino Toolbar có một số button và chức năng của chúng như sau:
1 32 4
Hình 4.13. Arduino Toolbar
Verify (1): kiểm tra code có lỗi hay không.
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 53
Upload (2): nạp code đang soạn thảo vào Arduino.
New, Open, Save (3): Tạo mới, mở và lưu sketch.
Serial Monitor (4): Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên máy tính.
4.4.3 Phần mềm lập trình web
a. Giới thiệu phần mềm
Adobe Dreamweaver CS6 có giao diện trực quan và sử dụng hoàn toàn đơn
giản, dễ dàng. Nó thích hợp với tất cả các bạn lập trình viên, ngay cả các bạn mới bắt
đầu bước chân vào lập trình mà chưa nghiên cứu chuyên sâu về lập trình. Khi nói tới
Dreamweaver CS6 thì các bạn không thể bỏ qua được tính năng hỗ trợ nhiều ngôn ngữ
lập trình như PHP, ASP, JAVA… chính điều này đã khiến phần mềm này được các lập
trình viên sử dụng nhiều cũng như được các chuyên gia, nhà phát triển đánh giá cao.
Điểm nổi bật của Dreamweaver CS6 chính là tính năng xem trước trong khi bạn
đang code. Điều này tạo điều kiện thuận lợi cho công việc của các lập trình viên, tránh
được nhưng sai sót đáng tiếc trong quá trình làm việc, giúp tăng hiệu quả là việc.
Hình 4.14. Giao diện viết code trên Dreamweaver
Sau khi mở phần mềm ta sẽ có giao diện như hình 4.14 và tiến hành tạo file mới
để lập trình php. Hình 4.15 và 4.16 mô tả quá trình tạo một file php mới (Trỏ chuột
đến thư mục cần tạo File Nhấp chuột phải  New file ).
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 54
Hình 4.15. Trỏ chuột đến thư mục cần tạo một file php mới
Hình 4.16. Tạo file mới trên Dreamweaver
b. Viết web quản lý thời gian
 Ý TƯỞNG THIẾT KẾ GIAO DIỆN WEBSITE
- Để đáp ứng yêu cầu đã đặt ra cho đề tài ta cần một công cụ để có thể nắm rõ
thông tin của sinh viên, cũng như quản lí được thời gian ra vào lớp học cũng
như thời gian trễ hoặc vắng của sinh viên và gửi cảnh báo cho sinh viên khi đã
đi trễ hoặc vắng. Do vậy, nhóm sinh vên đã thống nhất thiết kế một trang
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 55
website để quản lý sinh viên trong một lớp học. Từ những yêu cầu trên, website
của nhóm có những chức năng như sau:
 Giám sát thời gian ra vào lớp học bằng vân tay và cảnh báo lỗi quét vân tay
nếu quét vân tay hơn 1 lần của tất cả người dùng.
 Website được phân cấp từ Admin, Supervisor, User. Mỗi cấp sẽ có tên đăng
nhập và mật khẩu khác nhau cũng như phân quyền thực hiện các tác vụ cũng
khác nhau trong hệ thống. (Ví dụ: Admin sẽ có quyền xem, quyền thêm cũng
như thay đổi dữ liệu của hệ thống, user chỉ được cấp quyền xem mà không có
quyền thay đổi dữ liệu của hệ thống)
 Lọc dữ liệu thời gian quét vân tay của từng cá nhân, xuất ra file Excel để
thống kế thời gian quét vân tay của tất cả người dùng.
 Thống kê số lần trễ, số ngày vắng, tổng thời gian đi trễ (phút) của từng sinh
viên hoặc giảng viên, xuất ra file Excel thống kê số lần đi trễ, số ngày vắng,
tổng số lần trễ (phút) của giảng viên và sinh viên.
 Quản lý danh sách người dùng bao gồm ID cá nhân (riêng biệt cho mỗi cá
nhân), ảnh đại diện, tên người dùng, giới tính, năm sinh, chức vụ, địa chỉ,
email, tài khoản và mật khẩu đăng nhập.
 Thêm người dùng bao gồm ID cá nhân, tên người dùng, ảnh đại diện, giới
tính, năm sinh, chức vụ, địa chỉ, email, tài khoản đăng nhập, mật khẩu đăng
nhập, loại tài khoản ( lựa chọn 2 loại tài khoản là: supervisor(giảng viên) và
user( sinh vên)).
 Chức năng gửi phản hồi, tạo nên sự tương tác giữa người quản lí và người
dùng, khi có sự sai lệch hay cần sửa đổi gì thì người dùng có thể phản hồi.
 Chức năng gửi mail giúp cho người quản lí có thể cảnh báo những sinh viên
đi trễ, vắng để sinh viên khắc phục.
- Sử dụng HTML và CSS để thiết kế một giao diện Web dễ sử dụng và thân thiện
với người dùng.
- MySQL và PHP là hai công cụ để quản lý cơ sở dữ liệu và thực hiện các tác vụ
lên cơ sở dữ liệu.
- Sử dụng phần mềm XAMPP để tạo localhost, phục vụ cho việc thiết kế giao
diện web được dễ dàng hơn.
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 56
- Nhóm đã lên ý tưởng và thiết kế một giao diện website thân thiện dễ sử dụng và
dễ dàng phân biệt giữa các khối chức năng. Hình bên dưới là phần trình bày bố
cục mà nhóm quyết định sẽ thực hiện website:
Hình 4.17 Bố cục giao diện website quản lý
 ĐĂNG KÍ WEB SERVER
Để lưu trữ các file nguồn cũng như cơ sở dữ liệu( CSDL) ta cần một web server.
Ngày nay với sự phát triển không ngừng của thế giới hiện đại, ta có thể dễ dàng đăng
kí một web server. Do kinh phí có hạn cũng như website không quá phức tạp như các
website kinh doanh, website tin tức,… nên nhóm đăng kí hosting để xây dựng web
server từ website https://www.000webhost.com. Tuy web server này miễn phí nhưng
nó đáp ứng được các mục tiêu mà nhóm đã đề ra.
Khi đã đăng kí thành công, ta truy cập Manage database sau đó ta chọn
Newdatabase và tạo một cơ sở dữ liệu mới.
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 57
Hình 4.18. Truy cập Manage Database
Hình 4.19. Khởi tạo một CSDL mới.
Tạo một bảng dữ liệu cho CSDL:
Bảng dữ liệu là thành phần chính tạo nên CSDL. Các bảng này có chức năng
giúp người dùng thực hiện việc lưu trữ hay truy suất trên CSDL. Các bảng dữ liệu này
có cấu trúc được phép cài đặt một cách linh hoạt bởi người thiết kế.
Người dùng có thể tạo bảng bằng cách chọn số cột muốn tạo, sau đó điền vào các
trường được phpMyAdmin cung cấp sẵn bao gồm: tên, kiểu dữ liệu, độ dài của kiểu dữ
liệu, đặt khóa chính…
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58
Hình 4.20. Tạo một bảng dữ liệu và chọn giá trị các trường cho trước
Hình 4.21. Bảng dữ liệu comment hoàn chỉnh.
Mỗi bảng đều có chức năng quan trọng trong việc thiết kế website quản lý, theo
yêu cầu đã đặt ra ta xây dựng 5 bảng dữ liệu bao gồm:
- Bảng “comment”: quản lý nội dung phản hồi của người dùng.
- Bảng “giamsat”: quản lý thời gian quét vân tay của người dùng.
- Bảng “profile”: quản lý thông tin, địa chỉ, mail,… của người dùng.
- Bảng “tongket”: thống kê số liệu cho bảng giám sát.
- Bảng “user”: quản lý tài khoản của người dùng
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 59
Hình 4.22. Các bảng trong cơ sở dữ liệu
Mỗi nhà cung cấp dịch vụ web server mang đến người dùng cách lưu trữ các file
nguồn khác nhau. Đối với trang mà nhóm đã đăng kí hosting sẽ có 2 cách để lưu trữ
các file nguồn trên server. Cách đầu tiên, ta sẽ truy cập File manager  Upload files
now  Sau đó ta chọn file cần tải lên server để lưu trữ.
Hình 4.23. Quản lý các file nguồn trên server
Cách thứ 2, ta sử dụng phần mềm Filezilla để quản lí các file nguồn. Phần mềm
này sẽ được kết nối với địa chỉ của website ta đã đăng kí thông qua giao thức FTP, sau
đó các file nguồn sẽ được đồng bộ tới website như hình 4.24.
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60
Hình 4.24. Giao diện phần mềm Filezilla quản lý các file nguồn
 MỐI TƯƠNG QUAN GIỮA PHP VÀ MYSQL
Nếu như một ứng dụng web mà không có sự lưu trữ, khai thác dữ liệu thì sẽ
không có sự tương tác với người dùng và đó đơn giản chỉ là một website tĩnh. Ngôn
ngữ lập trình PHP và cơ sở dữ liệu MySQL là một bộ đôi hoàn hảo.
MySQL được ví von như bộ não hay trái tim của một người, là nơi duy trì sự
sống của một cá thể, nếu hai bộ phận này bị tổn thương thì mọi hoạt động của cơ thể
đó sẽ bị ảnh hưởng rất lớn. MySQL cũng vậy, nó chính là nơi lưu trữ toàn bộ dữ liệu
của trang web, là nơi cung cấp tất cả thông tin cần thiết cho người sử dụng. Nếu bạn
tạo một ứng dụng web mà không có hệ quản trị cơ sở dữ liệu, cụ thể ở đây là MySQL
thì trang web của bạn chỉ ở trạng thái tĩnh mà thôi và sẽ không có bất cứ sự tương tác
nào với người dùng. Chính vì thế mà việc kết hợp giữa lập trình PHP với cơ sở dữ liệu
MySQL là vô cùng cần thiết.
Sau khi tạo ra bảng dữ liệu mong muốn như đã trình bày ở mục trên, người dùng
sẽ thao tác với CSDL thông qua các bảng này. Các hành động có thể thực hiện như
thêm, xóa, sửa hoặc truy xuất dữ liệu. Đầu tiên, ta cần kết nối tới hệ quản trị CSDL
MySQL. Cú pháp lệnh trong ngôn ngữ PHP như sau:
$ket_noi_CSDL = mysql_connect(“Tên host”,”tên người dùng”,”mật khẩu”,”tên
csdl”);
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61
Trong đó server là tên của nơi lưu trữ CSDL, còn tên người dùng và mật khẩu là
các thông tin đã có khi ta tạo ra CSDL, tên csdl là tên cơ sở dữ liệu người dùng đã tạo.
Câu lệnh trên kết nối tới server nơi chứa CSDL và cho phép người dùng thực hiện các
thao tác truy vấn.
Trong MySQL có nhiều CSDL, ta cần xác định một CSDL cụ thể mà ta muốn
truy xuất. Ngôn ngữ PHP cung cấp cho người dùng những câu lệnh truy xuất như sau:
$sql= “select * from “tên_bảng_trong_cơ_sở_dữ_liệu”;
Câu lệnh trên có ý nghĩa truy vấn tất cả dữ liệu có trong bảng mà ta đã chọn.
Trong một CSDL người dùng có thể xóa bảng tùy theo ý muốn, cú pháp lệnh xóa bảng
như sau:
$sql = “DELETE * FROM tên_bảng”;
Để thực thi các câu lệnh trên, người lập trình cần sử dụng câu lệnh:
$query= mysqli_query($ket_noi_CSDL, $sql);
4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC
Viết tài liệu hướng dẫn sử dụng hệ thống quét vân tay
Bước 1: Cấp nguồn cho hệ thống, hệ thống sử dụng nguồn là 220V AC. Đợi hệ
thống khởi động, màn hình LCD hiển thị menu lựa chọn. Có hai chế độ cho người
dùng lựa chọn là chế độ quản trị Admin( có chức năng lưu trữ hoặc xóa vân tay) và
chế độ quét vân tay.
Bước 2: Nếu chon chế độ quét vân tay thì nhấn phím số 1, đưa vân tay người
dùng đã được lưu trữ trước đó vào cảm biến cho đến khi màn hình LCD thông báo đã
quét vân tay. Dữ liệu ID người dùng khi quét vân tay sẽ được gửi lên trang web
http://doantotnghiepk13.tk. Sau khi dữ liệu được gửi thành công thì màn hình LCD sẽ
quay về menu lựa chọn.
Bước 2: Nếu muốn vào chế độ quản trị admin thì nhấn phím số 2 sau đó tiến
hành nhập mật khẩu admin và kết thúc bằng phím #, khi đó menu quản trị admin sẽ
hiển thị trên LCD. Trong menu của chế độ quản trị admin có 2 chế độ lựa chọn, muốn
tùy chọn chế độ nào thì thực hiện theo các thao tác sau:
- Nếu muốn thêm người dùng thì nhấn phím 1. Nhập ID cần lưu từ bàn phím
sau đó nhấn phím #, đưa vân tay vào cảm biến khi nào đèn đỏ trong cảm biến
tắt và có thông báo “remove finger” hiện trên LCD thì ta rút vân tay ra, đợi
Chuong 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 62
đèn đỏ sáng lại ta thực hiện đưa vân tay trước đó vào một lần nữa để xác nhận.
Khi có thông báo “Stored” hiển thị trên LCD thì vân tay của người dùng đã
được thêm thành công.
- Nếu muốn xóa người dùng thì ta nhấn phím 2. Nhập ID cần xóa từ bàn phím
sau đó nhấn phím # để xóa ID đó. Màn hình LCD sẽ xuất thông báo
“Deleted”.
- Nếu muốn quay lại menu chính thì nhấn phím D.
Bước 5: Nếu admin muốn kiểm tra thông tin người dùng về thời gian ra vào, số
lần trễ, số ngày vắng, tổng thời gian đi trễ, xuất dữ liệu ra file excel, kiểm tra thông tin
người dùng, thêm người dùng truy cập vào web http://doantotnghiepk13.tk. Sau đó
admin đăng nhập vào hệ thống ở chế độ admin. Xuất file excel tiến hành gửi mail cho
những sinh viên đã vi phạm nội quy lớp học.
Bước 6 : Nếu supervisor muốn kiểm tra thời gian ra vào của bản thân và các user
thì truy cập vào website http://doantotnghiepk13.tk . Sau đó người dùng đăng nhập vào
hệ thống ở chế độ supervisor.
Bước 7 : Nếu user muốn kiểm tra thời gian ra vào của bản thân thì truy cập vào
website http://doantotnghiepk13.tk. Sau đó người dùng đăng nhập vào hệ thống ở chế
độ user.
Lưu ý : Từ bước 2 trở đi ta có thể thao tác tùy ý do các chế độ được lập trình độc lập
với nhau.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 84
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 63
Chương 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
5.1 KẾT QUẢ
Sau quãng thời gian tìm hiểu, nghiên cứu song song giữa các tài liệu chuyên ngành
tiếng Việt và tiếng Anh, quá trình tổng hợp lại các kiến thức đã học trong suốt 4 năm
học và tìm hiểu qua mạng Internet cũng như được sự hướng dẫn tận tình của GVHD
Th.S Võ Đức Dũng. Nhóm chúng em cũng đã hoàn thành được đồ án tốt nghiệp với đề
tài “GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN
TAY ĐIỀU KHIỂN QUA MẠNG INTERNET”
Sau quá trình thực hiện đồ án này, nhóm em đã tích lũy được thêm nhiều kiến thức
mới, bổ sung thêm hành trang kiến thức phục vụ cho công việc sau này.
 Biết cách sử dụng và khai thác các tính năng của Arduino như giao tiếp giữa
Arduino với các module mở rộng như: cảm biến vân tay R305, module Sim 800A, ma
trận phím, màn hình LCD.
 Tìm hiểu và tiến hành kết nối Arduino với các module mở rộng như cảm biến
vân tay R305, module Sim 800A, ma trận phím, màn hình LCD.
 Cách sử dụng module Sim 800A, nguyên lý hoạt động, các thông số kỹ thuật,
tính năng của Sim 800A. Thiết lập cho module sim, gửi dữ liệu lên website nhờ GPRS.
 Biết được nguyên lý hoạt động của cảm biến, các thông số kỹ thuật, các tính năng
cũng như cách sử dụng của cảm biến vân tay R305. Biết được quy trình lấy mẫu dấu
vân tay cũng như lịch sử hình thành và phát triển của ngành sinh trắc học vân tay.
 Lập trình được một website với giao diện trực quan, thao tác đơn giản.
 Biết được cách truy vấn dữ liệu cũng như sự tương quan giữa PHP và MySQL.
 Biết cách gửi mail trong PHP sử dụng hàm PHPMailer.
Sau quá trình nghiên cứu, thi công đề tài “GIÁM SÁT VÀ CẢNH BÁO SINH
VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG
INTERNET” của nhóm đã hoàn thành và thực hiện được tính năng sau:
 HIỂN THỊ TRÊN LCD
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 64
Khi khởi động hệ thống, người dùng sẽ vào giao diện menu lựa chọn trên màn
hình LCD. Để thực hiện các thao tác, người dùng nhấn chọn mục cần thao tác trên
ma trận phím.
Hình 5.1. Menu lựa chọn tác vụ
Nếu người dùng muốn thêm vân tay hay xóa vân tay cũng như thay đổi mật khẩu chỉ
cần ấn chọn số 2 từ ma trận phím. Khi đó menu quản trị admin sẽ hiện trên mà hình
LCD.
Hình 5.2. Menu quản trị Admin
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 65
 THAO TÁC QUÉT VÂN TAY
Sau khi khởi động hệ thống và màn hình LCD hiển thị Menu lựa chọn, người dùng
muốn quét vân tay, ấn chọn số 1 từ ma trận phím.
Hình 5.3. Chờ quét vân tay Hình 5.4. Đưa ngón tay vào cảm biến.
Hình 5.3 mô tả trạng thái chờ để quét vân tay, hình 5.4 mô tả lúc người dùng đưa vân
tay đã lưu trữ trước đó vào để cảm biến nhận dạng vân tay tiến hành quét vân tay.
Hình 5.5. Quét vân tay thành công Hình 5.6. Tải dữ liệu người dùng lên Web
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 66
Khi vân tay được nhận dạng trùng với mẫu đã lưu trữ trước đó, màn hình LCD sẽ thông
báo quét vân tay thành công và tải dữ liệu lên website quản lý sinh viên.
Dữ liệu được gửi lên website thông qua mạng GPRS của sim được gắn trên Module Sim
800A. Nếu người dùng quét vân tay không trùng với vân tay đã được lưu trữ trước đó
thì sẽ không có thông báo đã quét vân tay cho đến khi quét đúng mới thôi.
 THAO TÁC THÊM VÂN TAY VÀ XÓA VÂN TAY
Nếu quản trị viên muốn thêm vân tay hay xóa vân tay chỉ cần ấn chọn số 2 từ ma trận
phím. Khi đó menu quản trị admin sẽ hiện trên mà hình LCD.
Hình 5.7. Hệ thống yêu cầu nhập mật khẩu Admin
Hình 5.8. Nhập mật khẩu Admin Hình 5.9. Nhập mật khẩu thành công
Sau khi đăng nhập đúng mật khẩu, màn hình LCD sẽ thông báo người dùng biết rằng
mình đã nhập mật khẩu thành công và hiện menu quản trị Admin với các quyền thêm
vân tay, xóa vân tay.
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 67
Tùy vào nhu cầu mà Admin có thể ấn chọn phím 1 để thêm vân tay, ấn chọn phím 2 để
xóa vân tay hay muốn quay lại menu lựa chọn thì ấn chọn phím D.
Hình 5.10. Thêm ID người dùng mới Hình 5.11. Quét vân tay mới lần 1
Hình 5.12. Đưa vân tay ra ngoài. Hình 5.13. Quét vân tay lần 2
Ta thêm ID người dùng mới bằng cách nhập số từ bàn phím, mỗi ID sẽ tương ứng với
thông tin của một cá nhân ở trên website, từ đó ta dễ dàng quản lý được người dùng.
Người dùng tiến hành quét vân tay lần thứ nhất sau đó thả vân tay ra và đưa vân tay vào
lần thứ hai. Khi mành hình LCD hiện thông báo Stored! Thì việc lưu trữ dấu vân tay đã
thành công và màn hình LCD quay về menu quản trị Admin. Từ hình 5.10 đến hình 5.13
thể hiện quá trình thêm vân tay.
Nếu muốn xóa vân tay, ta thực hiện thao tác ấn chọn phím 2, nhập ID cần xóa từ bàn
phím và kết thúc bằng phím #. Thao tác xóa vân tay được thực hiện như hình 5.14 và
hình 5.15. Khi xóa vân tay thành công, màn hình LCD sẽ quay về menu quản trị Admin.
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 68
Hình 5.14. Nhập ID cần xóa. Hình 5.15. Xóa vân tay thành công.
 GIAO DIỆN WEBSITE
Người dùng truy cập vào website được cung cấp và chọn đăng nhập một trong 3 chế độ
admin, supervisor, user.
Hình 5.16. Cửa sổ đăng nhập hệ thống
Người dùng cần có tài khoản và mật khẩu thích hợp cho từng chế độ đăng nhập.
 Chế độ admin:
 Sau khi đăng nhập thành công, trang chủ sẽ hiển thị thời gian quét vân tay của
người dùng, hiển thị thông báo cảnh báo khi quét vân tay nhiều lần. Bên cạnh đó
còn có các thông báo về phản hồi và các nút nhấn để lọc dữ liệu, xuất dữ liệu hay
xóa dữ liệu.
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 69
Hình 5.17. Trang chủ chế độ admin
 Lọc dữ liệu thời gian mở quét vân tay của từng cá nhân supervisor hoặc user,
ghi chú từng cá nhân về việc đi trễ, cảnh báo khi quét vân tay nhiều lần.
 Xuất file Excel thống kê thời gian quét vân tay của từng cá nhân supervisor hoặc
user khi ta nhấp Export.
Hình 5.18. Xuất file Excel thống kê thời gian mở quét vân tay.
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 70
 Tổng kết thời gian của từng cá nhân bao gồm các thông số về số lần trễ, số ngày
vắng và tổng thời gian trễ (phút) ở hình 5.19 và người dùng có thể xuất ra file
Excel để tiện quan sát như hình 5.20.
Hình 5.19. Tổng kết thời gian quét vân tay
Hình 5.20. Xuất file Excel tổng kết thời gian
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 71
Hình 5.21. File Excel tổng kết thời gian
 Hiển thị danh sách người dùng bao gồm ID cá nhân (riêng biệt cho từng cá nhân),
ảnh đại diện, tên người dùng, giới tính, năm sinh, chức vụ, địa chỉ, email. Cho
phép admin có thể xóa hay sửa đổi thông tin của người dùng.
Hình 5.22. Danh sách người dùng
 Xuất file Excel danh sách người dùng bao gồm ID cá nhân (riêng biệt cho từng
cá nhân), ảnh đại diện, tên người dùng, giới tính, năm sinh, chức vụ, địa chỉ,
email như hình 5.22.
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 72
Hình 5.23. Xuất file Excel danh sách người dùng
Hình 5.24. File Excel danh sách người dùng
 Chức năng thêm người dùng bao gồm ID cá nhân, tên người dùng, năm sinh, ảnh
đại diện, giới tính, năm sinh, chức vụ, địa chỉ, email, tài khoản đăng nhập, mật
khẩu đăng nhập và loại tài khoản (supervisor hay user).
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 73
Hình 5.25. Thêm người dùng
 Nhận phản hồi từ Phản hồi tài khoản supervisor và user.
Hình 5.26. Thông báo có phản hồi
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 74
Hình 5.27. Nội dung phản hồi
 Gửi cảnh báo đến sinh viên về số phút trễ, ngày vắng, giờ ra vào lớp học
Hình 5.28. Giao diện gửi mail
 Chế độ supervisor:
 Trang chủ supervisor có thể kiểm tra thời gian quét vân tay của các user, cũng
như là tự kiểm tra thời gian quét vân tay của bản thân. Bên cạnh đó cũng có các
thông báo về việc đi trễ hay quét vân tay nhiều lần của từng cá nhân.
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 75
Hình 5.29. Trang chủ supervisor
 Tổng kết thời gian ra vào, số lần trễ hoặc vắng của supervisor.
Hình 5.30. Tổng kết thời gian của supervisor
 Hồ sơ cá nhân supervisor.
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 76
Hình 5.31. Hồ sơ cá nhân supervisor
 Gửi phản hồi các nội dung cần giải quyết về admin.
Hình 5.32. Gửi phản hồi
 Gửi thông báo đến user:
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 77
Hình 5.33. Giao diện gửi thông báo đến user
 Chế độ user:
 Trang chủ user hiển thị thời gian mở quét vân tay của user. Ghi chú về việc đi
trễ và cảnh báo quét vân tay nhiều lần.
Hình 5.34. Trang chủ user
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 78
 Hồ sơ cá nhân user
Hình 5.35. Hồ sơ cá nhân user
 Gửi phản hồi. Chức năng này tương tự như chức năng của supervisor.
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 79
 MÔ HÌNH
Hình 5.36. Mặt trước mô hình
Hình 5.37. Mặt sau mô hình
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 80
5.2 NHẬN XÉT – ĐÁNH GIÁ:
Tuy vấp phải nhiều khó khăn trong quá trình thực hiện nhưng cuối cùng nhóm đã
hoàn thiện được đề tài: “GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ
THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET”.
Mô hình hoạt động ổn định, có thể làm việc liên tục và đáp ứng được các yêu cầu
đã đề ra. Người dùng thao tác một cách đơn giản, dễ sử dụng. Hê thống đảm bảo an toàn
và bảo mật cho người dùng.
Việc sử dụng nguồn cấp từ 12V trở xuống nên an toàn cho người sử dụng.
Như chúng ta đã biết, công nghệ nhận dạng vân tay có tính bảo mật rất cao nên
tính bảo mật của mô hình là khá cao.
Website quản lý thời gian ra vào của người dùng có giao diện trực quan, dễ sử
dụng, các chức năng hiện hữu trên website đáp ứng việc quản lý thời gian của sinh viên,
giảng viên.
Cảnh báo sinh viên bằng cách gửi mail thông báo về việc đi trễ, số ngày vắng của
sinh viên bằng mail đã được đăng kí trước.
Thời gian đáp ứng khi cập nhật dữ liệu vân tay lên website liên tục mỗi khi có vân
tay được quét.
Song song với mặt đặt được vẫn còn tồn động một số hạn chế do thời gian thực
hiện có hạn, lượng kiến thức cũng như nguồn tài liệu tham khảo còn hạn chế, chủ yếu
thông qua mạng internet nên đề tài không thể tránh khỏi sai sót:
 Thời gian để cập nhật dữ liệu vân tay khá lâu khoảng 5-6 giây.
 Việc gửi mail cảnh báo sinh viên chưa tự động,
CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 81
Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
6.1 KẾT LUẬN
Sau thời gian tìm hiểu, nghiên cứu và thực hiện, nhóm đã hoàn thành đề tài “GIÁM
SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY
ĐIỀU KHIỂN QUA MẠNG INTERNET” Hệ thống đáp ứng đầy đủ các tính năng, nội
dung và mục tiêu ban đầu đã đề ra:
 Giao tiếp và truyền dữ liệu thành công giữa Arduino Mega 2560 với các module
cảm biến vân tay R305, module SIM 800A, màn hình LCD, ma trận phím.
 Điểm danh thành công thông qua việc quét nhận dạng dấu vân tay.
 Có thể thêm hoặc xóa vân tay khi quản trị viên cần lấy mẫu vân tay một lớp.
 Cập nhật dữ liệu vân tay lên website thành công.
 Quản lý người dùng trên website bao gồm thời gian ra vào, số lần trễ, số ngày
vắng, thông tin người dùng, thêm người dùng.
 Cảnh báo sinh viên đi trễ hoặc vắng để sinh viên có hướng khắc phục.
 Website quản lý người dùng bao gồm 3 cấp độ là Admin, Supervisor, User. Mỗi
cấp độ có phân quyền khác nhau như Admin sẽ quản lý Supervisor và User bằng các tác
quyền như thêm hay xóa, quản lý dữ liệu thời gian trễ, vắng. Supervisor sẽ quản lý User
và có thể gửi thông báo cho User. Riêng đối với User chỉ phân quyền được xem không
được sửa dữ liệu.
 Gửi về mail sinh viên thông tin trễ học hoặc vắng thông qua giao diện trên
website.
Nhóm đã cố gắng thực hiện nhưng vẫn còn tồn động một số hạn chế về mặt kiến
thức cũng như thời gian thực hiện nên đề tài khó tránh khỏi sai sót và hạn chế:
 Thời gian để tải dữ liệu vân tay lên website khá lâu khoảng 5-6 giây.
 Chức năng cảnh báo sinh viên chưa thể tự động gửi mail cảnh báo đến sinh viên,
vẫn cần quản trị viên thực hiện.
Tuy còn tồn động những mặt hạn chế nhưng nhìn chung mô hình hoạt động tốt so
với những yêu cầu đã đề ra:
CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 82
 Hệ thống chạy tương đối ổn định, dữ liệu vân tay được cập nhật liên tục.
 Module cảm biến vân tay R305 hoạt động tốt, ổn định, độ chính xác rất cao.
Module SIM 800A hoạt động khá ổn định.
 Hệ thống website quản lý thời gian ra vào của người dùng dễ sử dụng, nhiều tính
năng đáp ứng nhu cầu thực tiễn.
 Hệ thống website quản lý người dùng bao gồm 3 cấp độ là Admin, Supervisor,
User.
 Gửi email thông báo về thời gian ra vào cũng như số lần đi trễ đến mail đã được
đăng kí ở trang thông tin người dùng.
6.2 HƯỚNG PHÁT TRIỂN
Có thể gửi dữ liệu người dùng lên website quản lý thời gian thông qua Wifi.
Mở rộng khả năng lấy nhiều mẫu vân tay hơn để nâng cao khả năng ứng dụng của
đề tài không chỉ dừng lại ở việc quản lý lớp học mà có thể quản lý nhà máy, xí nghiệp,…
Thiết kế giao diện website sinh động hơn, giao diện dễ dàng tương tác với người
dùng. Tự động gửi email đến những sinh viên đã đi trễ, vắng.
TÀI LIỆU THAM KHẢO
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 83
TÀI LIỆU THAM KHẢO
Sách tham khảo
[1] Nguyễn Minh Tiến, Phan Hồng Đức, “Thiết kế và thi công hệ thống đóng mở cửa
bằng vân tay sử dụng kit Arduino được giám sát bằng máy tính thông qua Internet”, Đồ
Án Tốt Nghiệp ĐH, Trường ĐH Sư Phạm Kỹ Thuật TP.HCM, 2017.
[2] “Language Reference”, https://www.arduino.cc/en/Reference/HomePage
[3] http://thuonghieuweb.com/code-gui-email-tu-website-voi-php.html
DATASHEET
[4] Arduino Mega 2560, https://www.arduino.cc/en/uploads/Main/arduino-
mega2560_R3-schematic.pdf
[5] Cảm biến vân tay, http://www.rhydolabz.com/documents/finger-print-module.pdf
[6] Sim 800A, http://simcomm2m.com/En/module/detail.aspx?id=138
[7] Tập lệnh AT, http://www.espruino.com/datasheets/SIM900_AT.pdf
[8] LCD20x4,
http://mathcs.holycross.edu/~kwalsh/zebra/Systronix_20x4_lcd_brief_data.pdf
[9] Ma trận phím 4x4, https://www.parallax.com/sites/default/files/downloads/27899-
4x4-Matrix-Membrane-Keypad-v1.2.pdf
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 84
PHỤ LỤC
 TỔNG QUAN VỀ WEB
 Giao thức HTTP
HTTP là chữ viết tắt của HyperText Transfer Protocol (giao thức truyền tải
siêu văn bản). Đây là một giao thức ứng dụng trong bộ các giao thức TCP/IP (gồm
một nhóm các giao thức nền tảng cho internet).
Hình: Mô hình Client-Server
HTTP hoạt động dựa trên mô hình Client – Server. Trong mô hình này, các máy
tính của người dùng sẽ đóng vai trò làm máy khách (Client). Sau một thao tác nào đó
của người dùng, các máy khách sẽ gửi yêu cầu đến máy chủ (Server) và chờ đợi câu trả
lời từ những máy chủ này. Để có thể nói chuyện được với nhau, các máy chủ và máy
khách phải thực hiện việc trao đổi thông qua các giao thức. Một trong những giao thức
được sử dụng thường xuyên nhất chính là HTTP.
Khi bạn gõ một địa chỉ Web URL vào trình duyệt Web, một lệnh HTTP sẽ được
gửi tới Web server để ra lệnh và hướng dẫn nó tìm đúng trang Web được yêu cầu. Trang
Web này sau đó sẽ được kéo về và mở trên trình duyệt Web. Nói đơn giản hơn, HTTP
là giao thức giúp cho việc truyền tải file từ một Web server vào một trình duyệt Web để
người dùng có thể xem một trang Web đang hiện diện trên trình duyệt.
Server phản hồi với một dòng trạng thái, bao gồm phiên bản giao thức của thông
báo và một code thành công hoặc lỗi, theo sau bởi một thông báo MIME chứa thông tin
Server, thông tin thực thể đa phương tiện và nội dung đối tượng.
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 85
Hình: Sơ đồ cấu trúc đơn giản của ứng dụng Web và vị trí của HTTP
 AJAX
AJAX = Asynchronous JavaScript And XML.
Ajax giúp khắc phục nhược điểm thay vì phải tải lại trang để cập nhật một phần tử
HTML, ta chỉ tải nội dung cần được cập nhật mà thôi. Ajax không phải là công nghệ
mới mà là sự kết hợp giữa nhiều công nghệ cũ, trong đó bao gồm JavaScript và XML.
Điều này được phản ánh trong cái tên của nó: Asynchronous JavaScript and XML
Đầu tiên là từ Asynchronous, nghĩa là “bất đồng bộ”. Điều này nghĩa là request
có thể được gửi kể cả khi trang được tải hoàn tất và hiển thị ra trình duyệt. Ngoài ra, ứng
dụng không phải chờ đợi response từ server. Thay vào đó, ứng dụng có thể làm việc
khác, khi nào response tới thì sẽ xử lý. Điều này giúp ứng dụng hoạt động trơn tru mà
không bị treo khi chờ đợi một tác vụ chiếm nhiều thời gian. Từ thứ hai là JavaScript.
Đây là một thành phần quan trọng vì JavaScript sẽ được dùng để gửi request và biến hóa
các thành phần trên trang để hiển thị nội dung mới nhận từ server. Từ cuối cùng là XML,
đây là từ gây nhiều hiểu lầm nhất về Ajax vì nó khiến người ta nghĩ Ajax chỉ làm việc
với XML. Thực chất, Ajax có thể làm việc với tất cả dữ liệu dạng text: HTML, XML
hoặc JSON.
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 86
Cách AJAX làm việc:
Hình: Cách thức hoạt động của AJAX
 CÁC PHẦN MỀM SỬ DỤNG
 Sơ lược về môi trường XAMPP
Xampp là một công cụ tích hợp đầy đủ các thành phần bao gồm Apache, MySQL,
FTP Server, Mail Server và các công cụ như phpMyAdmin. Giúp chúng ta tạo ra môi
trường web server trên máy tính của mình, để có thể chạy được kịch bản PHP.
Hình:Giao diện làm việc phần mềm XAMPP
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 87
Hình: Giao diện phần mềm FileZila
 ĐOẠN CODE CHƯƠNG TRÌNH CHÍNH
//----------THU VIEN-Drive ------------------------------
#include <Keypad.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal_I2C.h>
#include <Adafruit_Fingerprint.h>
#include <Wire.h>
//---------KEYPAD---------------------------------
const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {45, 43, 41, 39}; //connect to the row pinouts of the
keypad
byte colPins[COLS] = {37, 35, 33, 31}; //connect to the column pinouts of the
keypad
Keypad mykeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS,
COLS );
//--------LCD-------------------------------------
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 88
LiquidCrystal_I2C lcd(0x3F, 20, 4);
//--------PASSWORD--------------------------------
char matkhau[10] = {};
String password = "";
char password_buff[10] = {};
boolean check = false;
char class_x = '0';
char class_y = '3';
byte index = 0;
byte index_buff = 0;
String password_admin = "1111";
int dem_mk_sai = 0;
//---------SERIAL---------------------------------
//SoftwareSerial mySerial(16, 17);
//---------FINGER---------------------------------
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&Serial1);
//uint8_t id;
int id = 0;
char id_buff[] = {};
byte index_id = 0;
uint8_t getFingerprintEnroll();
boolean check_enroll = false;
boolean check_delete = false;
boolean out_fingerprint = false;
//--------ETHERNET SHIELD-------------------------
long tam_gioopen = 0; //bien tam dem so lan de open
int times_open; // so lan cua timer de open
int times_close;
String pin_open = "";
String pin_close = "";
char statu[4] = {'0', '0', '0', '0'};
void setup() {
//----lcd---------
lcd.init();
lcd.backlight();
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 89
lcd.display();
//----sim800------
Serial2.begin(115200);
Serial2.println("AT+CNMI=2,2"); // Nhận tn ngay khi có
Serial2.println("AT+CMGF=1"); // Chuyển về dạng text mới so sánh chuỗi
được
Serial.println("AT+CMGF=1");
delay(100);
//----Ethernet shield---
/*
*/
//---finger------------
finger.begin(57600);//Khoi tao van tay
if (finger.verifyPassword()) {
Serial.println("Found fingerprint sensor!");
} else {
Serial.println("Did not find fingerprint sensor :(");
//while (1);
}
}
//------------CHUONG TRINH CHINH------------------------------
void loop() {
char key = mykeypad.getKey();
switch (class_x)
{
case '0':
{
Serial.println("1. QUET VAN TAY");
Serial.println("2. QUAN TRI ADMIN");
//+++++++++++++
hienthi_lcd_clear(0, 0, "1.QUET VAN TAY");
hienthi_lcd(2, 0, "2.QUAN TRI ADMIN");
delay(500);
while (class_x == '0')
{
char key = mykeypad.getKey();
if (key == '1')
{
class_x = '1';
break;
}
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 90
if (key == '2')
{
class_x = '2';
class_y = '3';
hienthi_lcd_clear(0, 0, "Nhap MK Admin:");
lcd.setCursor(0, 1);
break;
}
}
break;
}
case '1':
{
Serial.println("Waiting for valid finger...");
hienthi_lcd_clear(0, 0, "Waiting finger...");
while (!out_fingerprint)
{
getFingerprintIDez();
delay(50);
}
out_fingerprint = false;
break;
}
case '2':
{
switch (class_y)
{
case '3':
{
if (key)
{
if (key == '#')
{
matkhau[index] = '0';
Serial.print("ban vua nhap: ");
Serial.println(matkhau);
if (String(matkhau) == password_admin)
{
Serial.println("Xin Chao Admin!");
hienthi_lcd_clear(0, 0, "Xin Chao Admin!");
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 91
// StrClear(matkhau, index); //Xoa chuoi mat khau da luu
index = 0;
delay(1000);
class_y = '0'; // Ve lai menu
}
else
{
Serial.println("Nhap lai mat khau!");
hienthi_lcd_clear(0, 0, "Nhap lai mat khau:");
lcd.setCursor(0, 1);
// StrClear(matkhau, index);
index = 0;
}
}
else if (key == 'D') //Back
{
class_x = '0';
//StrClear(matkhau, index);
index = 0;
}
else if (index < 4)
{
matkhau[index] = key;
index++;
Serial.print(key); // Bo o duoi, để khi ấn back ko bị in ra D
lcd.print(key);
}
}
break;
}
case '0':
{
Serial.println("1. THEM VAN TAY");
Serial.println("2. XOA VAN TAY");
Serial.println("D. BACK");
hienthi_lcd_clear(0, 0, "1.THEM VAN TAY");
hienthi_lcd(1, 0, "2.XOA VAN TAY");
hienthi_lcd(2, 0, "D.BACK");
delay(500);
while (class_y == '0')
{
char key = mykeypad.getKey();
if (key == '1')
{
class_y = '1';
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 92
hienthi_lcd_clear(0, 0, "Nhap ID Can Them:");
lcd.setCursor(0, 1);
}
if (key == '2')
{
class_y = '2';
hienthi_lcd_clear(0, 0, "Nhap ID Can Xoa:");
lcd.setCursor(0, 1);
}
/* if (key == '3')
{
class_y = '3';
hienthi_lcd_clear(0, 0, "Nhap Lai MK cu:");
lcd.setCursor(0, 1);
}*/
if (key == 'D')
{
class_y = 'D';
}
if(key == '5')
{
class_y = '5';
}
}
break;
}
case '1':
{
Serial.println("Chuong trinh them van tay");
delay(1000);
id = 0; //reset id truoc
//StrClear(id_buff, index_id);
index_id = 0;
while (!check_enroll)
{
char key = mykeypad.getKey();
if (key)
{
if (key == '#')
{
String str_id = String(id_buff);
Serial.println(str_id);
id = str_id.toInt();
check_enroll = true; //Co thể chạy chương trình enroll
}
else if (key == 'D')
{
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 93
class_y = '0';
check_enroll = true;
id = 0; //De khong chay getFingerprintEnroll();
}
else
{
id_buff[index_id] = key;
index_id++;
Serial.print(key);
lcd.print(key);
}
}
}
if (id != 0)
getFingerprintEnroll();
delay(1000);
//id = 0;
check_enroll = false;
class_y = '0';
class_x = '2';
break;
}
case '2':
{
Serial.println("Chuong trinh XOa van tay");
id = 0; //reset id truoc
// StrClear(id_buff, index_id);
index_id = 0;
while (!check_delete)
{
char key = mykeypad.getKey();
if (key)
{
if (key == '#')
{
String str_id = String(id_buff);
id = str_id.toInt();
Serial.print("ID XOA: ");
Serial.println(id);
check_delete = true; //Co thể chạy chương trình delete
}
else if (key == 'D')
{
class_y = '0';
check_delete = true;
id = 0;
}
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 94
else
{
id_buff[index_id] = key;
index_id++;
Serial.print(key);
lcd.print(key);
}
}
}
if (id != 0)
deleteFingerprint(id);
id = 0;
check_delete = false;
class_y = '0';
break;
}
case 'D':
{
class_y = '0';
class_x = '0';
break;
}
}
break;
}
}
}
//-----------FINDGER----------------------------------------
//-----------Enroll-----------------------------------------
uint8_t getFingerprintEnroll() {
int p = -1;
Serial.print("Waiting for valid finger to enroll as #"); Serial.println(id);
hienthi_lcd_clear(0, 0, "Waiting for finger");
hienthi_lcd(1, 0, "as ID:");
lcd.print(id);
while (p != FINGERPRINT_OK)
{
p = finger.getImage();
switch (p)
{
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 95
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.println(".");
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
break;
default:
Serial.println("Unknown error");
break;
}
}
// OK success!
p = finger.image2Tz(1);
switch (p)
{
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
Serial.println("Remove finger");
hienthi_lcd_clear(0, 4, "Remove finger");
delay(2000);
p = 0;
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 96
while (p != FINGERPRINT_NOFINGER) {
p = finger.getImage();
}
Serial.print("ID "); Serial.println(id);
p = -1;
Serial.println("Place same finger again");
hienthi_lcd_clear(0, 0, "Place same finger");
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.print(".");
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
break;
default:
Serial.println("Unknown error");
break;
}
}
// OK success!
p = finger.image2Tz(2);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 97
default:
Serial.println("Unknown error");
return p;
}
// OK converted!
Serial.print("Creating model for #"); Serial.println(id);
p = finger.createModel();
if (p == FINGERPRINT_OK) {
Serial.println("Prints matched!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_ENROLLMISMATCH) {
Serial.println("Fingerprints did not match");
return p;
} else {
Serial.println("Unknown error");
return p;
}
Serial.print("ID "); Serial.println(id);
p = finger.storeModel(id);
if (p == FINGERPRINT_OK) {
Serial.println("Stored!");
hienthi_lcd_clear(0, 6, "Stored!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
Serial.println("Could not store in that location");
return p;
} else if (p == FINGERPRINT_FLASHERR) {
Serial.println("Error writing to flash");
return p;
} else {
Serial.println("Unknown error");
return p;
}
}
//--------SIM800--------------------------------------------
void toSerial()
{
while (Serial2.available() != 0)
{
Serial.write(Serial2.read());
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 98
}
}
void sim800_send(int id)
{
Serial.println("AT+IPR=19200");
Serial2.println("AT+IPR=115200"); // Dat c do truyen nhan du lieu
9600 bps
delay(1000);
toSerial();
Serial2.println("ATE0"); // Tat che do phan hoi (Echo mode)
Serial.println("ATE0");
delay(500);
toSerial();
Serial2.println("AT+SAPBR=3,1,"Contype","GPRS"");
Serial.println("AT+SAPBR=3,1,"Contype","GPRS"");
delay(1000);
toSerial();
Serial2.println("AT+SAPBR=1,1");
Serial.println("AT+SAPBR=1,1");
delay(1000);
toSerial();
Serial2.println("AT+HTTPINIT");
Serial.println("AT+HTTPINIT");
delay(1000);
toSerial();
// Serial3.println("AT+SAPBR=2,1");
// Serial.println("AT+SAPBR=2,1");
// delay(2000);
// toSerial();
Serial2.print("AT+HTTPPARA="URL","http://www.doantotnghiepk13.tk/m
onitor.php?id=");
Serial2.print(id);
Serial2.println(""");
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 99
Serial.println("AT+HTTPPARA="URL","http://www.doantotnghiepk13.tk/m
onitor.php?id=3"");
delay(1000);
toSerial();
Serial2.println("AT+HTTPACTION=0");
Serial.println("AT+HTTPACTION=0");
delay(4000); // It nhat 6s
toSerial();
// Serial3.println("AT+HTTPREAD");
// Serial.println("AT+HTTPREAD");
// delay(1000);
// toSerial();
Serial2.println("AT+HTTPTERM");
Serial.println("AT+HTTPTERM");
delay(300);
toSerial();
// Serial2.println("AT+SAPBR=0,1");
// Serial.println("AT+SAPBR=0,1");
// delay(500);
// toSerial();
}
//-----------FINGER- PRINT----------------------------------
uint8_t getFingerprintID() {
uint8_t p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.println("No finger detected");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
return p;
default:
Serial.println("Unknown error");
return p;
}
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 100
// OK success!
p = finger.image2Tz();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
// OK converted!
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) {
Serial.println("Found a print match!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println("Did not find a match");
return p;
} else {
Serial.println("Unknown error");
return p;
}
// found a match!
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
}
// returns -1 if failed, otherwise returns ID #
int getFingerprintIDez() {
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 101
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz();
if (p != FINGERPRINT_OK) return -1;
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK) return -1;
// found a match!
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
hienthi_lcd_clear(0, 0, "Found ID: ");
lcd.print(finger.fingerID);
hienthi_lcd(2, 2, "DA QUET VAN TAY!");
delay(500);
// gServo.write(70);
// hienthi_lcd(1, 0, "Do Tin Cay: ");
// lcd.print(finger.confidence);
//+++++++++++++++++++++++
hienthi_lcd_clear(0, 0, "Dang tai du lieu...");
sim800_send(int(finger.fingerID));
//++++++++++++++++++++++
delay(1);
// gServo.write(10);
// delay(50);
class_x = '0'; // Quay lai menu
out_fingerprint = true; // check de out
delay(1); // KO DELAY LÀ BỊ LỖI
//class_x = '0';
return finger.fingerID;
}
//-----------DeleteFinger-----------------------------------
uint8_t deleteFingerprint(uint8_t id) {
uint8_t p = -1;
p = finger.deleteModel(id);
if (p == FINGERPRINT_OK) {
Serial.println("Deleted!");
hienthi_lcd(2, 7, "Deleted!");
delay(1000);
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 102
} else if (p == FINGERPRINT_BADLOCATION) {
Serial.println("Could not delete in that location");
return p;
} else if (p == FINGERPRINT_FLASHERR) {
Serial.println("Error writing to flash");
return p;
} else {
Serial.print("Unknown error: 0x"); Serial.println(p, HEX);
return p;
}
}
//-----------LCD--------------------------------------------
void hienthi_lcd(int hang, int cot, char *content)
{
lcd.setCursor(cot, hang);
lcd.print(content);
}
void hienthi_lcd_clear(int hang, int cot, char *content)
{
lcd.clear();
lcd.setCursor(cot, hang);
lcd.print(content);
}

Đề tài: Cảnh báo sinh viên thông qua hệ thống quét vân tay, 9đ

  • 1.
    BỘ GIÁO DỤC& ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH --------------------------------- ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET GVHD : ThS. Võ Đức Dũng SVTH1: Nguyễn Văn Phúc MSSV : 13141243 SVTH2: Diệp Minh Thiện MSSV : 13141330 Tp. Hồ Chí Minh - 1/2018
  • 2.
    BỘ GIÁO DỤC& ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH --------------------------------- ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET GVHD : ThS. Võ Đức Dũng SVTH1: Nguyễn Văn Phúc MSSV : 13141243 SVTH2: Diệp Minh Thiện MSSV : 13141330 Tp. Hồ Chí Minh - 1/2018
  • 3.
    i TRƯỜNG ĐH. SƯPHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TP. HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH Tp. HCM, ngày 15 tháng 01 năm 2018 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Nguyễn Văn Phúc MSSV: 13141243 Diệp Minh Thiện MSSV: 13141330 Chuyên ngành: Điện tử công nghiệp Mã ngành: 141 Hệ đào tạo: Đại học chính quy Mã hệ: 1 Khóa: 2013 Lớp: 13141DT3A I. TÊN ĐỀ TÀI: GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET II. NHIỆM VỤ 1. Các số liệu ban đầu: - Nguyễn Minh Tiến, Phan Hồng Đức, “Thiết kế và thi công hệ thống đóng mở cửa bằng vân tay sử dụng kit Arduino được giám sát bằng máy tính thông qua Internet”, Đồ Án Tốt Nghiệp ĐH, Trường ĐH Sư Phạm Kỹ Thuật TP.HCM, 2017. 2. Nội dung thực hiện: - Tìm hiểu và nghiên cứu về cấu tạo, nguyên lý hoạt động, chức năng của các module Arduino, cảm biến vân tay R305, module Sim 800A, động cơ Servo, ma trận phím. - Tìm hiểu và nghiên cứu về cách lập trình Web Server, tìm hiểu về ngôn ngữ HTML, CSS, PHP, cơ sở dữ liệu MySQL để tạo nên một trang Web hoàn chỉnh. - Cách thiết kế và thi công một mô hình hoàn thiện. - Thiết kế hệ thống điều khiển, lưu đồ giải thuật và chương trình điều khiển mô hình. - Thiết kế hoàn thiện mô hình thực tế. - Chạy thử nghiệm mô hình hệ thống. - Cân chỉnh mô hình hệ thống. - Viết sách luận văn. - Bảo vệ đề tài tốt nghiệp
  • 4.
    ii III. NGÀY GIAONHIỆM VỤ: 02/10/2017 IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 15/01/2018 V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS. Võ Đức Dũng CÁN BỘ HƯỚNG DẪN BM. ĐIỆN TỬ CÔNG NGHIỆP - Y SINH
  • 5.
    TRƯỜNG ĐH. SƯPHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TP. HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Tp. HCM, ngày 01 tháng 10 năm 2017 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: ........................................................................................................... Lớp: ...............................................................................MSSV: ....................................... Họ tên sinh viên 2: ........................................................................................................... Lớp: ...............................................................................MSSV: ....................................... Tên đề tài: ......................................................................................................................... ........................................................................................................................................... Tuần/ngày Nội dung Xác nhận GVHD GV HƯỚNG DẪN (Ký và ghi rõ họ và tên)
  • 6.
    v LỜI CAM ĐOAN Đềtài này là do nhóm sinh viên Nguyễn Văn Phúc và Diệp Minh Thiện tự thực hiện, 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 nào đã có trước đó. Người thực hiện đề tài Nguyễn Văn Phúc Diệp Minh Thiện
  • 7.
    vi LỜI CẢM ƠN Sauquá trình tìm hiểu, nghiên cứu và thực hiện đề tài đồ án tốt nghiệp và hoàn thành đúng tiến độ, chúng em xin chân thành gửi lời cảm ơn sâu sắc nhất đến quý thầy cô, gia đình và những người anh, người bạn đã hết mình giúp đỡ, đưa ra những lời khuyên, lời động viên trong những lúc khó khăn. Chúng em xin gửi lời cảm ơn đến thầy Võ Đức Dũng, giảng viên trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM đã hướng dẫn và tạo mọi điều kiện điều kiện để nhóm có thể thực hiện tốt đề tài của mình. Và chúng em cũng xin gửi lời tri ân đến các thầy cô trong khoa Điện - Điện tử của trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM đã tận tình dạy dỗ và giảng dạy cho chúng em những kiến thức cơ bản đến nâng cao tạo cho chúng em một cơ sở kiến thức vững vàng để hoàn thành đề tài này. Gia đình luôn là nguồn động lực và là nguồn cảm hứng để chúng em liên tục phấn đấu và hoàn thành đề tài, xin cảm ơn đấng sinh thành đã luôn động viên chúng em trong những lúc bế tắc và chán nản nhất. Và cuối cùng chúng em xin cảm ơn các anh, chị đi trước và bạn bè đã có những lời khuyên, lời góp ý chân thành để đề tài của chúng em có thể hoàn thiện hơn. Một lần nữa, chúng em xin cảm ơn tất cả mọi người đã luôn ở bên cạnh và giúp đỡ chúng em, tạo động lực để chúng em hoàn thành tốt đề tài này. Xin chân thành cảm ơn! Người thực hiện đề tài: Nguyễn Văn Phúc Diệp Minh Thiện
  • 8.
    vii MỤC LỤC Trang bìa........................................................................................................................i Nhiệm vụ đồ án.............................................................................................................ii Lịch trình thực hiện đồ án tốt nghiệp........................................................................... iv Cam đoan ..................................................................................................................... v Lời cảm ơn................................................................................................................... vi Mục lục .......................................................................................................................vii Liệt kê hình vẽ .............................................................................................................. x Liệt kê bảng vẽ............................................................................................................ xv Tóm tắt ...................................................................................................................... xvi CHƯƠNG 1. TỔNG QUAN ............................................................................ 1 1.1 ĐẶT VẤN ĐỀ .................................................................................................... 1 1.2 MỤC TIÊU ......................................................................................................... 2 1.3 NỘI DUNG NGHIÊN CỨU............................................................................... 2 1.4 GIỚI HẠN........................................................................................................... 3 1.5. BỐ CỤC............................................................................................................. 3 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT................................................................ 5 2.1 TỔNG QUAN VỀ ARDUINO........................................................................... 5 2.2 TỔNG QUAN VỀ WEB..................................................................................... 6 2.3 NHẬN DẠNG VÂN TAY ................................................................................. 6 2.4 GIỚI THIỆU PHẦN CỨNG............................................................................... 6 2.4.1 Arduino Mega 2560......................................................................................... 7 2.4.2 Module Sim 800A............................................................................................ 7 2.4.3 Module cảm biến vân tay R305 ....................................................................... 7 2.4.8 Màn hình LCD 20x4...................................................................................... 11 2.4.9 Mạch chuyển giao tiếp LCD 20x4................................................................. 12 2.4.10 Bàn phím ma trận 4x4 (Keypad 4x4) .......................................................... 13 2.4.11 Động cơ Servo SG90 9g Micro ................................................................... 13 2.5 CÁC CHUẨN GIAO TIẾP............................................................................... 14 2.5.1 Chuẩn giao tiếp UART .................................................................................. 14
  • 9.
    viii 2.5.2 Chuẩn giaotiếp SPI ....................................................................................... 15 2.5.3 Chuẩn giao tiếp I2 C........................................................................................ 16 2.5.3 Chuẩn giao tiếp One-wire.............................................................................. 16 CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ. ................................................ 17 3.1 GIỚI THIỆU ..................................................................................................... 17 3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG...................................................... 18 3.2.1 Thiết kế sơ đồ khối hệ thống.......................................................................... 18 3.2.2 Tính toán và thiết kế mạch............................................................................. 22 3.2.3 Sơ đồ nguyên lý của toàn mạch ..................................................................... 38 CHƯƠNG 4. THI CÔNG HỆ THỐNG ....................................................... 40 4.1 GIỚI THIỆU....................................................................................................... 40 4.2 THI CÔNG HỆ THỐNG.................................................................................... 40 4.2.1 Thi công bo mạch hệ thống ............................................................................. 42 4.2.2 Lắp ráp và kiểm tra bo mạch hệ thống ............................................................ 42 4.2.3 Thi công bo mạch module relay điều khiển ngõ ra ......................................... 42 4.2.4 Lắp ráp và khiểm tra bo mạch module relay điều khiển ngõ ra ...................... 44 4.3 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH ........................................................... 45 4.3.1 Đóng gói bộ điều khiển ................................................................................... 45 4.3.2 Thi công mô hình............................................................................................. 45 4.4 LẬP TRÌNH HỆ THỐNG .................................................................................. 46 4.4.1 Lưu đồ giải thuật.............................................................................................. 46 4.4.2 Phần mềm lập trình cho vi điều khiển............................................................. 58 4.4.3 Phần mềm lập trình Android Studio................................................................ 63 4.4.4 Phần mềm lập trình web .................................................................................. 69 4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC............................... 80 4.5.1 Viết tài liệu hướng dẫn sử dụng ...................................................................... 82 4.5.2 Quy trình thao tác ............................................................................................ 83 CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ ................................... 85 5.1 KẾT QUẢ........................................................................................................... 85 5.2 NHẬN XÉT – ĐÁNH GIÁ .............................................................................. 112 CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.......................... 114 6.1 KẾT LUẬN ...................................................................................................... 114
  • 10.
    ix 6.2 HƯỚNG PHÁTTRIỂN ................................................................................... 115 TÀI LIỆU THAM KHẢO........................................................................... 116 PHỤ LỤC………………………….. ........................................................... 117
  • 11.
    x LIỆT KÊ HÌNHVẼ Hình Trang Hình 2.1 Các loại Board Arduino .................................................................................5 Hình 2.2 Arduino Mega 2560 .......................................................................................7 Hình 2.3 Module Sim 800A..........................................................................................7 Hình 2.4 Module cảm biến vân tay R305 .....................................................................8 Hình 2.11 Màn hình LCD 20x4 ....................................................................................11 Hình 2.12 Mạch chuyển giao tiêp LCD 20x4 ...............................................................12 Hình 2.13 Sơ đồ nối dây và hình ảnh thực tế của bàn phím ma trận 4x4 .....................13 Hình 2.14 Động cơ Servo SG90 9g Micro....................................................................13 Hình 2.18 Biểu đồ thời gian của giao thức I2 C.............................................................16 Hình 3.1 Sơ đồ khối hệ thống .......................................................................................18 Hình 3.2 Sơ đồ khối hệ thống thiết bị thực tế ...............................................................19 Hình 3.3 Mô hình hệ thống ...........................................................................................20 Hình 3.4 Khối xử lý trung tâm sử dụng board Arduino Mega 2560.............................22 Hình 3.5 Cảm biến vân tay R305..................................................................................22 Hình 3.6 Sơ đồ nguyên lý Cảm biến vân tay kết nối Arduino Mega............................23 Hình 3.10 Module Sim 800A........................................................................................26 Hình 3.11 Sơ đồ nguyên lý kết nối Module Sim 800A vào Arduino Mega .................27 Hình 3.14 Động cơ servo 9g .........................................................................................29 Hình 3.15 Sơ đồ nguyên lý kết nối Arduino Mega với động cơ Servo SG90 ..............30 Hình 3.16 LCD 20x4.....................................................................................................31 Hình 3.17 Mạch chuyển giao tiếp LCD sang I2C.........................................................31 Hình 3.18 Sơ đồ nguyên lý kết nối Arduino Mega với LCD........................................32 Hình 3.19 Sơ đồ nối dây và hình ảnh thực tế của bàn phím ma trận 4x4 .....................32 Hình 3.20 Sơ đồ nguyên lý kết nối Arduino Mega với ma trận phím ..........................33 Hình 3.24 Nguồn tổ ong 12V 5A..................................................................................36 Hình 3.25 Nguồn tổ ong 5V 4A....................................................................................36 Hình 3.26 Mạch giảm áp LM2596................................................................................37 Hình 3.27 Sơ đồ nguyên lý toàn mạch..........................................................................39 Hình 4.1 Sơ đồ đi dây đã phủ đồng bo mạch hệ thống .................................................40 Hình 4.2 Hình dạng 3D lớp top bo mạch hệ thống .......................................................41 Hình 4.5 Sơ đồ bố trí linh kiện mặt trước mô hình.......................................................45 Hình 4.6 Hình dạng mặt bên mô hình .........................................................................45
  • 12.
    xi Hình 4.7 Hìnhdạng mặt trên mô hình ..........................................................................45 Hình 4.10 Lưu đồ hệ thống đóng mở cửa .....................................................................48 Hình 4.11 Lưu đồ mở cửa bằng vân tay........................................................................49 Hình 4.12 Lưu đồ chuyển dữ liệu lên web....................................................................50 Hình 4.13 Lưu đồ chế độ mở cửa bằng ma trận phím ..................................................51 Hình 4.14 Lưu đồ mở lại hệ thống khi bị khóa.............................................................52 Hình 4.15 Lưu đồ quản trị admin..................................................................................53 Hình 4.16 Lưu đồ thêm vân tay ....................................................................................54 Hình 4.17 Lưu đồ xóa vân tay.......................................................................................55 Hình 4.20 Quy trình làm việc của arduino....................................................................58 Hình 4.21 Giao diện lập trình arduino ..........................................................................58 Hình 4.22 Giao diện menu arduino IDE......................................................................59 Hình 4.23 Giao diện file menu arduino IDE................................................................59 Hình 4.28 Board Arduino sử dụng................................................................................61 Hình 4.29 Hiển thị Board và Serial Port đã kết nối ......................................................62 Hình 4.30 Arduino Toolbar...........................................................................................62 Hình 4.42 Tạo file mới trên Sublime Text....................................................................69 Hình 4.43 Lưu file php..................................................................................................70 Hình 4.44 Phác thảo giao diện website quản lý thời gian.............................................72 Hình 4.45 Đăng nhập vào trang phpMyAdmin ..........................................................73 Hình 4.46 Khởi tạo CSDL .............................................................................................73 Hình 4.47 Tạo bảng dữ liệu bằng cách thủ công........................................................74 Hình 4.48 Bảng dữ liệu “giamsat” được tạo ra ..........................................................74 Hình 4.49 Các bảng trong cơ sở dữ liệu .....................................................................75 Hình 4.50 Giao diện phần mềm Filezilla quản lý các file nguồn...............................75 Hình 4.51 Các file và nguồn dữ liệu cho website .........................................................76 Hình 4.52 Lưu đồ tương tác dữ liệu giữa người dùng và MySQL. ..............................77 Hình 4.53 Lưu đồ chương trình điều khiển thiết bị Internet.........................................79 Hình 4.54 Quy trình thao tác hệ thống đóng mở cửa....................................................83 Hình 4.55 Quy trình thao tác hệ thống điều khiển thiết bị và hệ thống cảnh báo.........84 Hình 5.1 Menu lựa chọn................................................................................................86 Hình 5.2 Menu quản trị admin ......................................................................................86 Hình 5.3 Nhập mật khẩu quản trị..................................................................................86 Hình 5.4 Nhập lại mật khẩu quản trị.............................................................................86
  • 13.
    xii Hình 5.5 Chờquét vân tay để mở cửa...........................................................................87 Hình 5.6 Mở cửa bằng vân tay thành công ...................................................................87 Hình 5.7 Cập nhật vân tay lên website..........................................................................88 Hình 5.8 Vân tay sai......................................................................................................88 Hình 5.9 Thêm ID người dùng mới ............................................................................89 Hình 5.10 Quét vân tay người dùng mới lần 1..............................................................89 Hình 5.11 Quét vân tay người dùng mới lần 2..............................................................89 Hình 5.12 Nhập ID cần xóa vân tay..............................................................................89 Hình 5.13 Nhập mật khẩu mở cửa ................................................................................90 Hình 5.14 Mở cửa bằng mật khẩu thành công..............................................................90 Hình 5.15 Nhập mật khẩu sai........................................................................................90 Hình 5.17 Nhập mật khẩu cũ.........................................................................................91 Hình 5.18 Nhập mật khẩu mới......................................................................................91 Hình 5.20 Mở hệ thống thành công...............................................................................92 Hình 5.22 Nhiệt độ, độ ẩm, khí gas trên Internet..........................................................93 Hình 5.23 Kết quả điều khiển thiết bị trên Smartphone................................................93 Hình 5.24 Kết quả điều khiển khiển thiết bị trên Internet.............................................94 Hình 5.25 Kết quả trên hệ thống ...................................................................................94 Hình 5.26 Hẹn giờ tắt/mở thiết bị trên Internet.............................................................95 Hình 5.27 Cú pháp kiểm tra hệ thống và tin nhắn phản hồi từ hệ thống ......................95 Hình 5.28 Tin nhắn cảnh báo khí gas trên hệ thống vượt ngưỡng cho phép................96 Hình 5.29 Cửa sổ đăng nhập hệ thống ..........................................................................97 Hình 5.30 Trang chủ chế độ admin...............................................................................98 Hình 5.31 Lọc dữ liệu thời gian mở cửa .......................................................................98 Hình 5.32 Xuất file Excel thống kê thời gian mở cửa ..................................................99 Hình 5.33 Nội dung file Excel thống kê thời gian mở cửa ...........................................99 Hình 5.34 Tổng kết thời gian ........................................................................................100 Hình 5.35 Xuất file Excel tổng kết thời gian ................................................................100 Hình 5.36 Nội dung file Excel tổng kết thời gian.........................................................100 Hình 5.37 Danh sách quản lý người dùng.....................................................................102 Hình 5.38 Xuất file Excel danh sách quản lý người dùng ............................................102 Hình 5.39 Thêm người dùng.........................................................................................103 Hình 5.40 Phản hồi........................................................................................................103 Hình 5.41 Trang chủ supervisor....................................................................................103
  • 14.
    xiii Hình 5.42 Tổngkết thời gian supervisor ......................................................................105 Hình 5.43 Hồ sơ cá nhân supervisor .............................................................................106 Hình 5.44 Gửi phản hồi.................................................................................................106 Hình 5.45 Trang chủ user..............................................................................................107 Hình 5.46 Hồ sơ cá nhân supervisor .............................................................................108 Hình 5.47 Hình thực tế gắn linh kiện cho mặt trên.......................................................109 Hình 5.48 Hình ảnh thực tế gắn linh kiện cho mặt dưới...............................................109 Hình 5.50 Mặt ngoài mô hình .......................................................................................110 Hình 5.51 Mặt trong mô hình........................................................................................111 Hình 5.52 Mặt sau mô hình...........................................................................................111
  • 15.
    xv LIỆT KÊ BẢNG BảngTrang Bảng 2.1 Các chân của LCD.................................................................................12 Bảng 4.1 Danh sách các linh kiện mạch chính...................................................41 Bảng 4.2 Danh sách các linh kiện mạch relay....................................................44
  • 16.
    xvi TÓM TẮT Ngày nay,với sự phát triển vượt bậc của khoa học công nghệ, kéo theo các công nghệ nhận dạng sinh trắc học phát triển. Do tính bảo mật cũng như giá thành không quá đắt nên công nghệ nhận dạng vân tay được được sử dụng rộng rãi trong đời sống. Công nghệ nhận dạng vân tay được tích hợp trong nhiều thiết bị điện tử mang lại những ứng dụng cần thiết cho nhu cầu của con người. Những ứng dụng hiện hữu của công nghệ nhận dạng vân tay như quét vân tay để đóng mở cửa, quản lí số lượng cá nhân ra vào hay điểm danh chấm công trong một công ty, bệnh viện hay trường học,… Được sự gợi ý từ giáo viên hướng dẫn cũng như mong muốn tìm hiểu các công nghệ đang phát triển trên thế giới. Nên nhóm thực hiện đồ án này với mong muốn chế tạo ra một hệ thống giám sát và cảnh báo thời gian ra vào lớp học của sinh viên thông qua việc quét vân tay. Hệ thống quét vân tay sử dụng kit Arduino được giám sát và cảnh báo bằng máy tính qua Internet bao gồm: Hệ thống bao gồm cửa được đóng mở bằng hệ thống quét vân tay hoặc bằng ma trận phím. Quá trình quét vân tay sẽ được gửi lên Internet nhằm thống kê thời gian ra vào lớp học, số lần đi trễ, số ngày vắng, thông tin sinh viên, giảng viên… Hệ thống cho phép thêm vân tay hay xóa vân tay người dung, đổi mật khẩu,… Hệ thống sẽ gửi cảnh báo về mail của người dùng về thời gian ra vào cũng như số ngày trễ, vắng. Mô hình sử dụng kit Arduino Mega 2560 làm vi điều khiển trung tâm để điều khiển các module mở rộng như cảm biến vân tay R305, Sim 800, ma trận phím,… Cửa được điều khiển bằng động cơ servo qua việc quét vân tay hay nhập mật khẩu. Người dùng dễ dàng tương tác sử dụng thông qua cảm biến vân tay, ma trận phím. Giám sát và cảnh báo người dùng thông qua mạng Internet.
  • 17.
    CHƯƠNG 1. TỔNGQUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Chương 1. TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Trong thời đại ngày nay, sự phát triển không ngừng của khoa học kỹ thuật đã giúp cho con người thuận tiện hơn trong các công việc hằng ngày. Với sự bùng nổ về công nghệ thông tin, quá trình toàn cầu hóa diễn ra nhanh chóng, sự bảo mật riêng tư thông tin cá nhân cũng như để nhận biết một người nào đó trong hàng tỉ người trên trái đất đòi hỏi phải có một tiêu chuẩn, hệ thống đảm nhận các chức năng đó. Công nghệ sinh trắc ra đời và đáp ứng được các yêu cầu trên. 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. Nhận dạng vân tay đượ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. Với việc kế thừa và phát triển từ đề tài trước đó “Thiết kế và thi công hệ thống đóng mở cửa bằng vân tay sử dụng kit Arduino được giám sát bằng máy tính thông qua Internet”., nhóm sinh viên quyết định thực hiện mở rộng thêm với tên đề tài “GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET” nhằm mục đích kiểm soát tốt hơn trong việc quản lý sinh viên trong trường học cũng như thông báo, cảnh báo cho sinh viên biết được số lần vi phạm của mỗi sinh viên trong quá trình tham gia hoạt động học tập trên lớp. Dấu vân tay của mỗi cá nhân là độc nhất và không thay đổi trong suốt cuộc đời. Vân tay là một tham số sinh học bất biến theo tuổi tác đặc trưng cho mỗi cá thể. Mạng Internet đang ngày càng phát triển, nhờ có nó mà cuộc sống và công việc của con người ngày càng hiện đại hơn. Vì vậy, việc truyền dữ liệu lên mạng quản lý dữ liệu vân tay bằng Internet trở nên tiện lợi, nhanh chóng và chính xác. Mặt khác, việc phát triển không
  • 18.
    CHƯƠNG 1. TỔNGQUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ngừng của vi xử lý đã cho ra đời nhiều loại sản phẩm thông minh nhỏ gọn, tích hợp nhiều chứ năng cho người dùng dễ sử dụng. Không thể không kể đến kit Arduino- một sản phẩm được sử dụng trên toàn cầu và có cộng đồng người dùng rất lớn. Kit Arduino có thể kết hợp với nhiều module khác để tạo nên những ứng dụng thiết thực cho cuộc sống hiện đại ngày nay. Với những đặc tính trên, nhóm đã quyết định thực hiện mô hình bao gồm Arduino, module cảm biến vân tay, động cơ servo và ma trận phím để làm một hệ thống quét vân tay quản lí sinh viên và gửi dữ liệu lên Internet, cảnh báo số lần vi phạm của sinh viên thông qua việc mail thông báo cho sinh viên. 1.2 MỤC TIÊU Tìm hiểu và nghiên cứu về kit Arduino, module cảm biến vân tay R305, thiết bị điện và cách kết nối giữa các module để hoàn thành mô hình hoàn thiện. Xây dựng hệ thống quét dấu vân tay để điều khiển đóng mở cửa qua cảm biến vân tay và dữ liệu vân tay sẽ được gửi lên Internet thông qua module Sim 800A. Dữ liệu vân tay, thống kê thời gian ra vào, số lần ra vào, số lần trễ so với quy định của người dùng sẽ được quản lý thông qua Internet. Cảnh báo sinh viên ra số lần ra vào, số lần trễ, vắng bằng cách gửi bảng thống kê về mail của người dùng. 1.3 NỘI DUNG THỰC HIỆN  NỘI DUNG 1: Tìm hiểu và nghiên cứu về cấu tạo phần cứng, nguyên lý hoạt động, tính năng của các module Arduino, R305, động cơ servo, ma trận phím.  NỘI DUNG 2: Tìm hiểu và nghiên cứu về lập trình Web Server, tìm hiểu về ngôn ngữ HTML, CSS, PHP, cơ sở dữ liệu MySQL, gửi thông tin đến mail sinh viên.  NỘI DUNG 3: Các giải pháp thiết kế hệ thống, thi công mô hình.  NỘI DUNG 4: Thiết kế hệ thống điều khiển, lưu đồ giải thuật và chương trình điều khiển mô hình hệ thống.  NỘI DUNG 5: Thiết kế hoàn chỉnh mô hình thực tế.  NỘI DUNG 6: Tiến hành chạy thử nghiệm mô hình hệ thống.
  • 19.
    CHƯƠNG 1. TỔNGQUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH  NỘI DUNG 7: Cân chỉnh mô hình hệ thống.  NỘI DUNG 8: Viết sách luận văn.  NỘI DUNG 9: Bảo vệ đề tài tốt nghiệp. 1.4 GIỚI HẠN Thiết kế mô hình cửa có kích thước dài, rộng, cao là 30 x 30 x 30 cm bằng mica và giấy foam. Cảm biến vân tay R305 có thể quét và lưu trữ hơn 120 mẫu vân tay khác nhau. Hệ thống sử dụng được khi cấp điện, không có nguồn dự phòng. Hai nguồn tổ ông cấp cho toàn hệ thống có thông số: 12V 5A và 5V 4A. 1.5 BỐ CỤC  Chương 1: Tổng Quan 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. Như: 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.
  • 20.
    CHƯƠNG 1. TỔNGQUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH  Chương 5: Kết Quả_Nhận Xét_Đánh Giá Trình bày về những kết quả đã được mục tiêu đề ra sau quá trình nghiên cứu thi công. Từ những kết quả đạt được để đánh giá quá trình hoàn thành được bao nhiêu phần trăm.  Chương 6: Kết Luận Và Hướng Phát Triển Trình bày về những kết quả mà đồ án đạt được, những hạn chế, từ đó rút ra kết luận và hướng phát triển để giải quyết các vấn đề tồn đọng để đồ án hoàn thiện hơn.
  • 21.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Chương 2. CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ ARDUINO Hình 2.1. Các loại Board Arduino 2.2.1 Giới thiệu Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ hoặc các thiết bị khác. Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình cũng có thể sử dụng một cách dễ dàng. Arduino có mức giá thấp, phù hợp với nhu cầu người dùng, có tính chất nguồn mở và cộng đồng người dùng đông đảo. Với lợi thế đến từ giá thành cũng như lợi thế về cộng đồng người dùng, không quá ngạc nhiên khi được biết số người sử dụng Arduino trải rộng từ học sinh phổ thông đến sinh viên đại học.
  • 22.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Board mạch Arduino được sử dụng để thực hiện nhiều ứng dụng như: cánh tay robot, điều khiển và giám sát nhiệt độ độ ẩm phòng thí nghiệm, điều khiển động cơ đóng mở cửa, ... 2.2.2 Phần cứng Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8-bit, hoặc ARM Atmel 32-bit. Board Arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sử dụng cho những mạch ngoài. Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau giúp dễ dàng lập trình và có thể mở rộng với các mạch khác, các module thêm vào có thể dễ dàng chuyển đổi, được gọi là shield. Vài shield kết nối với board Arduino trực tiếp thông qua các chân khác nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I2C, nhiều shield có thể được xếp chồng và sử dụng dưới dạng song song. Arduino chính thức thường sử dụng các dòng chip MegaAVR, đặc biệt là ATMega8, ATMega168, ATMega328, ATMega1280, và ATMega2560. Theo nguyên tắc, khi sử dụng phần mềm Arduino, tất cả các board được lập trình thông qua một kết nối RS-232, nhưng cách thức thực hiện lại tùy thuộc vào đời phần cứng. Các board Serial Arduino có chứa một mạch chuyển đổi giữa RS-232 sang TTL. Các board Arduino hiện tại được lập trình thông qua cổng USB, thực hiện thông qua chip chuyển đổi USB-to-serial như là FTDI FT232. 2.2 NHẬN DẠNG VÂN TAY 2.2.1 Giới thiệu sơ lược về dấu vân tay và nhận dạng vân tay a. Khái niệm về dấu vân tay Vân tay [1] là do các gai da đội lớp biểu bì lên mà thành. Đó là nơi tập kết miệng các tuyến mồ hôi, tuyến bã nhờn… Nó đã định hình khi con người còn là cái thai 4 tháng trong bụng mẹ. Khi đứa bé ra đời, lớn lên, vân tay được phóng đại nhưng vẫn giữ nguyên dạng cho đến khi về già. Nếu tay có bị bỏng, bị thương, bị bệnh thì khi lành, vân tay lại tái lập y hệt như cũ. Chỉ khi có tổn thương sâu huỷ hoại hoàn toàn, sẹo chằng chịt mới xoá mất vân tay. Vân tay không ai giống ai, đặc sắc nhất là vân ngón cái và ngón trỏ.
  • 23.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH b. Giới thiệu về nhận dạng vân tay Từ xa xưa, con người đã nhận ra mỗi cá nhân đều có một vân tay riêng nhưng chưa có một cơ sở khoa học nào để nghiên cứu và nhận dạng. Nhưng đến thế kỷ 16, các kỹ thuật vân tay khoa học hiện đại đã xuất hiện và từ đó các lí thuyết và chương trình mô tả, nhận dạng vân tay mới phát triển mau chóng. Năm 1888, Francis Galton giới thiệu các đặc trưng chi tiết phục vụ cho đối sánh vân tay. Nhưng đến đầu thế kỉ 20, nhận dạng vân tay chính thức được chấp nhận như một phương pháp nhận dạng cá nhân có giá trị và trở thành tiêu chuẩn trong pháp luật. Ví dụ, năm 1924 FBI đã thiết lập một cơ sở dữ liệu có 810.000 thẻ vân tay. 2.2.2 Việc ứng dụng công nghệ nhận dạng vân tay hiện nay Trên thế giới hiện nay đã xuất hiện nhiều sản phẩm công nghệ cao sử dụng phương pháp nhận dạng vân tay như khóa vân tay, máy chấm công vân tay, máy tính xách tay, điện thoại thông minh... Tuy nhiên đây vẫn là vấn đề còn chưa được nghiên cứu nhiều ở Việt Nam. Ở nước ta, phương pháp này mới chỉ phổ biến ở việc quản lý nhân sự thông qua chứng minh thư nhân dân và phục vụ điều tra phá án. Các sản phẩm công nghệ cao nói trên chúng ta vẫn phải nhập khẩu với giá thành khá cao, do đó chúng vẫn chưa được phổ biến rộng rãi. 2.2.3 Nguyên lý hoạt động cơ bản của nhận dạng vân tay Nguyên lý hoạt động của công nghệ nhận dạng vân tay là khi đặt ngón tay lên trên một thiết bị nhận dạng dấu vân tay, ngay lập tức thiết bị này sẽ quét hình ảnh ngón tay đó và đối chiếu các đặc điểm của ngón tay đó với dữ liệu đã được lưu trữ trong hệ thống. Quá trình xử lý dữ liệu sẽ được thiết bị chuyển sang các dữ liệu số và ra thông báo rằng dấu vân tay đó là hợp lệ hay không hợp lệ để cho phép hệ thống thực hiện các chức năng tiếp theo. Hệ thống sinh trắc học sẽ ghi nhận mẫu vân tay của người dùng và lưu trữ tất cả những dữ liệu đặc biệt này thành một mẫu nhận diện được số hoá toàn phần. Có hai phương pháp để lấy dấu vân tay. Cách thứ nhất (cổ điển) là sao chép lại hình dạng vân tay (như lăn tay bằng mực, hay chạm vào một vật gì đó) thông qua máy quét ghi nhận và xử lý. Cách thứ hai, hiện tại đa số các nước đều sử dụng phần mềm hoặc thiết bị quét vân tay để nhận dạng vân tay.
  • 24.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2.2.4 Các bước xử lý trong quá trình nhận dạng vân tay Quá trình xử lý nhận dạng vân tay được chia làm hai quá trình lớn: quá trình xử lý ảnh và quá trình so sánh vân tay. a. Quá trình xử lý ảnh Image Enhancement Image Analysis Binarization Thinning Minutiae Extraction Hình 2.2. Sơ đồ quá trình xử lý ảnh Mục đích của quá trình này được biểu diễn qua hình 2.2 là tăng cường ảnh vân tay, sau đó, rút trích các đặc trưng vân tay từ ảnh đã được tăng cường. Quá trình này được thực hiện qua các bước nhỏ sau: - Tăng cường ảnh (Image Enhancement): Ảnh được lấy từ thiết bị đầu đọc vân tay sẽ được làm rõ. Do các thiết bị đầu đọc vân tay không lấy ảnh tốt hay do vân tay của người dùng trong lúc lấy bị hao mòn, dơ bẩn, hay do lực ấn ngón tay trong lúc lấy vân tay. Vì vậy, bước này là một trong các bước quan trọng nhất của quá trình này để làm rõ ảnh vân tay để rút trích các đặc trưng đúng và đầy đủ. - Phân tích ảnh (Image Analysis): Thông qua phân tích ảnh, ảnh sẽ được loại bỏ những thông tin làm nhiễu hay những thông tin không cần thiết. - Nhị phân hóa (Binarization): Nhị phân hóa ảnh vân tay thành ảnh trắng đen. Bước này phục vụ cho bước Làm mỏng vân tay. Bước này có thể có hoặc không vì phục thuộc vào thuật toán rút trích đặc trưng. - Làm mỏng (Thinning): Làm mỏng các đường vân lồi của ảnh vân tay. Bước này nhằm mục đích cho việc rút trích đặc trưng của vân tay. Bước này cũng có thể có hoặc không vì phục thuộc vào thuật toán rút trích đặc trưng. - Rút trích đặc trưng (Minutiae Extraction): Rút trích những đặc trưng cần thiết cho quá trình so sánh vân tay. b. Quá trình so sánh vân tay
  • 25.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Minutiae Analysis Local Similarily Calculate Matching Score Global Similarily Hình 2.3. Sơ đồ quá trình so sánh vân tay Mục đích của quá trình này được biểu diễn trên hình 2.3 là so sánh vân tay dựa trên các đặc trưng đã được rút trích. Quá trình này được thực hiện qua các bước nhỏ sau: - Phân tích đặc trưng (Minutiae Analysis): Phân tích các đặc điểm cần thiết của các đặc trưng để phục vụ cho việc so sánh vân tay. - Xét độ tương tự cục bộ (Local Similarily): Thuật toán so sánh vân tay sẽ dựa vào các thông tin cục bộ của các đặc trưng (gồm: tọa độ (x, y), hướng của đặc trưng, góc tạo bởi tiếp tuyến của đường vân tại đặc trưng và trục ngang) của vân tay để tìm ra các cặp đặc trưng giống nhau giữa hai vân tay. - Xét độ tương tự toàn cục (Global Similarily): Từ nhưng khu vực tương tự nhau trên cục bộ, thuật toán sẽ tiếp tục mở rộng so sánh trên toàn cục. - Tính điểm so sánh (Calculate Matching Score): Tính toán tỷ lệ độ giống nhau giữa các cặp đặc trưng. Điểm so sánh này sẽ cho biết độ giống nhau của hai ảnh vân tay là bao nhiêu. 2.3 GIỚI THIỆU PHẦN CỨNG  Thiết bị đầu vào: bàn phím ma trận 4x4, module cảm biến vân tay R305, Module Ethernet Shield, Module Bluetooth HC-05.  Thiết bị đầu ra: màng hình LCD 20x4, động cơ Servo SG90, relay  Thiết bị điều khiển trung tâm: Board Arduino Mega 2560.  Các chuẩn truyền dữ liệu UART, SPI, chuẩn giao tiếp 1 Wire. 2.3.1 Arduino Mega 2560 Arduino Mega 2560 sử dụng chip ATmega2560. Nó có 54 chân digital I/O (trong đó có 15 chân điều chế độ rộng xung PWM), 16 chân đầu vào tương tự (Analog Inputs),
  • 26.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 4 UARTs (cổng nối tiếp phần cứng), một thạch anh dao động 16 MHz, kết nối USB, một jack cắm điện, một đầu ICSP và một nút reset. Nó chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển, chỉ đơn giản là kết nối nó với một máy tính bằng cáp USB hoặc với một bộ chuyển đổi điện AC-DC hoặc có thể sử dụng pin. Board có khả năng tự động reset nhờ phần mềm thay vì đòi hỏi phải ấn nút reset trước khi tải lên. Phần mềm Arduino sử dụng khả năng này để cho phép nạp code lên chỉ cần nhấn vào nút Upload trong Arduino IDE. Điều này có nghĩa rằng bộ nạp khởi động có thể có một thời gian chờ ngắn hơn. Arduino Mega 2560 có thể bảo vệ cổng USB của máy tính khi xảy ra hiện tượng quá dòng. Mặc dù hầu hết các máy tính cung cấp bảo vệ nội bộ, các cầu chì cung cấp thêm một lớp bảo vệ. Nếu dòng cao hơn 500mA được áp dụng cho các cổng USB, cầu chì sẽ tự động phá vỡ các kết nối cho đến khi ngắt hoặc hiện tượng quá tải được khắc phục. a. Thông số kỹ thuật Arduino Mega 2560 - Chip vi điều khiển: ATmega2560. - Điện áp cấp nguồn: 5V. - Điện áp đầu vào (kiến nghị): 7-12V. - Điện áp đầu vào (giới hạn): 6-20V. - Số chân Digital I/O: 54 (có 15 chân điều chế độ rộng xung PWM). - Số chân Analog (Input): 16. - Dòng DC trên chân I/O: 40 mA. - Dòng DC cho chân 3.3V: 50 mA. - Flash Memory: 256KB trong đó có 8KB được sử dụng bởi bộ nạp khởi động (bootloader). - SRAM: 8 KB. - EEPROM: 4 KB. - Xung nhịp: 16 MH. - Chiều dài: 101,52 mm. - Chiều rộng: 53,3 mm. - Cân nặng: 37 g. b. Sơ đồ kết nối chân của Arduino Mega 2560
  • 27.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Trong hình 2.4 bên dưới là hình ảnh sơ đồ các chân kết nối trên Arduino Mega 2560 cùng với hình 2.5 là vị trí các chân của Arduino Mega 2560. Hình 2.4. Sơ đồ các chân kết nối trên Arduino Mega 2560
  • 28.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Hình 2.5. Vị trí chân Arduino Mega  USB (1): Arduino sử dụng cáp USB để giao tiếp với máy tính. Thông qua cáp USB chúng ta có thể Upload chương trình cho Arduino hoạt động, ngoài ra USB còn là nguồn cho Arduino.  Nguồn (2 và 3): Khi không sử dụng USB làm nguồn thì chúng ta có thể sử dụng nguồn ngoài thông qua jack cắm 2.1mm (cực dương ở giữa) hoặc có thể sử dụng 2 chân Vin và GND để cấp nguồn cho Arduino. Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5 – 20 volt. Chúng ta có thể cấp một áp lớn hơn tuy nhiên chân 5V sẽ có mức điện áp lớn hơn 5 volt. Và nếu sử dụng nguồn lớn hơn 12 Volt thì sẽ có hiện tượng nóng và làm hỏng bo mạch. Khuyến cáo nên dùng nguồn ổn định từ 6 đến dưới 12 volt. Chân 5V và chân 3.3V (Output voltage): các chân này dùng để lấy nguồn ra từ nguồn mà chúng ta đã cung cấp cho Arduino để cấp cho các thiết bị giao tiếp khác. Lưu ý: không được cấp nguồn vào các chân này vì sẽ làm hỏng Arduino.  Ngõ vào tương tự (4): Arduino Mega 2560 có 16 ngõ vào tương tự (các chân từ A0 đến A15), mỗi ngõ vào này đều có độ phân giải 10 bit (1024 giá trị). Mặc định đo từ 0 đến 5V, có thể thiết ập giá trị bằng cách điều chỉnh chân AREF và sử dụng hàm Analog Referency() để chuyển đổi.  Ngõ vào số (5 và 6): Mỗi một chân trong 54 chân số của board đều có thể sử dụng như một ngõ vào hoặc ngõ ra. Mỗi chân có thể cung cấp hoặc nhận được tối đa 40 mA và có một điện trở kéo lên bên trong 20-50 kOhms. Ngoài ra, một số chân có chức năng đặc biệt: - Serial: để truyền và nhận dữ liệu nối tiếp. Gồm các chân: Serial 0: 0 (RX) và 1 (TX); Serial 1: 19 (RX) và 18 (TX); Serial 2: 17 (RX) và 16 (TX); Serial 3: 15 (RX) và 14 (TX). - External Interrupt: Các chân này có thể được cấu hình để kích hoạt sự kiện ngắt mức thấp, ngắt cạnh lên hoặc xuống. Gồm các chân: 2 (interrupt 0), 3 (interrupt 1), 18 (interrupt 5), 19 (interrupt 4), 20 (interrupt 3), 21 (interrupt 2).
  • 29.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - PWM: Cung cấp ngõ ra PWM 8 bit. Gồm các chân từ chân 2 đến 13 và 44 đến 46. - SPI: Các chân này hỗ trợ giao tiếp SPI bằng cách sử dụng thư viện SPI. Có các chân: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). - TWI: Hỗ trợ giao tiếp TWI bằng việc sử dụng thư viện WIRE. Có các chân: 20 (SDA) và 21 (SCL).  Nút Retset (7): Mang dòng mức thấp để thiết lập lại vi điều khiển. 2.3.2 Module cảm biến vân tay R305 (Finger print R305) Hiện tại trên thị trường có rất nhiều loại cảm biến để nhận dạng và phát hiện người dùng như: cảm biến nhận dạng khuôn mặt, cảm biến hồng ngoại, cảm biến giọng nói, RFID,… nhưng với tính bảo mật và tiện lợi của cảm biến vân tay rất phù hợp cho việc quản lý khóa và mở cửa. Đây là module nhận dạng vân tay giao tiếp trực tiếp qua giao thức UART có thể kết nối trực tiếp đến vi điều khiển hoặc qua PC adapter Max232/USB-Serial. Người sử dụng có thể lưu trữ dữ liệu vân tay trực tiếp vào module. Module có thể dễ dàng giao tiếp với các loại vi điều khiển chuẩn 3.3V hoặc 5V. Có một con Led xanh được bật sáng nằm sẵn trong ống kính trong suốt quá trình chụp vân tay. Cảm biến với độ chính xác cao và có thể được nhúng vào các thiết bị như: điều khiển truy cập, két sắt, khóa cửa nhà, khóa cửa xe,…
  • 30.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Trong hình 2.6 là hình ảnh thực tế của module cảm biến vân tay R305. Hình 2.6. Module cảm biến vân tay R305 a. Nguyên lý hoạt động Nguyên lý hoạt động của module cảm biến vân tay cơ bản có 2 phần: - Lấy dữ liệu hình ảnh của vân tay: Khi lấy dữ liệu, người dùng cần phải thực hiện quét dấu vân tay hai lần thông qua cảm biến quang học. Hệ thống sẽ tiến hành thuật toán xử lý hình ảnh của 2 lần quét vân tay, tạo ra một khuôn mẫu của các vân tay dựa trên kết quả xử lý và lưu trữ lại các bản mẫu. - So sánh dấu vân tay (có thể theo chế độ 1:1 hoặc theo 1:N): Khi người dùng thực hiện quét dấu vân tay, module sẽ chụp lại dữ liệu hình ảnh vân tay và so sánh với các mẫu vân tay đã được lưu trữ sẵn trong thư viện. Đối với 1:1, hệ thống sẽ so sánh trực tiếp vân tay với mẫu được chỉ định cụ thể trong module; đối với 1:N, hoặc tìm kiếm, hệ thống sẽ tìm kiếm trong thư viện để tìm vân tay phù hợp. Sau đó trả về kết quả đúng nếu trùng khớp hoặc kết quả sai nếu không trùng khớp dữ liệu đã được lưu trữ. b. Các đặc tính Module tích hợp nhiều loại chip xử lý trong cùng 1 module: cảm biến dấu vân tay quang học, bộ vi xử lý DSP tốc độ cao, bộ nhớ PLASH… Dễ dàng sử dụng với các tính năng bảo mật cao, thông minh. Mức độ bảo mật điều chỉnh được: thích hợp cho các ứng dụng khác nhau, mức độ bảo mật có thể được thiết lập điều chỉnh bởi người sử dụng. Người dùng có thể tiến hành phát triển kết hợp với các module khác để làm ra một loạt các sản phẩm cuối cùng, chẳng hạn như: kiểm soát quyền truy cập, điểm danh vào lớp học hoặc chấm công, két an toàn, khóa cửa nhà hay cửa xe…
  • 31.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Tiêu thụ điện năng thấp, giá thành không cao, kích thước nhỏ gọn, hiệu năng tuyệt vời. Khả năng chống tĩnh điện mạnh mẽ, chỉ số chống tĩnh điện đạt 15KV trở lên. Khả năng xử lý hình ảnh tốt, có thể chụp được hình ảnh có độ phân giải lên đến 500 dpi. c. Thông số kỹ thuật Điện áp cung cấp: DC 3.6 ~ 6.0V. Dòng cung cấp:  Dòng làm việc bình thường: 40 mA.  Dòng đỉnh: 150 mA. Thời gian thu thập hình ảnh: < 0.5 giây. Kích thước cửa sổ quét: 18x22 mm. Chế độ quét:  So sánh với một mẫu duy nhất (1:1).  Tìm kiếm và so sánh với mẫu lưu trong bộ nhớ (1: N). Bộ nhớ lưu trữ mẫu: 256 bytes. Mức độ an toàn: năm (từ thấp đến cao: 1, 2, 3, 4, 5 (cao nhất)). Tỷ lệ lỗi chấp nhận nhầm (FAR): < 0,001. Tỷ lệ từ chối nhầm (FRR): < 0.1%. Thời gian tìm kiếm: < 0.8 giây (1: 880, trung bình). Giao tiếp với máy tính: UART (TTL mức logic) hoặc USB 1:1 Tốc độ truyền thông tin liên lạc (UART): (9600 x N) bps đó N = 1 ~ 12 (giá trị mặc định N = 6, tức là 57600bps) Môi trường làm việc:  Nhiệt độ: -10 ℃ ~ + 40 ℃  Độ ẩm tương đối: 40% - 85% Môi trường bảo quản:  Nhiệt độ: -40 ℃ ~ + 85 ℃  Độ ẩm tương đối: <85% d. Giao tiếp phần cứng
  • 32.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Giao tiếp phần cứng của module R305 được thể hiện qua bảng 2.3: Bảng 2.1. Các chân kết nối của module R305 Số chân Tên chân Chức năng 1 VCC Nguồn vào 2 GND Tín hiệu nối đất 3 TXD Dữ liệu đầu ra. Kiểu TTL logic 4 RXD Dữ liệu đầu vào. Kiểu TTL logic 5 VCC +5V DC 6 D- Dữ liệu âm 7 D+ Dữ liệu dương 8 GND Ground e. Giao thức truyền thông nối tiếp không đồng bộ UART Được truyền theo chế độ nối tiếp bán song công bất đồng bộ. Tốc độ baud truyền mặc định là 57600 bps và có thể cài đặt tốc độ này trong dải từ 9600 – 115200. Tại thời điểm bật nguồn, nó sẽ tốn 300ms cho việc thiết lập. Khung truyền với định dạng 10bit: với 1 bit bắt đầu (start bit) ở mức logic ‘0’, 8 bit dữ liệu với bit đầu LBS và 1 bit kết thúc (stop bit). Không có bit kiểm tra (check bit). Dữ liệu được truyền đi trên chân TX gồm 1 start bit (mức ‘0’), data và 1 stop bit (mức ‘1’). Tốc độ truyền: đơn vị bit per second (bps) còn gọi là Baud (số lần thay đổi tín hiệu trong 1 giây – thường sử dụng cho modem). UART là phương thức truyền nhận bất đồng bộ, nghĩa là bên nhận và bên phát không cần phải có chung tốc độ xung clock (ví dụ: xung clock của vi điều khiển khác xung clock của máy tính). Khi đó bên truyền muốn truyền dữ liệu sẽ gửi start bit (bit ‘0’) để báo cho bên thu biết để bắt đầu nhận dữ liệu và khi truyền xong dữ liệu thì stop bit (bit ‘1’) sẽ được gửi để báo cho bên thu biết kết thúc quá trình truyền. Khi có start bit thì cả hai bên sẽ dùng chung 1 xung clock (có thể sai khác một ít) với độ rộng 1 tín hiệu (0 hoặc 1) được quy định bởi baud rate, ví dụ baud rate = 9600 bps nghĩa là độ rộng của tín hiệu 0 (hoặc 1) là 1/9600 = 104 ms và khi phát thì bên phát
  • 33.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH sẽ dùng baud rate chính xác (ví dụ 9600 bps) còn bên thu có thể dùng baud rate sai lệch 1 ít (9800bps chẳng hạn). Truyền bất đồng bộ sẽ truyền theo từng frame và mỗi frame có cấu trúc như trong hình 2.10 sau đây: Hình 2.7 Giao thức truyền thông của R305 Ngoài ra trong frame truyền có thể có thêm bit odd parity (bit lẻ) hoặc even parity (bit chẵn) để kiểm tra lỗi trong quá trình truyền. Bit parity này có đặc điểm nếu sử dụng odd parity thì số các bit ‘1’ + odd parity bit sẽ ra một số lẻ còn nếu sử dụng even parity thì số các bit ‘1’ + even parity bit sẽ ra một số chẵn. Module sẽ kết nối với MCU theo kết nối sau: TXD (chân 3 của module) kết nối với RXD (chân nhận của MCU), RXD (chân 4 của module) kết nối với TXD (chân truyền của MCU). f. Tài nguyên hệ thống  Bộ đệm: Có một bộ đệm hình ảnh và hai 512 byte tệp kí tự đệm bên trong không gian bộ nhớ RAM của module. Người dùng có thể đọc và viết bất kỳ của bộ đệm bằng cách hướng dẫn. Lưu ý: Nội dung của bộ đệm trên sẽ bị mất khi tắt nguồn. - Bộ đệm hình ảnh: Bộ đệm hình ảnh phục vụ cho việc lưu trữ hình ảnh và các định dạng hình ảnh là 256 * 288 pixel. Khi truyền qua UART, để đẩy nhanh tốc độ, chỉ có 4 bit cao của các điểm ảnh được truyền (có nghĩa là 16 độ xám). Và hai điểm ảnh lân cận của cùng hàng sẽ hình thành một byte trước khi truyền. Khi tải lên máy tính, hình ảnh 16-xám-độ sẽ được mở rộng sang định dạng 256 mức xám. Đó là định dạng BMP 8-bit. Khi chuyển qua USB, hình ảnh 8 bit pixel, đó là 256 mức xám. - Bộ đệm tệp kí tự:
  • 34.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Bộ đệm kí tự CharBuffer1, CharBuffer2, có thể được sử dụng để lưu trữ cả tệp kí tự và tệp mẫu.  Thư viện vân tay: Hệ thống đặt ra một không gian nhất định trong Flash cho mẫu dấu vân tay lưu trữ, đó là thư viện vân tay. Nội dung của thư viện vẫn còn khi tắt nguồn. Dung lượng của thư viện thay đổi dung lượng của Flash, hệ thống sẽ nhận biết sau khi tự động. Lưu trữ dấu vân tay mẫu trong Flash là theo tuần tự.  Cấu hình các thông số của hệ thống: - Kiểm soát tốc độ baud(Thông số thứ: 6): Các thông số điều khiển UART tốc độ truyền thông của Module. Giá trị của nó là một số nguyên N, N = [1, 12]. Tỷ lệ tương ứng là 9600 baud * N bps. - Mức độ bảo mật(Thông số thứ: 5): Các thông số kiểm soát các giá trị ngưỡng phù hợp với tìm kiếm của dấu vân tay và đối chiếu. Mức độ bảo mật được chia thành 5 lớp và giá trị tương ứng là 1, 2, 3, 4, 5. Ở cấp độ 1, FAR là cao nhất và FRR là thấp nhất. Tuy nhiên ở cấp độ 5, FAR là thấp nhất và FRR là cao nhất. - Độ dài gói dữ liệu (Thông số thứ: 7): Các thông số quyết định độ dài tối đa của các gói dữ liệu chuyển giao khi giao tiếp với máy tính trên. Giá trị của nó là 0, 1, 2, 3, tương ứng với 32 bytes, 64 byte, 128 byte, 256 byte tương ứng.  Thanh ghi trạng thái hệ thống: Ghi trạng thái hệ thống cho biết tình trạng hoạt động hiện tại của Module. Chiều dài của nó là 1 word, và có thể được đọc qua hướng dẫn ReadSysPara. Định nghĩa của thanh ghi được biểu hiện qua hình 2.8 như sau: Hình 2.8. Định nghĩa của thanh ghi Chú ý: - Busy: 1 bit. 1: Hệ thống là lệnh thực thi; 0: hệ thống thì rãnh;
  • 35.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - Pass: 1 bit. 1: tìm thấy ngón tay phù hợp; 0: sai ngón tay; - PWD: 1 bit. 1: xác minh mật khẩu bắt tay của thiết bị. - ImgBufStat: 1 bit. 1: bộ đệm hình ảnh chứa hình ảnh hợp lệ.  Mật khẩu module: Khi mở nguồn lại, hệ thống kiểm tra đầu tiên cho dù mật khẩu bắt tay đã được sửa đổi. Nếu không, hệ thống máy tính trên xét thấy không có yêu cầu xác minh mật khẩu và sẽ bước vào chế độ hoạt động bình thường. Đó là, khi mật khẩu vẫn là mặc định, quá trình xác minh có thể được bỏ qua. Chiều dài mật khẩu là 4 byte, và giá trị nhà máy mặc định của nó là 0xFF, 0xFF, 0xFF, 0xFF. Nên thay đổi mật khẩu, tham khảo hướng dẫn SetPwd, sau đó Module (hoặc thiết bị) bắt tay mật khẩu phải được xác nhận trước khi hệ thống đi vào chế độ hoạt động bình thường. Hoặc nếu không, hệ thống sẽ từ chối thực hiện và lệnh.  Địa chỉ module: Mỗi module có một địa chỉ xác định. Khi giao tiếp với máy tính trên, mỗi lệnh / dữ liệu được chuyển giao theo hình thức gói dữ liệu, trong đó có các mục địa chỉ. Module hệ thống chỉ phản ứng với các gói dữ liệu có mục địa chỉ giá trị là giống với địa chỉ xác định của nó. Chiều dài địa chỉ là 4 byte, và giá trị mặc định của nó là 0xFFFFFFFF. Người dùng có thể thay đổi địa chỉ qua SetAdder. Địa chỉ đổi mới vẫn còn lưu lại khi tắt nguồn.  Bộ tạo số ngẫu nhiên: Module tích hợp một phần cứng 32-bit Bộ tạo số ngẫu nhiên (RNG). Qua GetRandomCode, hệ thống sẽ tạo ra một số ngẫu nhiên và tải nó lên. g. Giao thức truyền gói dữ liệu: Khi module R308 thực hiện việc giao tiếp, truyền và nhận các câu lệnh/ dữ liệu/ kết quả thì tất cả được gói trong một định dạng gói dữ liệu được biểu diễn qua hình 2.9: Hình 2.9. Định dạng gói dữ liệu Trong đó, các thông số chi tiết hơn được biểu diễn qua bảng 2.2 sau:
  • 36.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Bảng 2.2. Định dạng gói dữ liệu Tên Ký hiệu Độ dài Mô tả Header START 2 bytes Có 2 byte được truyền đầu tiên trong gói dữ liệu. Được mặc định giá trị 0xEF01. Adder ADDER 4 bytes Có 4 byte địa chỉ của module. Giá trị mặc định ban đầu là 0XFFFFFFFF, nhưng nó có thể được sửa đổi bởi lệnh. Byte cao sẽ được chuyển vào đầu tiên và nếu giá trị adder sai, module sẽ từ chối để chuyển. Package indentifier PID 1 bytes Định dạng loại gói dữ liệu 0x01: Gói lệnh. 0x02: Gói dữ liệu. 0x07: Gói xác nhận. 0x08: Gói kết thúc dữ liệu. Package length LENGTH 2 bytes Chiều dài gói dữ liệu tính từ Package content đến Checksum. Đơn vị chiều dài là byte (tối đa 256 bytes). Package contents DATA - Nội dung dữ liệu. Có thể là lệnh, dữ liệu, kết quả được xác nhận…(như giá trị ký tự dấu vân tay). Checksum SUM 2 bytes Là tổng số học của Package identifier, Package length, Package content. Bit tràn được bỏ qua, bit cao được truyền đầu tiên. h. Kiểm tra và xác nhận gói dữ liệu: Lưu ý: lệnh chỉ được gửi từ VXL đến cảm biến, cảm biến chỉ trả về các gói xác nhận. Định nghĩa bytes xác nhận: - 0x00h: thực thi hoàn tất. - 0x01h: lỗi nhận dữ liệu.
  • 37.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - 0x02h: không phải vân tay. - 0x03h: thất bại đăng ký vân tay. - 0x06h: không tạo được đặt điểm nhân dạng. - 0x07h: dấu vân quá nhỏ để lấy mẫu. - 0x08h: dấu vân không trùng. - 0x09h: thất bại tìm kiếm dấu vân tay. - 0x0Ah: lỗi kết hợp đặc điểm dấu vân tay. - 0x0Bh: đại chỉ ID vượt khung. - 0xCh: lỗi đọc từ dữ liệu vân tay. Dữ liệu xấu. - 0xDh: lỗi nạp dữ liệu. - 0xEh: không thể nhận dữ liệu - 0xFh: lỗi gửi hình ảnh. - 0x10h: lỗi xoá dữ liệu. - 0x11h: lỗi xoá một ID. - 0x15h: lỗi tạo ảnh. - 0x18h: lỗi ghi flash. - 0x19h: không xác định được lỗi. - 0x1Ah: số đăng ký không hợp lệ. - 0x1Bh: gói dữ liệu sai. - 0x1Ch: sai số trang. - 0x1Dh: lỗi cổng giao tiếp. - others: dự phòng. 2.3.3 Bàn phím ma trận 4x4 (Keypad 4x4) Sơ đồ nối dây và hình ảnh thực tế của bàn phím ma trận 4x4 được giới thiệu qua hình 2.17 bên dưới.
  • 38.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Hình 2.10. Sơ đồ nối dây và hình ảnh thực tế của bàn phím ma trận 4x4 a. Khái niệm Keypad là một "thiết bị nhập" chứa các nút nhấn cho phép người dùng nhập các chữ số, chữ cái hoặc ký hiệu vào bộ điều khiển. Keypad không chứa tất cả bảng mã ASCII như keyboard và vì thế keypad thường được tìm thấy trong các thiết bị chuyên dụng. Các nút nhấn trên các máy tính điện tử cầm tay là một ví dụ về keypad. Số lượng nút nhấn của một keypad thay đổi phụ thuộc vào yêu cầu ứng dụng. Gọi là keypad 4x4 vì keypad này có 16 nút nhấn được bố trí dạng ma trận 4 hàng và 4 cột. Cách bố trí ma trận hàng và cột là cách chung mà các keypad sử dụng. Cũng giống như các ma trận LED, các nút nhấn cùng hàng và cùng cột được nối với nhau, vì thế với keypad 4x4 sẽ có tổng cộng 8 ngõ ra (4 hàng và 4 cột). b. Hoạt động của Keypad 4x4 Theo hình trên, giả sử nút ‘2’ được nhấn, khi đó đường R1 và C2 được nối với nhau. Giả sử đường C2 được nối với GND (mass, 0V) thì R1 cũng sẽ là GND. Tuy nhiên, bằng cách kiểm tra trạng thái đường R1 chúng ta sẽ không kết luận nút ‘2’ được nhấn. Giả sử tất cả các đường C1, C2, C3, C4 đều nối với GND, nếu R1= GND thì rõ ràng ta không thể kết luận nút ‘1’ hay nút ‘2’ hay nút ‘3’ hay nút ‘A’ được nhấn. Kỹ thuật để khắc phục vấn đề này chính là kỹ thuật “quét” keypad. Có 2 cách quét phím là
  • 39.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH quét theo cột hoặc quét theo hàng. Sau đây là ví dụ về quét theo hàng, quét cột cũng hoàn toàn tương tự: - Ta lần lượt xuất tín hiệu mức 0 ra các hàng (khi một hàng là mức ‘0’ thì tất cả các hàng khác phải là mức 1). - Sau đó kiểm tra các cột nếu cột nào có mức logic 0 thì phím có tọa độ hàng và cột đó được ấn. a. Thông số kỹ thuật của Keypad 4x4 - Module bàn phím ma trận 4x4 loại phím mềm - Dòng / áp hoạt động tối đa: 30mA, 24V DC. - Tuổi thọ hoạt động: khoảng 1.000.000 lần nhấn phím - Thời gian phản hồi: ≤ 5ms - Độ dài cáp: 88mm - Nhiệt độ hoạt động: 0~70℃ - Đầu nối ra 8 chân - Kích thước bàn phím 77 x 69mm d. Ứng dụng của Keypad 4x4 Ý tưởng ứng dụng: - Hệ thống an ninh bảo vệ bằng mật khẩu. - Nhập liệu lựa chọn menu, điều khiển thiết bị. - Nhập dữ liệu cho các hệ thống nhúng.
  • 40.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2.3.4 Màn hình LCD 20x4 Hình 2.11. Màng hình LCD 20x4 Hình ảnh thực tế màng hình LCD 20x4 và chi tiết các chân của LCD được biểu hiện lần lượt qua hình 2.11 và bảng 2.3 như sau: Bảng 2.3. Các chân của LCD Thứ tự Tên kí hiệu I/O Mô tả 1 Vss Power GND 2 Vdd Power +5V 3 Vo Analog Điều khiển ánh sáng nền 4 RS Input Register Select 5 R/W Input Read/Write 6 E Input Enable (Storage) 7 D0 I/O Data LSB 8 D1 I/O Data 9 D2 I/O Data 10 D3 I/O Data 11 D4 I/O Data 12 D5 I/O Data 13 D6 I/O Data 14 D7 I/O Data MSB 15 A I Nguồn dương 5V 16 K I GND
  • 41.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH  Chân cấp nguồn: Vss nối mass (0V), VDD (nối nguồn +5V), V0 (điều chỉnh độ tương phản thường nối với biến trở).  RS: Chân chọn thanh ghi (Register select). Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi. + Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read). + Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.  R/W: Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.  E: Chân cho phép chốt xung kí tự (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E. + Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào (chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E. + Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.  D0-D7: Chân dữ liệu dùng để trao đổi dữ liệu giữa thiết bị điều khiển và LCD.  A, K: Chân điều khiển đèn nền. 2.3.5 Mạch chuyển giao tiếp LCD 20x4 Hình 2.12. Mạch chuyển giao tiếp LCD 20x4
  • 42.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Bằng việc sử dụng giao tiếp I2C, việc điều khiển trực tiếp màn hình được chuyển sang cho IC xử lý nằm trên mạch. Chỉ cần việc gửi mã lệnh cùng nội dung hiển thị, do vậy giúp vi điều khiển có nhiều thời gian xử lý các tiến trình phức tạp khác. Ưu điểm của việc sử dụng giao tiếp I2C - Giao tiếp I2C chỉ sử dụng duy nhất 2 dây tín hiệu: SDA và SCL giúp tiết kiệm chân trên vi điều khiển. - Tốc độ truyền dữ liệu lên đến 400Kbps - Dữ liệu truyền nhận đảm bảo tính toàn vẹn vì sử dụng cơ chế phản hồi (ACK) trên mỗi byte dữ liệu. - Có khả năng kết nối nhiều thiết bị với nhau: trên mạch có sẵn các mối hàn A0, A1, A2 để thay đổi địa chỉ của module. Địa chỉ mặc định: 0x27, có thể mắc vào I2C bus tối đa 8 module Điện áp hoạt động: 3V-6V. Đề điều khiển độ tương phản điều chỉnh biến trở màu xanh. 2.3.6 Giới thiệu động cơ Servo SG90 9g Micro Hình 2.13 là ảnh thực tế và kích thước chi tiết của động cơ Servo SG90 9g Micro: Hình 2.13. Động cơ Servo SG90 9g Micro a. Thông số kỹ thuật của Servo SG90 9g Micro - Khối lượng: 9g
  • 43.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - Kích thước: 22.2x11.8.32 mm - Momen xoắn: 1.8kg/cm - Tốc độ hoạt động: 60 độ trong 0.1 giây - Điện áp hoạt động: 4.8V(~5V) - Nhiệt độ hoạt động: 0 ºC – 55 ºC b. Điều khiển và kết nối Kết nối dây màu đỏ với 5V, dây màu nâu với mass, dây màu cam với chân phát xung của vi điều khiển. Ở chân xung cấp một xung từ 1ms - 2ms theo để điều khiển góc quay theo ý muốn. Cách kết nối và điều khiển cuả động cơ Servo SG90 9g Micro được thể hiện qua hình 2.14: Hình 2.14. Điều khiển và kết nối cuả động cơ Servo SG90 9g Micro 2.3.7 Relay 5V10A 5 chân SRD-05VDC-SL-C Relay là thiết bị đóng cắt cơ bản, nó được sử dụng rất nhiều trong cuộc sống và trong các thiết bị điện tử. Cấu tạo Relay gồm 2 phần  Cuộn hút: - Tạo ra năng lượng từ trường để hút các tiếp điểm về phía mình - Tùy vào điện áp làm việc người ta chia Relay ra DC: 5V, 12V, 24V- AC:110V, 220V  Cặp tiếp điểm - Khi không có từ trường. Tiếp điểm 1 được tiếp xúc với 2 nhờ lực của lò xo. Tiếp điểm thường đóng
  • 44.
    CHUONG 2. CƠSỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - Khi có năng lượng từ trường thì tiếp điểm 1 bị hút sang tiếp điểm 3 - Trong Relay có thể có 1 cặp tiếp điểm, 2 cặp tiếp điểm hoặc nhiều hơn Hình 2.15. Sơ đồ cấu tạo của Relay 5V10A 5 chân SRD-05VDC-SL-C Thông số kỹ thuật của Relay: - Tải tiêu thụ: 10A 250VAC/28VDC, 10A 125VAC/28VDC, 10A 125VAC/28VDC - Điện trở tiếp xúc: 100 mΩ - Điện áp hoạt động: 3-4.8V - Công suất: 0.36W, 0.45W - Nhiệt độ hoạt động: -25℃ ~ 70℃ - Điện trở cách ly: ≥100MΩ
  • 45.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Chương 3. TÍNH TOÁN VÀ THIẾT KẾ 3.1 GIỚI THIỆU Đề tài “Giám sát và cảnh báo sinh viên thông qua hệ thống quét vân tay điều khiển qua mạng Internet” bao gồm: Hệ thống có các chức năng như sau: hệ thống chính là cửa được đóng mở bằng ma trận phím hoặc bằng cách tiến hành quét vân tay. Sau đó, vân tay sẽ được gửi lên Internet để kiểm tra quản lý thời gian ra vào, tính toán số lần đi trễ, thời gian đi trễ, số ngày vắng, quản lý thông tin người dùng…. Khi sinh viên trễ hoặc vắng hệ thống sẽ gửi cảnh báo đến mail của sinh viên. Thêm nữa là cho phép thêm vân tay, xóa vân tay, thay đổi mật khẩu mở cửa. 3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 3.2.1 Thiết kế sơ đồ khối hệ thống Hệ thống gồm 7 khối ghép lại với nhau theo nhiều hướng tạo nên một hệ thống hoạt động ổn định được trình bày trong sơ đồ khối hình 3.1 như sau:
  • 46.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Hình 3.1 Sơ đồ khối hệ thống Chức năng từng khối:  Khối nguồn: cung cấp nguồn 5V cho khối hiển thị và khối chấp hành; nguồn 9V DC cho Module Sim 800A; nguồn 9V DC cấp cho khối xử lý trung tâm board Arduino Mega 2560. Lấy nguồn từ Arduino cấp cho khối cảm biến vân tay. Sử dụng 2 nguồn tổ ong được thiết kế sẵn. KHỐI XỬ LÝ TRUNG TÂM KHỐI NGUỒN KHỐI CHẤP HÀNH KHỐI HIỂN THỊ KHỐI MODULE SIM 800A KHỐI CẢM BIẾN VÂN TAY KHỐI MA TRẬN PHÍM
  • 47.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH  Khối xử lý trung tâm: thu thập dữ liệu từ các thiết bị sau đó xử lý và điều khiển khối chấp hành và khối hiển thị. Khối này do Arduino Mega 2560 thực hiện.  Khối cảm biến vân tay: tiến hành quét dấu vân tay để đóng mở cửa và nơi lưu trữ dấu vân tay. Khối này do module cảm biến vân tay R305 thực hiện.  Khối Module Sim 800A: dùng để gửi dữ liệu vân tay người dùng lên mạng Internet.  Khối hiển thị: hiển thị thông tin chế độ hoạt động khi người dùng thao tác.  Khối ma trận phím: Cho phép nhập mật khẩu để mở cửa, chọn chế độ hoạt động và chọn ID người dùng, thay đổi mật khẩu mở cửa.  Khối chấp hành: đóng mở cửa do động cơ servo SG90 thực hiện.
  • 48.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 29 3.2.2 Tính toán và thiết kế mạch a. Khối xử lý trung tâm Arduino Mega 2560 sử dụng chip ATmega2560. Nó có 54 chân digital I/O 16 chân đầu vào tương tự (Analog Inputs), 4 UARTs (cổng nối tiếp phần cứng), một thạch anh dao động 16 MHz, kết nối USB, một jack cắm điện, một đầu ICSP và một nút reset như trong hình 3.2. Nó chứa tất cả mọi thứ cần thiết để tạo thành khối xử lý trung tâm với đầy đủ các port. Ý tưởng thiết kế của nhóm là kết hợp nhiều module lại với nhau, do vậy sẽ có nhiều chân kết nối nên việc lựa chọn Arduino Mega 2560 là rất phù hợp. Hình 3.2. Khối xử lý trung tâm sử dụng board Arduino Mega 2560 Trong quá trình kết nối các module và lập trình cho hệ thống: Bộ nhớ sử dụng hết 2958 bytes vào khoảng 36% bộ nhớ Tổng số chân I/O sử dụng là 20 chân, công thức tính dòng tiêu thụ Dòng tiêu thụ = 20 x 40mA = 800mA (3.1) b. Khối cảm biến vân tay
  • 49.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30 Hình 3.3. Sự tương quan giữ khối xử lý và khối cảm biến vân tay Khối cảm biến vân tay sẽ gửi tín hiệu về khối xử lý, khối xử lý sẽ nhận tín hiệu và chuyển đến khối khác để chuyển tín hiệu đó đi. Đồng thời, khối cảm biến vân tay chỉ hoạt động khi khối xử lý trung tâm yêu cầu. Trên thị trường có rất nhiều loại cảm biến vân tay như đầu đọc vân tay R303S có khả năng lưu trữ 1000 mẫu vân tay, đầu đọc vân tay R101 có khả năng lưu trữ 1000 mẫu, module R301 có khả năng lưu trữ 500 mẫu vân tay, module R305 có khả năng lưu trữ 120 vân tay,… Do đề tài của nhóm thực hiện quét vân tay cho một lớp học, mà số lượng sinh viên một lớp đại trà chỉ khoảng 100 sinh viên nên nhóm lựa chọn module cảm biến vân tay R305 để thực hiện trong đề tài này. Cảm biến vân tay R305 tích hợp xử lý hình ảnh và thuật toán xử lý trên cùng một chip. Khả năng xử lý ảnh chụp tốt với độ phân giải lên đến 500dpi. Chuẩn giao tiếp: USB - UART (TTL logical logic) từ 9600 – 115200bps, sử dụng tốc độ mặc định là 57600 bps đảm bảo truyền nhận chính xác dữ liệu. Bên cạnh đó là các thông số khác như:  Điện áp cung cấp: 3.6V ~ 6V DC.  Dòng điện tiêu thụ: < 120mA. Cách nối dây cho cảm biến vân tay R305 vào Arduino Mega 2560 theo thứ tự chân:  Dây số 1 nối vào nguồn 5V và dây số 2 nối vào chân GND của arduino.  Dây số 3 nối vào chân số 19 RX1 và dây số 4 nối chân 18 TX1 của Arduino Mega. Dưới đây là cách nối dây vào Arduino Mega 2560 với cảm biến vân tay, được thể hiện trong hình 3.4: Khối xử lý trung tâm Khối cảm biến vân tay
  • 50.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31 Hình 3.4. Sơ đồ nguyên lý Cảm biến vân tay kết nối Arduino Mega c. Khối Module Sim 800A. Đề tài cần một phương tiện để gửi dữ liệu người dùng khi quét vân tay lên mạng Internet. Với cách kết nối đơn giản cũng như thao tác lập trình dễ dàng nên nhóm quyết định chọn module Sim800A để gửi dữ liệu lên Internet. Tuy tính kinh tế khi chọn module này là không cao nhưng module vẫn có những ưu điểm. Nếu hệ thống mất điện, module vẫn có thể gửi dữ liệu khi sử dụng nguồn dự phòng, hệ thống mạng GPRS được phủ sống liên tục. Nếu ta chuyển hệ thống đến nơi khác vẫn có thể cập nhật dữ liệu dễ dàng mà không cần phải cấu hình lại hệ thống. Vì chỉ gửi dữ liệu vân tay người dùng lên Internet nên ta chỉ dùng 4 chân là VCC, GND, TXD, RXD được kết nối với Arduino Mega như sau:  Hai chân nguồn VCC và GND được kết nối với Adapter 9V 2A để dòng điện cho sim hoạt động ổn định lâu dài.  TXD được nối vào chân TX2 và RXD nối vào RX2 của Arduino Mega để truyền nhận dữ liệu theo chuẩn UART.
  • 51.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32 Hình 3.5 thể hiện sơ đồ nguyên lý kết nối sim vào Arduino Mega và sử dụng nguồn riêng 5V. Hình 3.5. Sơ đồ nguyên lý kết nối Module Sim 800A vào Arduino Mega d. Khối hiển thị Hiển thị trạng thái làm việc của hệ thống lên màng hình LCD 20X4, với 4 hàng ta có thể dễ dàng thao tác giữa người dùng với mô hình hệ thống. Hình 3.6. LCD 20x4
  • 52.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33 Vì ta sử dụng mạch chuyển giao tiếp LCD 20x4 sang I2 C, chỉ cần 2 chân SDA và SCL của Arduino Mega 2560 kết nối với 2 chân SDA và SCL của module là đã có thể hiển thị thông tin lên LCD. Hình ảnh thực tế của mạch chuyển giao tiếp được thể hiện ở hình 3.7: Hình 3.7. Mạch chuyển giao tiếp LCD sang I2 C  Hai chân nguồn VCC và GND được kết nối với Adapter 5V 2A để dòng điện cho sim hoạt động ổn định lâu dài.  SDA được nối vào chân số 20 SDA và SCL nối vào chân số 21 SCL của Arduino Mega để truyền nhận dữ liệu theo chuẩn I2 C. Cách kết nối giữa LCD 20x4 sử dụng mạch chuyển giao tiếp LCD sang I2 C và Arduino Mega 2560, được thể hiện trong hình 3.8 dưới đây:
  • 53.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34 Hình 3.8. Sơ đồ nguyên lý kết nối Arduino Mega với LCD e. Khối ngoại vi Trong khối này có phím ma trận 4x4. Sơ đồ nối dây và hình ảnh thực tế của bàn phím ma trận 4x4 được biểu hiện trong hình 3.9 sau: Hình 3.9. Sơ đồ nối dây và hình ảnh thực tế của bàn phím ma trận 4x4
  • 54.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35 Sơ đồ nguyên lý kết nối Arduino Mega với ma trận phím được thể hiện trong hình 3.10 Hình 3.10. Sơ đồ nguyên lý kết nối Arduino Mega với ma trận phím f. Khối nguồn  Nguồn cấp cho Arduino, cảm biến vân tay Board Arduino Mega 2560 sử dụng hết 20 chân (N). Dòng DC trên mỗi chân I/O (I1C) là 40mA. IAr = I1C x N
  • 55.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36 = 40 x 20 = 800 mA (3.2) Dòng tiêu thụ cảm biến vân tay (IFinger) là 150 mA. Tổng dòng tiêu thụ trên là: I = IAr + IFinger = 800 + 150 = 950 mA (3.3) Theo tính toán thì sẽ cấp dòng tối thiểu là 950mA. Vì vậy, nhóm sinh viên sử dụng mạch giảm áp LM2596 tử nguồn tổ ong 12V 5A để có ngõ ra là 9V 2A.  Nguồn cấp cho Module Sim 800A Theo thông số kỹ thuật, nguồn cấp đầu vào từ 5-18V và dòng vào lớn hơn 1A. Vì vậy, nhóm sinh viên sử dụng mạch giảm áp LM2596 tử nguồn tổ ong 12V 5A để có ngõ ra là 9V 2A đảm bảo cho Module Sim 800A hoạt động ổn định.  Nguồn cấp cho LCD 20x4 Dòng LCD tiêu thụ tối đa là 2.5mA.Vì vậy, nhóm sinh viên sử dụng ngõ ra 5V của Arduino cấp cho LCD. Hình 3.11. Nguồn tổ ong 12V 5A Nguồn tổ ong được sử dụng rộng rãi trong các thiết bị công nghiệp và dân dụng như lắp đặt tủ điện, lắp đèn, camera giám sát,… Nguồn tổ ong thường được dùng trong các mạch ổn áp, cung cấp dòng áp đủ để tránh trường hợp dòng ảnh hưởng tới mạch, sụt áp.
  • 56.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37 Bộ nguồn tổ ong có các công dụng nổi bật như chỉnh lưu, biến tần, nắn dòng,.. nhằm làm dòng điện, điện áp, tần số dao động ổn định, làm tăng tuổi thọ của các thiết bị điện lâu hơn. Thông số kỹ thuật của nguồn tổ ong 12V 5A : - Điện áp ngõ vào :110/220VAC - Điện áp ngõ ra :12VDC-5A - Sai số điện áp đầu ra : 1-3% - Công suất thực tế : 88% - Nhiệt độ làm việc :0-70℃ Thông số kỹ thuật của nguồn tổ ong 5V 4A : - Điện áp ngõ vào :110/220VAC - Điện áp ngõ ra :5VDC-4A - Sai số điện áp đầu ra : 1-3% - Công suất tối đa : - Nhiệt độ làm việc :0-40℃ Hình 3.12. Mạch giảm áp LM2596 Mạch giảm áp DC có khả năng giảm áp từ 30V xuống 1,5V mà vẫn đạt hiệu suất cao (92%). Thích hợp cho các ứng dụng chia nguồn, hạ áp, cấp cho các thiết bị như camera, motor, robot,… Thông số kỹ thuật :
  • 57.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38 - Điện áp đầu ra : Từ 3V đến 30V - Điện áp đầu ra : Điều chỉnh được trong khoảng 1,5V đến 30V - Dòng đáp ứng tối đa là 3A - Hiệu suất : 92% - Công suất :15W 3.2.3 Sơ đồ nguyên lý của toàn mạch Dưới đây là hình 3.13 là sơ đồ nguyên lý toàn mạch thể hiện tất cả các khối và kết nối các thiệt bị lại với nhau rồi cắm vào Arduino Mega.
  • 58.
    CHƯƠNG 3. TÍNHTOÁN VÀ THIẾT KẾ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39 Hình 3.13. Sơ đồ nguyên lý toàn mạch
  • 59.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40 Chương 4. THI CÔNG HỆ THỐNG 4.1 GIỚI THIỆU Sau quá trình tính toán thiết kế, bộ xử lý trung tâm Arduino Mega giao tiếp với các module cảm biến vân tay, module sim, ma trận phím, màn hình LCD. Do vậy, ta cần một board mạch đề kết nối tất cả các module ấy lại với nhau. Nhóm đã tiến hành thiết kế mạch PCB, thi công và test mạch. 4.2 THI CÔNG HỆ THỐNG 4.2.1 Thi công bo mạch hệ thống Sau khi thiết kế xong sơ đồ nguyên lý và tiến hành vẽ mạch PCB 1 lớp thủ công. Với lớp bottom để gắn Arduino Mega vào. Còn lớp top dùng để kết nối nguồn 9V, kết nối cảm biến vân tay, LCD, module Sim 800A, bàn phím ma trận. Hình 4.1 thể hiện sơ đồ đi dây khi đã phủ đồng. Hình 4.2 thể hiện sơ đồ lớp top hình dạng 3D. Hình 4.1. Sơ đồ đi dây đã phủ đồng bo mạch hệ thống
  • 60.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41 Hình 4.2 Hình dạng 3D lớp top bo mạch hệ thống Danh sách các linh kiện sử dụng của mạch được liệt kê trong bảng 4.1 Bảng 4.1. Danh sách các linh kiện. STT Tên linh kiện Giá trị Loại Số lượng 1 Đầu bus 1 hàng 4 chân 1 2 Đầu bus 1 hàng 8 chân 1 3 Hàng rào cái đơn 1 hàng Chân cong 1 4 Jack cái nguồn DC 5V 2 5 Board đồng 1 1 lớp 1
  • 61.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42 4.2.2 Lắp ráp và kiểm tra bo mạch hệ thống Quá trình thi công, lắp ráp và kiểm tra mạch: Bước 1: Rửa board đồng sạch sẽ bằng nước rửa mạch sau khi ủi mạch và tiến hành khoan lỗ. Bước 2: Dùng đồng hồ chỉnh thang đo điện trở để kiểm tra ngắn mạch trên ngõ vào của jack DC 9V thông với module Sim 800A chưa. Kiểm tra GND của jack DC 9V có nối với nhau chưa. Bước 3: Hàn tất cả các hàng rào, đầu bus, jack DC vào board đồng. Đo kiểm tra các hàng rào, các đầu bus, jack DC có kết nối với nhau không. Bước 4: Gắn board arduino vào mạch vừa hàn xong. Đo kiểm tra từng chân từ arduino ra port đã kết nối hết chưa. Bước 5: Gắn đầu bus của các module Sim 800A, kết nối LCD, ma trận phím. Đo kiểm tra từng chân của các thiết bị đã kết nối hết chưa. Bước 6: Cấp nguồn 9V vào Arduino, cấp nguồn 9V cho module sim800A, cấp nguồn 5V cho các cảm biến và LCD. Bước 7: Sau đó ta nạp chương trình và test chương trình có đạt như yêu cầu ban đầu không. 4.3 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH 4.3.1 Đóng gói bộ điều khiển Sau khi kiểm tra mạch hoạt động tốt ta tiến hành đóng hộp thành mô hình hoàn chỉnh. Hình 4.3 là sơ đồ bố trí linh kiện hiển thị ra bên ngoài mặt trước. LCD MA TRẬN PHÍM CẢM BIẾN VÂN TAY Hình 4.3. Sơ đồ bố trí linh kiện mặt trước mô hình
  • 62.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43 4.3.2 Thi công mô hình Mô hình bằng meca kết nối bằng linh kiện cơ khí. Hình 4.4. Hình dạng trước mô hình Hình 4.5. Hình dạng sau mô hình
  • 63.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44 4.4 LẬP TRÌNH HỆ THỐNG 4.4.1 Lưu đồ giải thuật Hệ thống thực hiện được hai chức năng đó là quét vân tay điểm danh và thêm vân tay để quản lý sinh viên trong một lớp học. Điểm danh để quản lý thời gian ra vào lớp của sinh viên được thực hiện bằng cách quét vân tay. Sau khi quét vân tay, dữ liệu ID của người quét sẽ được gửi lên mạng Internet để kiểm tra, thống kê thời gian ra vào, số lần đi trễ, thời gian đi trễ, số ngày vắng, quản lý thông tin sinh viên, giảng viên,…. Hệ thống còn cho phép thêm vân tay, xóa vân tay một cách dễ dàng. Khi cấp điện vào hệ thống, khởi động Arduino, module Sim 800A, cảm biến vân tay, LCD, …. Sau khi khởi động xong mặc định sẽ hiển thị menu lựa chọn trên LCD, muốn đổi chế độ thì ta nhấn phím 1 tương ứng với chức quét vân tay, phím 2 có chức năng quản trị admin cho phép quản trị viên thêm hoặc xóa vân tay. Trong chức năng quản trị admin, khi ta nhấn phím 1 có chức năng thêm vân tay, phím 2 chức năng xóa vân tay, phím D quay lại menu hiển thị ban đầu.  Lưu đồ hệ thống menu lựa chọn
  • 64.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45 BẮT ĐẦU KHỞI ĐỘNG SIM 800A, CẢM BIẾN VÂN TAY, LCD THIẾT LẬP TỐC ĐỘ TRUYỀN KHỞI TẠO CÁC BIẾN VÀO CHẾ ĐỘ 0 (hiển thị menu tùy chọn) QUÉT MA TRẬN PHÍM CHỌN CHẾ ĐỘ 1 TRUYỀN ID NGƯỜI DÙNG LÊN WEB QUẢN TRỊ ADMINCHỌN CHẾ ĐỘ 2 NHẬP ĐÚNG MẬT KHẨU Đ S Đ S Đ S HIỂN THỊ THÔNG TIN NGƯỜI DÙNG TRÊN WEB BẮT ĐẦU Hình 4.6 Lưu đồ menu lựa chọn GIẢI THÍCH LƯU ĐỒ Quy trình làm việc của hệ thống như thể hiện trong sơ đồ hình 4.6. Chương trình bắt đầu vào khởi động sim 800A, LCD, khởi tạo các biến. Sau đó kiểm tra có cảm biến vân tay kết nối chưa. Nếu chưa kết nối thì chương trình sẽ dừng đợi đến khi nào có kết nối. Vòng lặp chương trình được thực hiện. Mặc định chương trình sẽ vào chế độ 0. Ở chế độ 0 thì cho phép hiển thị menu lựa chọn bao gồm 1. Quét vân tay, 2.Quản trị admin. Cùng lúc đó, kiểm tra bàn phím ma trận, nếu phím 1 được nhấn thì sẽ vào chế độ 1, nếu phím 2 được nhấn thì sẽ vào chế độ 2. Ở chế độ 1 thì cho phép quét dấu vân tay. Sau đó, dữ liệu ID của người sử dụng (tương ứng với vân tay của người đó đã được lưu trữ trước đó) được cập nhật lên
  • 65.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46 website thông qua GPRS của sim trên Module Sim 800A. Khi việc gửi dữ liệu hoàn tất thì trở về menu lựa chọn. Ở chế độ 2 cho phép quản trị Admin. Trước khi vào menu quản trị Admin, người dùng phải nhập đúng mật khẩu Admin thì hệ thống mới cho phép thêm vân tay, xóa vân tay.
  • 66.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 47  Lưu đồ quét vân tay BẮT ĐẦU CHỌN CHẾ ĐỘ 1 ĐƯA VÂN TAY VÀO CHỤP VÂN TAY CHUYỂN ĐỔI ẢNH TRÙNG VÂN TAY ĐÃ LƯU LCD HIỂN THỊ ĐÃ QUÉT VÂN TAY Đ S Đ Đ KẾT THÚC S Hình 4.7 Lưu đồ quét vân tay GIẢI THÍCH LƯU ĐỒ QUÉT VÂN TAY Quá trình quét vân tay bằng dấu vân tay thực hiện theo lưu đồ hình 4.7 phía trên. Chương trình kiểm tra nếu đang ở chế độ 1 thì ta đưa vân tay vào. Nếu vân tay được quét so sánh trùng với vân tay đã được lưu trước đó thì màn hình LCD sẽ thông báo đã quét vân tay.
  • 67.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 48  Lưu đồ chuyển dữ liệu lên Web BẮT ĐẦU ĐỌC GIÁ TRỊ TỪ SERIAL 2 KẾT NỐI GPRS THIẾT LẬP KẾT NỐI GỬI DỮ LIỆU ĐẾN ĐỊA CHỈ WEBSERVER TẮT KẾT NỐI KẾT THÚC Đ S Đ S S Đ S Hình 4.8. Lưu đồ chuyển dữ liệu lên web GIẢI THÍCH LƯU ĐỒ CHUYỂN DỮ LIỆU LÊN WEB Quy trình chuyển dữ liệu ID người dùng lên web như lưu đồ hình 4.8. Chương trình kiểm tra nếu có dữ liệu từ serial 2 thì kết nối GPRS. Sau khi kết nối thành công thì tiến hành gửi dữ liệu ID người dùng lên web. Sau khi quá trình hoàn tất thì kết nối sẽ được ngắt.
  • 68.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 49  Lưu đồ quản trị Admin BẮT ĐẦU CHẾ ĐỘ BẰNG 2 MẬT KHẨU HIỂN THỊ MENU QUẢN TRỊ ADMIN CHẾ ĐỘ BẰNG 1 CHẾ ĐỘ BẰNG 2 THÊM VÂN TAY XÓA VÂN TAY Đ S Đ Đ Đ S S S KẾT THÚC Hình 4.9. Lưu đồ quản trị admin GIẢI THÍCH LƯU ĐỒ QUẢN TRỊ ADMIN Quy trình quản trị admin thực hiện theo lưu đồ hình 4.9. Chương trình kiểm tra có đang ở chế độ bằng 3 không. Nếu đúng thì nhập mật khẩu để vào menu hiển thị tùy chọn quản trị admin. Menu tùy chọn này gồm 2 chế độ: - Ở chế độ 1 cho phép thêm vân tay. Sau khi hoàn tất quay về menu quản trị admin. - Ở chế độ 2 cho phép xóa vân tay. Sau khi hoàn tất quay về menu quản trị admin.
  • 69.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 50  Lưu đồ thêm vân tay BẮT ĐẦU CHẾ ĐỘ 1 ĐƯA NGÓN TAY VÀO CHỤP LẤY ẢNH CHUYỂN ĐỔI ẢNH ĐƯA NGÓN TAY RA ĐƯA NGÓN TAY VÀO CHỤP LẤY ẢNH CHUYỂN ĐỔI ẢNH SO SÁNH MẪU 2 LẦN LƯU MÃ VÂN TAY Đ S Đ Đ S Đ S Đ S S KẾT THÚC NHẬP ID Hình 4.10. Lưu đồ thêm vân tay GIẢI THÍCH LƯU ĐỒ THÊM VÂN TAY Quy trình lấy mẫu vân tay thêm người dùng thực hiện theo lưu đồ hình 4.10. Chương trình kiểm tra nếu đang ở chế độ 1 thì nhập ID vị trí lưu dấu vân tay. Khi đó, đèn trên cảm biến vân tay sẽ nháy sáng đợi ta đưa vân tay vào. Ta đưa vân tay cần lưu vào cảm biến để tiến hành lấy mẫu lần một và tương tự lấy mẫu lần hai. Vân tay ta đưa vào cảm biến lần thứ hai mà không giống với lần đầu thì ta sẽ lấy mẫu lại lần hai cho đến khi giống với vân tay đưa vào lần đầu thì ta lưu dấu vân tay lại. Tiếp tục lưu vân tay với những mẫu khác tương tự như trên cho đến khi kết thúc việc lấy mẫu thì chương trình quay về menu quản trị admin.
  • 70.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 51  Lưu đồ xóa vân tay BẮT ĐẦU CHỌN CHẾ ĐỘ 2 XÓA VÂN TAY TẠI ID S BẮT ĐẦU NHẬP ID CẦN XÓA Hình 4.11. Lưu đồ xóa vân tay GIẢI THÍCH LƯU ĐỒ XÓA VÂN TAY Quy trình xóa vân tay người dùng như lưu đồ hình 4.11. Chương trình kiểm tra nếu đang ở chế độ 2 thì vào chương trình xóa dấu vân tay. Nhập ID cần xoá, thực hiện cho đến khi kết thúc quá trình xóa thì chương trình quay về menu quản trị admin.
  • 71.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 52 4.4.2 Phần mềm lập trình cho vi điều khiển Giới thiệu phần mềm lập trình Arduino IDE Arduino IDE là phần mềm giúp ta lập trình cho các dòng sản phẩm của Arduino như Arduino Uno, Arduino Mega, nano,.. Lập trình trên Arduino IDE là cách tiếp cận đơn giản cho những người đam mê điện tử và muốn tạo ra những sản phẩm nhúng ấn tượng mà không cần quá nhiều kiến thức chuyên sâu về điện tử. Môi trường phát triển tích hợp Arduino IDE là một ứng dụng đa nền tảng được viết bằng Java. Arduino IDE hình 4.12 là nơi để soạn thảo code, kiểm ra lỗi và upload code. Hình 4.12. Giao diện lập trình arduino. Arduino Toolbar có một số button và chức năng của chúng như sau: 1 32 4 Hình 4.13. Arduino Toolbar Verify (1): kiểm tra code có lỗi hay không.
  • 72.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 53 Upload (2): nạp code đang soạn thảo vào Arduino. New, Open, Save (3): Tạo mới, mở và lưu sketch. Serial Monitor (4): Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên máy tính. 4.4.3 Phần mềm lập trình web a. Giới thiệu phần mềm Adobe Dreamweaver CS6 có giao diện trực quan và sử dụng hoàn toàn đơn giản, dễ dàng. Nó thích hợp với tất cả các bạn lập trình viên, ngay cả các bạn mới bắt đầu bước chân vào lập trình mà chưa nghiên cứu chuyên sâu về lập trình. Khi nói tới Dreamweaver CS6 thì các bạn không thể bỏ qua được tính năng hỗ trợ nhiều ngôn ngữ lập trình như PHP, ASP, JAVA… chính điều này đã khiến phần mềm này được các lập trình viên sử dụng nhiều cũng như được các chuyên gia, nhà phát triển đánh giá cao. Điểm nổi bật của Dreamweaver CS6 chính là tính năng xem trước trong khi bạn đang code. Điều này tạo điều kiện thuận lợi cho công việc của các lập trình viên, tránh được nhưng sai sót đáng tiếc trong quá trình làm việc, giúp tăng hiệu quả là việc. Hình 4.14. Giao diện viết code trên Dreamweaver Sau khi mở phần mềm ta sẽ có giao diện như hình 4.14 và tiến hành tạo file mới để lập trình php. Hình 4.15 và 4.16 mô tả quá trình tạo một file php mới (Trỏ chuột đến thư mục cần tạo File Nhấp chuột phải  New file ).
  • 73.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 54 Hình 4.15. Trỏ chuột đến thư mục cần tạo một file php mới Hình 4.16. Tạo file mới trên Dreamweaver b. Viết web quản lý thời gian  Ý TƯỞNG THIẾT KẾ GIAO DIỆN WEBSITE - Để đáp ứng yêu cầu đã đặt ra cho đề tài ta cần một công cụ để có thể nắm rõ thông tin của sinh viên, cũng như quản lí được thời gian ra vào lớp học cũng như thời gian trễ hoặc vắng của sinh viên và gửi cảnh báo cho sinh viên khi đã đi trễ hoặc vắng. Do vậy, nhóm sinh vên đã thống nhất thiết kế một trang
  • 74.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 55 website để quản lý sinh viên trong một lớp học. Từ những yêu cầu trên, website của nhóm có những chức năng như sau:  Giám sát thời gian ra vào lớp học bằng vân tay và cảnh báo lỗi quét vân tay nếu quét vân tay hơn 1 lần của tất cả người dùng.  Website được phân cấp từ Admin, Supervisor, User. Mỗi cấp sẽ có tên đăng nhập và mật khẩu khác nhau cũng như phân quyền thực hiện các tác vụ cũng khác nhau trong hệ thống. (Ví dụ: Admin sẽ có quyền xem, quyền thêm cũng như thay đổi dữ liệu của hệ thống, user chỉ được cấp quyền xem mà không có quyền thay đổi dữ liệu của hệ thống)  Lọc dữ liệu thời gian quét vân tay của từng cá nhân, xuất ra file Excel để thống kế thời gian quét vân tay của tất cả người dùng.  Thống kê số lần trễ, số ngày vắng, tổng thời gian đi trễ (phút) của từng sinh viên hoặc giảng viên, xuất ra file Excel thống kê số lần đi trễ, số ngày vắng, tổng số lần trễ (phút) của giảng viên và sinh viên.  Quản lý danh sách người dùng bao gồm ID cá nhân (riêng biệt cho mỗi cá nhân), ảnh đại diện, tên người dùng, giới tính, năm sinh, chức vụ, địa chỉ, email, tài khoản và mật khẩu đăng nhập.  Thêm người dùng bao gồm ID cá nhân, tên người dùng, ảnh đại diện, giới tính, năm sinh, chức vụ, địa chỉ, email, tài khoản đăng nhập, mật khẩu đăng nhập, loại tài khoản ( lựa chọn 2 loại tài khoản là: supervisor(giảng viên) và user( sinh vên)).  Chức năng gửi phản hồi, tạo nên sự tương tác giữa người quản lí và người dùng, khi có sự sai lệch hay cần sửa đổi gì thì người dùng có thể phản hồi.  Chức năng gửi mail giúp cho người quản lí có thể cảnh báo những sinh viên đi trễ, vắng để sinh viên khắc phục. - Sử dụng HTML và CSS để thiết kế một giao diện Web dễ sử dụng và thân thiện với người dùng. - MySQL và PHP là hai công cụ để quản lý cơ sở dữ liệu và thực hiện các tác vụ lên cơ sở dữ liệu. - Sử dụng phần mềm XAMPP để tạo localhost, phục vụ cho việc thiết kế giao diện web được dễ dàng hơn.
  • 75.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 56 - Nhóm đã lên ý tưởng và thiết kế một giao diện website thân thiện dễ sử dụng và dễ dàng phân biệt giữa các khối chức năng. Hình bên dưới là phần trình bày bố cục mà nhóm quyết định sẽ thực hiện website: Hình 4.17 Bố cục giao diện website quản lý  ĐĂNG KÍ WEB SERVER Để lưu trữ các file nguồn cũng như cơ sở dữ liệu( CSDL) ta cần một web server. Ngày nay với sự phát triển không ngừng của thế giới hiện đại, ta có thể dễ dàng đăng kí một web server. Do kinh phí có hạn cũng như website không quá phức tạp như các website kinh doanh, website tin tức,… nên nhóm đăng kí hosting để xây dựng web server từ website https://www.000webhost.com. Tuy web server này miễn phí nhưng nó đáp ứng được các mục tiêu mà nhóm đã đề ra. Khi đã đăng kí thành công, ta truy cập Manage database sau đó ta chọn Newdatabase và tạo một cơ sở dữ liệu mới.
  • 76.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 57 Hình 4.18. Truy cập Manage Database Hình 4.19. Khởi tạo một CSDL mới. Tạo một bảng dữ liệu cho CSDL: Bảng dữ liệu là thành phần chính tạo nên CSDL. Các bảng này có chức năng giúp người dùng thực hiện việc lưu trữ hay truy suất trên CSDL. Các bảng dữ liệu này có cấu trúc được phép cài đặt một cách linh hoạt bởi người thiết kế. Người dùng có thể tạo bảng bằng cách chọn số cột muốn tạo, sau đó điền vào các trường được phpMyAdmin cung cấp sẵn bao gồm: tên, kiểu dữ liệu, độ dài của kiểu dữ liệu, đặt khóa chính…
  • 77.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58 Hình 4.20. Tạo một bảng dữ liệu và chọn giá trị các trường cho trước Hình 4.21. Bảng dữ liệu comment hoàn chỉnh. Mỗi bảng đều có chức năng quan trọng trong việc thiết kế website quản lý, theo yêu cầu đã đặt ra ta xây dựng 5 bảng dữ liệu bao gồm: - Bảng “comment”: quản lý nội dung phản hồi của người dùng. - Bảng “giamsat”: quản lý thời gian quét vân tay của người dùng. - Bảng “profile”: quản lý thông tin, địa chỉ, mail,… của người dùng. - Bảng “tongket”: thống kê số liệu cho bảng giám sát. - Bảng “user”: quản lý tài khoản của người dùng
  • 78.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 59 Hình 4.22. Các bảng trong cơ sở dữ liệu Mỗi nhà cung cấp dịch vụ web server mang đến người dùng cách lưu trữ các file nguồn khác nhau. Đối với trang mà nhóm đã đăng kí hosting sẽ có 2 cách để lưu trữ các file nguồn trên server. Cách đầu tiên, ta sẽ truy cập File manager  Upload files now  Sau đó ta chọn file cần tải lên server để lưu trữ. Hình 4.23. Quản lý các file nguồn trên server Cách thứ 2, ta sử dụng phần mềm Filezilla để quản lí các file nguồn. Phần mềm này sẽ được kết nối với địa chỉ của website ta đã đăng kí thông qua giao thức FTP, sau đó các file nguồn sẽ được đồng bộ tới website như hình 4.24.
  • 79.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60 Hình 4.24. Giao diện phần mềm Filezilla quản lý các file nguồn  MỐI TƯƠNG QUAN GIỮA PHP VÀ MYSQL Nếu như một ứng dụng web mà không có sự lưu trữ, khai thác dữ liệu thì sẽ không có sự tương tác với người dùng và đó đơn giản chỉ là một website tĩnh. Ngôn ngữ lập trình PHP và cơ sở dữ liệu MySQL là một bộ đôi hoàn hảo. MySQL được ví von như bộ não hay trái tim của một người, là nơi duy trì sự sống của một cá thể, nếu hai bộ phận này bị tổn thương thì mọi hoạt động của cơ thể đó sẽ bị ảnh hưởng rất lớn. MySQL cũng vậy, nó chính là nơi lưu trữ toàn bộ dữ liệu của trang web, là nơi cung cấp tất cả thông tin cần thiết cho người sử dụng. Nếu bạn tạo một ứng dụng web mà không có hệ quản trị cơ sở dữ liệu, cụ thể ở đây là MySQL thì trang web của bạn chỉ ở trạng thái tĩnh mà thôi và sẽ không có bất cứ sự tương tác nào với người dùng. Chính vì thế mà việc kết hợp giữa lập trình PHP với cơ sở dữ liệu MySQL là vô cùng cần thiết. Sau khi tạo ra bảng dữ liệu mong muốn như đã trình bày ở mục trên, người dùng sẽ thao tác với CSDL thông qua các bảng này. Các hành động có thể thực hiện như thêm, xóa, sửa hoặc truy xuất dữ liệu. Đầu tiên, ta cần kết nối tới hệ quản trị CSDL MySQL. Cú pháp lệnh trong ngôn ngữ PHP như sau: $ket_noi_CSDL = mysql_connect(“Tên host”,”tên người dùng”,”mật khẩu”,”tên csdl”);
  • 80.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61 Trong đó server là tên của nơi lưu trữ CSDL, còn tên người dùng và mật khẩu là các thông tin đã có khi ta tạo ra CSDL, tên csdl là tên cơ sở dữ liệu người dùng đã tạo. Câu lệnh trên kết nối tới server nơi chứa CSDL và cho phép người dùng thực hiện các thao tác truy vấn. Trong MySQL có nhiều CSDL, ta cần xác định một CSDL cụ thể mà ta muốn truy xuất. Ngôn ngữ PHP cung cấp cho người dùng những câu lệnh truy xuất như sau: $sql= “select * from “tên_bảng_trong_cơ_sở_dữ_liệu”; Câu lệnh trên có ý nghĩa truy vấn tất cả dữ liệu có trong bảng mà ta đã chọn. Trong một CSDL người dùng có thể xóa bảng tùy theo ý muốn, cú pháp lệnh xóa bảng như sau: $sql = “DELETE * FROM tên_bảng”; Để thực thi các câu lệnh trên, người lập trình cần sử dụng câu lệnh: $query= mysqli_query($ket_noi_CSDL, $sql); 4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC Viết tài liệu hướng dẫn sử dụng hệ thống quét vân tay Bước 1: Cấp nguồn cho hệ thống, hệ thống sử dụng nguồn là 220V AC. Đợi hệ thống khởi động, màn hình LCD hiển thị menu lựa chọn. Có hai chế độ cho người dùng lựa chọn là chế độ quản trị Admin( có chức năng lưu trữ hoặc xóa vân tay) và chế độ quét vân tay. Bước 2: Nếu chon chế độ quét vân tay thì nhấn phím số 1, đưa vân tay người dùng đã được lưu trữ trước đó vào cảm biến cho đến khi màn hình LCD thông báo đã quét vân tay. Dữ liệu ID người dùng khi quét vân tay sẽ được gửi lên trang web http://doantotnghiepk13.tk. Sau khi dữ liệu được gửi thành công thì màn hình LCD sẽ quay về menu lựa chọn. Bước 2: Nếu muốn vào chế độ quản trị admin thì nhấn phím số 2 sau đó tiến hành nhập mật khẩu admin và kết thúc bằng phím #, khi đó menu quản trị admin sẽ hiển thị trên LCD. Trong menu của chế độ quản trị admin có 2 chế độ lựa chọn, muốn tùy chọn chế độ nào thì thực hiện theo các thao tác sau: - Nếu muốn thêm người dùng thì nhấn phím 1. Nhập ID cần lưu từ bàn phím sau đó nhấn phím #, đưa vân tay vào cảm biến khi nào đèn đỏ trong cảm biến tắt và có thông báo “remove finger” hiện trên LCD thì ta rút vân tay ra, đợi
  • 81.
    Chuong 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 62 đèn đỏ sáng lại ta thực hiện đưa vân tay trước đó vào một lần nữa để xác nhận. Khi có thông báo “Stored” hiển thị trên LCD thì vân tay của người dùng đã được thêm thành công. - Nếu muốn xóa người dùng thì ta nhấn phím 2. Nhập ID cần xóa từ bàn phím sau đó nhấn phím # để xóa ID đó. Màn hình LCD sẽ xuất thông báo “Deleted”. - Nếu muốn quay lại menu chính thì nhấn phím D. Bước 5: Nếu admin muốn kiểm tra thông tin người dùng về thời gian ra vào, số lần trễ, số ngày vắng, tổng thời gian đi trễ, xuất dữ liệu ra file excel, kiểm tra thông tin người dùng, thêm người dùng truy cập vào web http://doantotnghiepk13.tk. Sau đó admin đăng nhập vào hệ thống ở chế độ admin. Xuất file excel tiến hành gửi mail cho những sinh viên đã vi phạm nội quy lớp học. Bước 6 : Nếu supervisor muốn kiểm tra thời gian ra vào của bản thân và các user thì truy cập vào website http://doantotnghiepk13.tk . Sau đó người dùng đăng nhập vào hệ thống ở chế độ supervisor. Bước 7 : Nếu user muốn kiểm tra thời gian ra vào của bản thân thì truy cập vào website http://doantotnghiepk13.tk. Sau đó người dùng đăng nhập vào hệ thống ở chế độ user. Lưu ý : Từ bước 2 trở đi ta có thể thao tác tùy ý do các chế độ được lập trình độc lập với nhau.
  • 82.
    CHƯƠNG 4. THICÔNG HỆ THỐNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 84
  • 83.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 63 Chương 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.1 KẾT QUẢ Sau quãng thời gian tìm hiểu, nghiên cứu song song giữa các tài liệu chuyên ngành tiếng Việt và tiếng Anh, quá trình tổng hợp lại các kiến thức đã học trong suốt 4 năm học và tìm hiểu qua mạng Internet cũng như được sự hướng dẫn tận tình của GVHD Th.S Võ Đức Dũng. Nhóm chúng em cũng đã hoàn thành được đồ án tốt nghiệp với đề tài “GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET” Sau quá trình thực hiện đồ án này, nhóm em đã tích lũy được thêm nhiều kiến thức mới, bổ sung thêm hành trang kiến thức phục vụ cho công việc sau này.  Biết cách sử dụng và khai thác các tính năng của Arduino như giao tiếp giữa Arduino với các module mở rộng như: cảm biến vân tay R305, module Sim 800A, ma trận phím, màn hình LCD.  Tìm hiểu và tiến hành kết nối Arduino với các module mở rộng như cảm biến vân tay R305, module Sim 800A, ma trận phím, màn hình LCD.  Cách sử dụng module Sim 800A, nguyên lý hoạt động, các thông số kỹ thuật, tính năng của Sim 800A. Thiết lập cho module sim, gửi dữ liệu lên website nhờ GPRS.  Biết được nguyên lý hoạt động của cảm biến, các thông số kỹ thuật, các tính năng cũng như cách sử dụng của cảm biến vân tay R305. Biết được quy trình lấy mẫu dấu vân tay cũng như lịch sử hình thành và phát triển của ngành sinh trắc học vân tay.  Lập trình được một website với giao diện trực quan, thao tác đơn giản.  Biết được cách truy vấn dữ liệu cũng như sự tương quan giữa PHP và MySQL.  Biết cách gửi mail trong PHP sử dụng hàm PHPMailer. Sau quá trình nghiên cứu, thi công đề tài “GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET” của nhóm đã hoàn thành và thực hiện được tính năng sau:  HIỂN THỊ TRÊN LCD
  • 84.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 64 Khi khởi động hệ thống, người dùng sẽ vào giao diện menu lựa chọn trên màn hình LCD. Để thực hiện các thao tác, người dùng nhấn chọn mục cần thao tác trên ma trận phím. Hình 5.1. Menu lựa chọn tác vụ Nếu người dùng muốn thêm vân tay hay xóa vân tay cũng như thay đổi mật khẩu chỉ cần ấn chọn số 2 từ ma trận phím. Khi đó menu quản trị admin sẽ hiện trên mà hình LCD. Hình 5.2. Menu quản trị Admin
  • 85.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 65  THAO TÁC QUÉT VÂN TAY Sau khi khởi động hệ thống và màn hình LCD hiển thị Menu lựa chọn, người dùng muốn quét vân tay, ấn chọn số 1 từ ma trận phím. Hình 5.3. Chờ quét vân tay Hình 5.4. Đưa ngón tay vào cảm biến. Hình 5.3 mô tả trạng thái chờ để quét vân tay, hình 5.4 mô tả lúc người dùng đưa vân tay đã lưu trữ trước đó vào để cảm biến nhận dạng vân tay tiến hành quét vân tay. Hình 5.5. Quét vân tay thành công Hình 5.6. Tải dữ liệu người dùng lên Web
  • 86.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 66 Khi vân tay được nhận dạng trùng với mẫu đã lưu trữ trước đó, màn hình LCD sẽ thông báo quét vân tay thành công và tải dữ liệu lên website quản lý sinh viên. Dữ liệu được gửi lên website thông qua mạng GPRS của sim được gắn trên Module Sim 800A. Nếu người dùng quét vân tay không trùng với vân tay đã được lưu trữ trước đó thì sẽ không có thông báo đã quét vân tay cho đến khi quét đúng mới thôi.  THAO TÁC THÊM VÂN TAY VÀ XÓA VÂN TAY Nếu quản trị viên muốn thêm vân tay hay xóa vân tay chỉ cần ấn chọn số 2 từ ma trận phím. Khi đó menu quản trị admin sẽ hiện trên mà hình LCD. Hình 5.7. Hệ thống yêu cầu nhập mật khẩu Admin Hình 5.8. Nhập mật khẩu Admin Hình 5.9. Nhập mật khẩu thành công Sau khi đăng nhập đúng mật khẩu, màn hình LCD sẽ thông báo người dùng biết rằng mình đã nhập mật khẩu thành công và hiện menu quản trị Admin với các quyền thêm vân tay, xóa vân tay.
  • 87.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 67 Tùy vào nhu cầu mà Admin có thể ấn chọn phím 1 để thêm vân tay, ấn chọn phím 2 để xóa vân tay hay muốn quay lại menu lựa chọn thì ấn chọn phím D. Hình 5.10. Thêm ID người dùng mới Hình 5.11. Quét vân tay mới lần 1 Hình 5.12. Đưa vân tay ra ngoài. Hình 5.13. Quét vân tay lần 2 Ta thêm ID người dùng mới bằng cách nhập số từ bàn phím, mỗi ID sẽ tương ứng với thông tin của một cá nhân ở trên website, từ đó ta dễ dàng quản lý được người dùng. Người dùng tiến hành quét vân tay lần thứ nhất sau đó thả vân tay ra và đưa vân tay vào lần thứ hai. Khi mành hình LCD hiện thông báo Stored! Thì việc lưu trữ dấu vân tay đã thành công và màn hình LCD quay về menu quản trị Admin. Từ hình 5.10 đến hình 5.13 thể hiện quá trình thêm vân tay. Nếu muốn xóa vân tay, ta thực hiện thao tác ấn chọn phím 2, nhập ID cần xóa từ bàn phím và kết thúc bằng phím #. Thao tác xóa vân tay được thực hiện như hình 5.14 và hình 5.15. Khi xóa vân tay thành công, màn hình LCD sẽ quay về menu quản trị Admin.
  • 88.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 68 Hình 5.14. Nhập ID cần xóa. Hình 5.15. Xóa vân tay thành công.  GIAO DIỆN WEBSITE Người dùng truy cập vào website được cung cấp và chọn đăng nhập một trong 3 chế độ admin, supervisor, user. Hình 5.16. Cửa sổ đăng nhập hệ thống Người dùng cần có tài khoản và mật khẩu thích hợp cho từng chế độ đăng nhập.  Chế độ admin:  Sau khi đăng nhập thành công, trang chủ sẽ hiển thị thời gian quét vân tay của người dùng, hiển thị thông báo cảnh báo khi quét vân tay nhiều lần. Bên cạnh đó còn có các thông báo về phản hồi và các nút nhấn để lọc dữ liệu, xuất dữ liệu hay xóa dữ liệu.
  • 89.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 69 Hình 5.17. Trang chủ chế độ admin  Lọc dữ liệu thời gian mở quét vân tay của từng cá nhân supervisor hoặc user, ghi chú từng cá nhân về việc đi trễ, cảnh báo khi quét vân tay nhiều lần.  Xuất file Excel thống kê thời gian quét vân tay của từng cá nhân supervisor hoặc user khi ta nhấp Export. Hình 5.18. Xuất file Excel thống kê thời gian mở quét vân tay.
  • 90.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 70  Tổng kết thời gian của từng cá nhân bao gồm các thông số về số lần trễ, số ngày vắng và tổng thời gian trễ (phút) ở hình 5.19 và người dùng có thể xuất ra file Excel để tiện quan sát như hình 5.20. Hình 5.19. Tổng kết thời gian quét vân tay Hình 5.20. Xuất file Excel tổng kết thời gian
  • 91.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 71 Hình 5.21. File Excel tổng kết thời gian  Hiển thị danh sách người dùng bao gồm ID cá nhân (riêng biệt cho từng cá nhân), ảnh đại diện, tên người dùng, giới tính, năm sinh, chức vụ, địa chỉ, email. Cho phép admin có thể xóa hay sửa đổi thông tin của người dùng. Hình 5.22. Danh sách người dùng  Xuất file Excel danh sách người dùng bao gồm ID cá nhân (riêng biệt cho từng cá nhân), ảnh đại diện, tên người dùng, giới tính, năm sinh, chức vụ, địa chỉ, email như hình 5.22.
  • 92.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 72 Hình 5.23. Xuất file Excel danh sách người dùng Hình 5.24. File Excel danh sách người dùng  Chức năng thêm người dùng bao gồm ID cá nhân, tên người dùng, năm sinh, ảnh đại diện, giới tính, năm sinh, chức vụ, địa chỉ, email, tài khoản đăng nhập, mật khẩu đăng nhập và loại tài khoản (supervisor hay user).
  • 93.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 73 Hình 5.25. Thêm người dùng  Nhận phản hồi từ Phản hồi tài khoản supervisor và user. Hình 5.26. Thông báo có phản hồi
  • 94.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 74 Hình 5.27. Nội dung phản hồi  Gửi cảnh báo đến sinh viên về số phút trễ, ngày vắng, giờ ra vào lớp học Hình 5.28. Giao diện gửi mail  Chế độ supervisor:  Trang chủ supervisor có thể kiểm tra thời gian quét vân tay của các user, cũng như là tự kiểm tra thời gian quét vân tay của bản thân. Bên cạnh đó cũng có các thông báo về việc đi trễ hay quét vân tay nhiều lần của từng cá nhân.
  • 95.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 75 Hình 5.29. Trang chủ supervisor  Tổng kết thời gian ra vào, số lần trễ hoặc vắng của supervisor. Hình 5.30. Tổng kết thời gian của supervisor  Hồ sơ cá nhân supervisor.
  • 96.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 76 Hình 5.31. Hồ sơ cá nhân supervisor  Gửi phản hồi các nội dung cần giải quyết về admin. Hình 5.32. Gửi phản hồi  Gửi thông báo đến user:
  • 97.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 77 Hình 5.33. Giao diện gửi thông báo đến user  Chế độ user:  Trang chủ user hiển thị thời gian mở quét vân tay của user. Ghi chú về việc đi trễ và cảnh báo quét vân tay nhiều lần. Hình 5.34. Trang chủ user
  • 98.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 78  Hồ sơ cá nhân user Hình 5.35. Hồ sơ cá nhân user  Gửi phản hồi. Chức năng này tương tự như chức năng của supervisor.
  • 99.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 79  MÔ HÌNH Hình 5.36. Mặt trước mô hình Hình 5.37. Mặt sau mô hình
  • 100.
    CHƯƠNG 5. KẾTQUẢ_NHẬN XÉT_ĐÁNH GIÁ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 80 5.2 NHẬN XÉT – ĐÁNH GIÁ: Tuy vấp phải nhiều khó khăn trong quá trình thực hiện nhưng cuối cùng nhóm đã hoàn thiện được đề tài: “GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET”. Mô hình hoạt động ổn định, có thể làm việc liên tục và đáp ứng được các yêu cầu đã đề ra. Người dùng thao tác một cách đơn giản, dễ sử dụng. Hê thống đảm bảo an toàn và bảo mật cho người dùng. Việc sử dụng nguồn cấp từ 12V trở xuống nên an toàn cho người sử dụng. Như chúng ta đã biết, công nghệ nhận dạng vân tay có tính bảo mật rất cao nên tính bảo mật của mô hình là khá cao. Website quản lý thời gian ra vào của người dùng có giao diện trực quan, dễ sử dụng, các chức năng hiện hữu trên website đáp ứng việc quản lý thời gian của sinh viên, giảng viên. Cảnh báo sinh viên bằng cách gửi mail thông báo về việc đi trễ, số ngày vắng của sinh viên bằng mail đã được đăng kí trước. Thời gian đáp ứng khi cập nhật dữ liệu vân tay lên website liên tục mỗi khi có vân tay được quét. Song song với mặt đặt được vẫn còn tồn động một số hạn chế do thời gian thực hiện có hạn, lượng kiến thức cũng như nguồn tài liệu tham khảo còn hạn chế, chủ yếu thông qua mạng internet nên đề tài không thể tránh khỏi sai sót:  Thời gian để cập nhật dữ liệu vân tay khá lâu khoảng 5-6 giây.  Việc gửi mail cảnh báo sinh viên chưa tự động,
  • 101.
    CHƯƠNG 6. KẾTLUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 81 Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Sau thời gian tìm hiểu, nghiên cứu và thực hiện, nhóm đã hoàn thành đề tài “GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET” Hệ thống đáp ứng đầy đủ các tính năng, nội dung và mục tiêu ban đầu đã đề ra:  Giao tiếp và truyền dữ liệu thành công giữa Arduino Mega 2560 với các module cảm biến vân tay R305, module SIM 800A, màn hình LCD, ma trận phím.  Điểm danh thành công thông qua việc quét nhận dạng dấu vân tay.  Có thể thêm hoặc xóa vân tay khi quản trị viên cần lấy mẫu vân tay một lớp.  Cập nhật dữ liệu vân tay lên website thành công.  Quản lý người dùng trên website bao gồm thời gian ra vào, số lần trễ, số ngày vắng, thông tin người dùng, thêm người dùng.  Cảnh báo sinh viên đi trễ hoặc vắng để sinh viên có hướng khắc phục.  Website quản lý người dùng bao gồm 3 cấp độ là Admin, Supervisor, User. Mỗi cấp độ có phân quyền khác nhau như Admin sẽ quản lý Supervisor và User bằng các tác quyền như thêm hay xóa, quản lý dữ liệu thời gian trễ, vắng. Supervisor sẽ quản lý User và có thể gửi thông báo cho User. Riêng đối với User chỉ phân quyền được xem không được sửa dữ liệu.  Gửi về mail sinh viên thông tin trễ học hoặc vắng thông qua giao diện trên website. Nhóm đã cố gắng thực hiện nhưng vẫn còn tồn động một số hạn chế về mặt kiến thức cũng như thời gian thực hiện nên đề tài khó tránh khỏi sai sót và hạn chế:  Thời gian để tải dữ liệu vân tay lên website khá lâu khoảng 5-6 giây.  Chức năng cảnh báo sinh viên chưa thể tự động gửi mail cảnh báo đến sinh viên, vẫn cần quản trị viên thực hiện. Tuy còn tồn động những mặt hạn chế nhưng nhìn chung mô hình hoạt động tốt so với những yêu cầu đã đề ra:
  • 102.
    CHƯƠNG 6. KẾTLUẬN VÀ HƯỚNG PHÁT TRIỂN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 82  Hệ thống chạy tương đối ổn định, dữ liệu vân tay được cập nhật liên tục.  Module cảm biến vân tay R305 hoạt động tốt, ổn định, độ chính xác rất cao. Module SIM 800A hoạt động khá ổn định.  Hệ thống website quản lý thời gian ra vào của người dùng dễ sử dụng, nhiều tính năng đáp ứng nhu cầu thực tiễn.  Hệ thống website quản lý người dùng bao gồm 3 cấp độ là Admin, Supervisor, User.  Gửi email thông báo về thời gian ra vào cũng như số lần đi trễ đến mail đã được đăng kí ở trang thông tin người dùng. 6.2 HƯỚNG PHÁT TRIỂN Có thể gửi dữ liệu người dùng lên website quản lý thời gian thông qua Wifi. Mở rộng khả năng lấy nhiều mẫu vân tay hơn để nâng cao khả năng ứng dụng của đề tài không chỉ dừng lại ở việc quản lý lớp học mà có thể quản lý nhà máy, xí nghiệp,… Thiết kế giao diện website sinh động hơn, giao diện dễ dàng tương tác với người dùng. Tự động gửi email đến những sinh viên đã đi trễ, vắng.
  • 103.
    TÀI LIỆU THAMKHẢO BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 83 TÀI LIỆU THAM KHẢO Sách tham khảo [1] Nguyễn Minh Tiến, Phan Hồng Đức, “Thiết kế và thi công hệ thống đóng mở cửa bằng vân tay sử dụng kit Arduino được giám sát bằng máy tính thông qua Internet”, Đồ Án Tốt Nghiệp ĐH, Trường ĐH Sư Phạm Kỹ Thuật TP.HCM, 2017. [2] “Language Reference”, https://www.arduino.cc/en/Reference/HomePage [3] http://thuonghieuweb.com/code-gui-email-tu-website-voi-php.html DATASHEET [4] Arduino Mega 2560, https://www.arduino.cc/en/uploads/Main/arduino- mega2560_R3-schematic.pdf [5] Cảm biến vân tay, http://www.rhydolabz.com/documents/finger-print-module.pdf [6] Sim 800A, http://simcomm2m.com/En/module/detail.aspx?id=138 [7] Tập lệnh AT, http://www.espruino.com/datasheets/SIM900_AT.pdf [8] LCD20x4, http://mathcs.holycross.edu/~kwalsh/zebra/Systronix_20x4_lcd_brief_data.pdf [9] Ma trận phím 4x4, https://www.parallax.com/sites/default/files/downloads/27899- 4x4-Matrix-Membrane-Keypad-v1.2.pdf
  • 104.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 84 PHỤ LỤC  TỔNG QUAN VỀ WEB  Giao thức HTTP HTTP là chữ viết tắt của HyperText Transfer Protocol (giao thức truyền tải siêu văn bản). Đây là một giao thức ứng dụng trong bộ các giao thức TCP/IP (gồm một nhóm các giao thức nền tảng cho internet). Hình: Mô hình Client-Server HTTP hoạt động dựa trên mô hình Client – Server. Trong mô hình này, các máy tính của người dùng sẽ đóng vai trò làm máy khách (Client). Sau một thao tác nào đó của người dùng, các máy khách sẽ gửi yêu cầu đến máy chủ (Server) và chờ đợi câu trả lời từ những máy chủ này. Để có thể nói chuyện được với nhau, các máy chủ và máy khách phải thực hiện việc trao đổi thông qua các giao thức. Một trong những giao thức được sử dụng thường xuyên nhất chính là HTTP. Khi bạn gõ một địa chỉ Web URL vào trình duyệt Web, một lệnh HTTP sẽ được gửi tới Web server để ra lệnh và hướng dẫn nó tìm đúng trang Web được yêu cầu. Trang Web này sau đó sẽ được kéo về và mở trên trình duyệt Web. Nói đơn giản hơn, HTTP là giao thức giúp cho việc truyền tải file từ một Web server vào một trình duyệt Web để người dùng có thể xem một trang Web đang hiện diện trên trình duyệt. Server phản hồi với một dòng trạng thái, bao gồm phiên bản giao thức của thông báo và một code thành công hoặc lỗi, theo sau bởi một thông báo MIME chứa thông tin Server, thông tin thực thể đa phương tiện và nội dung đối tượng.
  • 105.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 85 Hình: Sơ đồ cấu trúc đơn giản của ứng dụng Web và vị trí của HTTP  AJAX AJAX = Asynchronous JavaScript And XML. Ajax giúp khắc phục nhược điểm thay vì phải tải lại trang để cập nhật một phần tử HTML, ta chỉ tải nội dung cần được cập nhật mà thôi. Ajax không phải là công nghệ mới mà là sự kết hợp giữa nhiều công nghệ cũ, trong đó bao gồm JavaScript và XML. Điều này được phản ánh trong cái tên của nó: Asynchronous JavaScript and XML Đầu tiên là từ Asynchronous, nghĩa là “bất đồng bộ”. Điều này nghĩa là request có thể được gửi kể cả khi trang được tải hoàn tất và hiển thị ra trình duyệt. Ngoài ra, ứng dụng không phải chờ đợi response từ server. Thay vào đó, ứng dụng có thể làm việc khác, khi nào response tới thì sẽ xử lý. Điều này giúp ứng dụng hoạt động trơn tru mà không bị treo khi chờ đợi một tác vụ chiếm nhiều thời gian. Từ thứ hai là JavaScript. Đây là một thành phần quan trọng vì JavaScript sẽ được dùng để gửi request và biến hóa các thành phần trên trang để hiển thị nội dung mới nhận từ server. Từ cuối cùng là XML, đây là từ gây nhiều hiểu lầm nhất về Ajax vì nó khiến người ta nghĩ Ajax chỉ làm việc với XML. Thực chất, Ajax có thể làm việc với tất cả dữ liệu dạng text: HTML, XML hoặc JSON.
  • 106.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 86 Cách AJAX làm việc: Hình: Cách thức hoạt động của AJAX  CÁC PHẦN MỀM SỬ DỤNG  Sơ lược về môi trường XAMPP Xampp là một công cụ tích hợp đầy đủ các thành phần bao gồm Apache, MySQL, FTP Server, Mail Server và các công cụ như phpMyAdmin. Giúp chúng ta tạo ra môi trường web server trên máy tính của mình, để có thể chạy được kịch bản PHP. Hình:Giao diện làm việc phần mềm XAMPP
  • 107.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 87 Hình: Giao diện phần mềm FileZila  ĐOẠN CODE CHƯƠNG TRÌNH CHÍNH //----------THU VIEN-Drive ------------------------------ #include <Keypad.h> #include <SoftwareSerial.h> #include <LiquidCrystal_I2C.h> #include <Adafruit_Fingerprint.h> #include <Wire.h> //---------KEYPAD--------------------------------- const byte ROWS = 4; //four rows const byte COLS = 4; //three columns char keys[ROWS][COLS] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte rowPins[ROWS] = {45, 43, 41, 39}; //connect to the row pinouts of the keypad byte colPins[COLS] = {37, 35, 33, 31}; //connect to the column pinouts of the keypad Keypad mykeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //--------LCD-------------------------------------
  • 108.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 88 LiquidCrystal_I2C lcd(0x3F, 20, 4); //--------PASSWORD-------------------------------- char matkhau[10] = {}; String password = ""; char password_buff[10] = {}; boolean check = false; char class_x = '0'; char class_y = '3'; byte index = 0; byte index_buff = 0; String password_admin = "1111"; int dem_mk_sai = 0; //---------SERIAL--------------------------------- //SoftwareSerial mySerial(16, 17); //---------FINGER--------------------------------- Adafruit_Fingerprint finger = Adafruit_Fingerprint(&Serial1); //uint8_t id; int id = 0; char id_buff[] = {}; byte index_id = 0; uint8_t getFingerprintEnroll(); boolean check_enroll = false; boolean check_delete = false; boolean out_fingerprint = false; //--------ETHERNET SHIELD------------------------- long tam_gioopen = 0; //bien tam dem so lan de open int times_open; // so lan cua timer de open int times_close; String pin_open = ""; String pin_close = ""; char statu[4] = {'0', '0', '0', '0'}; void setup() { //----lcd--------- lcd.init(); lcd.backlight();
  • 109.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 89 lcd.display(); //----sim800------ Serial2.begin(115200); Serial2.println("AT+CNMI=2,2"); // Nhận tn ngay khi có Serial2.println("AT+CMGF=1"); // Chuyển về dạng text mới so sánh chuỗi được Serial.println("AT+CMGF=1"); delay(100); //----Ethernet shield--- /* */ //---finger------------ finger.begin(57600);//Khoi tao van tay if (finger.verifyPassword()) { Serial.println("Found fingerprint sensor!"); } else { Serial.println("Did not find fingerprint sensor :("); //while (1); } } //------------CHUONG TRINH CHINH------------------------------ void loop() { char key = mykeypad.getKey(); switch (class_x) { case '0': { Serial.println("1. QUET VAN TAY"); Serial.println("2. QUAN TRI ADMIN"); //+++++++++++++ hienthi_lcd_clear(0, 0, "1.QUET VAN TAY"); hienthi_lcd(2, 0, "2.QUAN TRI ADMIN"); delay(500); while (class_x == '0') { char key = mykeypad.getKey(); if (key == '1') { class_x = '1'; break; }
  • 110.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 90 if (key == '2') { class_x = '2'; class_y = '3'; hienthi_lcd_clear(0, 0, "Nhap MK Admin:"); lcd.setCursor(0, 1); break; } } break; } case '1': { Serial.println("Waiting for valid finger..."); hienthi_lcd_clear(0, 0, "Waiting finger..."); while (!out_fingerprint) { getFingerprintIDez(); delay(50); } out_fingerprint = false; break; } case '2': { switch (class_y) { case '3': { if (key) { if (key == '#') { matkhau[index] = '0'; Serial.print("ban vua nhap: "); Serial.println(matkhau); if (String(matkhau) == password_admin) { Serial.println("Xin Chao Admin!"); hienthi_lcd_clear(0, 0, "Xin Chao Admin!");
  • 111.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 91 // StrClear(matkhau, index); //Xoa chuoi mat khau da luu index = 0; delay(1000); class_y = '0'; // Ve lai menu } else { Serial.println("Nhap lai mat khau!"); hienthi_lcd_clear(0, 0, "Nhap lai mat khau:"); lcd.setCursor(0, 1); // StrClear(matkhau, index); index = 0; } } else if (key == 'D') //Back { class_x = '0'; //StrClear(matkhau, index); index = 0; } else if (index < 4) { matkhau[index] = key; index++; Serial.print(key); // Bo o duoi, để khi ấn back ko bị in ra D lcd.print(key); } } break; } case '0': { Serial.println("1. THEM VAN TAY"); Serial.println("2. XOA VAN TAY"); Serial.println("D. BACK"); hienthi_lcd_clear(0, 0, "1.THEM VAN TAY"); hienthi_lcd(1, 0, "2.XOA VAN TAY"); hienthi_lcd(2, 0, "D.BACK"); delay(500); while (class_y == '0') { char key = mykeypad.getKey(); if (key == '1') { class_y = '1';
  • 112.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 92 hienthi_lcd_clear(0, 0, "Nhap ID Can Them:"); lcd.setCursor(0, 1); } if (key == '2') { class_y = '2'; hienthi_lcd_clear(0, 0, "Nhap ID Can Xoa:"); lcd.setCursor(0, 1); } /* if (key == '3') { class_y = '3'; hienthi_lcd_clear(0, 0, "Nhap Lai MK cu:"); lcd.setCursor(0, 1); }*/ if (key == 'D') { class_y = 'D'; } if(key == '5') { class_y = '5'; } } break; } case '1': { Serial.println("Chuong trinh them van tay"); delay(1000); id = 0; //reset id truoc //StrClear(id_buff, index_id); index_id = 0; while (!check_enroll) { char key = mykeypad.getKey(); if (key) { if (key == '#') { String str_id = String(id_buff); Serial.println(str_id); id = str_id.toInt(); check_enroll = true; //Co thể chạy chương trình enroll } else if (key == 'D') {
  • 113.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 93 class_y = '0'; check_enroll = true; id = 0; //De khong chay getFingerprintEnroll(); } else { id_buff[index_id] = key; index_id++; Serial.print(key); lcd.print(key); } } } if (id != 0) getFingerprintEnroll(); delay(1000); //id = 0; check_enroll = false; class_y = '0'; class_x = '2'; break; } case '2': { Serial.println("Chuong trinh XOa van tay"); id = 0; //reset id truoc // StrClear(id_buff, index_id); index_id = 0; while (!check_delete) { char key = mykeypad.getKey(); if (key) { if (key == '#') { String str_id = String(id_buff); id = str_id.toInt(); Serial.print("ID XOA: "); Serial.println(id); check_delete = true; //Co thể chạy chương trình delete } else if (key == 'D') { class_y = '0'; check_delete = true; id = 0; }
  • 114.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 94 else { id_buff[index_id] = key; index_id++; Serial.print(key); lcd.print(key); } } } if (id != 0) deleteFingerprint(id); id = 0; check_delete = false; class_y = '0'; break; } case 'D': { class_y = '0'; class_x = '0'; break; } } break; } } } //-----------FINDGER---------------------------------------- //-----------Enroll----------------------------------------- uint8_t getFingerprintEnroll() { int p = -1; Serial.print("Waiting for valid finger to enroll as #"); Serial.println(id); hienthi_lcd_clear(0, 0, "Waiting for finger"); hienthi_lcd(1, 0, "as ID:"); lcd.print(id); while (p != FINGERPRINT_OK) { p = finger.getImage(); switch (p) {
  • 115.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 95 case FINGERPRINT_OK: Serial.println("Image taken"); break; case FINGERPRINT_NOFINGER: Serial.println("."); break; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); break; case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); break; default: Serial.println("Unknown error"); break; } } // OK success! p = finger.image2Tz(1); switch (p) { case FINGERPRINT_OK: Serial.println("Image converted"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Image too messy"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_FEATUREFAIL: Serial.println("Could not find fingerprint features"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("Could not find fingerprint features"); return p; default: Serial.println("Unknown error"); return p; } Serial.println("Remove finger"); hienthi_lcd_clear(0, 4, "Remove finger"); delay(2000); p = 0;
  • 116.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 96 while (p != FINGERPRINT_NOFINGER) { p = finger.getImage(); } Serial.print("ID "); Serial.println(id); p = -1; Serial.println("Place same finger again"); hienthi_lcd_clear(0, 0, "Place same finger"); while (p != FINGERPRINT_OK) { p = finger.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("Image taken"); break; case FINGERPRINT_NOFINGER: Serial.print("."); break; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); break; case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); break; default: Serial.println("Unknown error"); break; } } // OK success! p = finger.image2Tz(2); switch (p) { case FINGERPRINT_OK: Serial.println("Image converted"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Image too messy"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_FEATUREFAIL: Serial.println("Could not find fingerprint features"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("Could not find fingerprint features"); return p;
  • 117.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 97 default: Serial.println("Unknown error"); return p; } // OK converted! Serial.print("Creating model for #"); Serial.println(id); p = finger.createModel(); if (p == FINGERPRINT_OK) { Serial.println("Prints matched!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p; } else if (p == FINGERPRINT_ENROLLMISMATCH) { Serial.println("Fingerprints did not match"); return p; } else { Serial.println("Unknown error"); return p; } Serial.print("ID "); Serial.println(id); p = finger.storeModel(id); if (p == FINGERPRINT_OK) { Serial.println("Stored!"); hienthi_lcd_clear(0, 6, "Stored!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p; } else if (p == FINGERPRINT_BADLOCATION) { Serial.println("Could not store in that location"); return p; } else if (p == FINGERPRINT_FLASHERR) { Serial.println("Error writing to flash"); return p; } else { Serial.println("Unknown error"); return p; } } //--------SIM800-------------------------------------------- void toSerial() { while (Serial2.available() != 0) { Serial.write(Serial2.read());
  • 118.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 98 } } void sim800_send(int id) { Serial.println("AT+IPR=19200"); Serial2.println("AT+IPR=115200"); // Dat c do truyen nhan du lieu 9600 bps delay(1000); toSerial(); Serial2.println("ATE0"); // Tat che do phan hoi (Echo mode) Serial.println("ATE0"); delay(500); toSerial(); Serial2.println("AT+SAPBR=3,1,"Contype","GPRS""); Serial.println("AT+SAPBR=3,1,"Contype","GPRS""); delay(1000); toSerial(); Serial2.println("AT+SAPBR=1,1"); Serial.println("AT+SAPBR=1,1"); delay(1000); toSerial(); Serial2.println("AT+HTTPINIT"); Serial.println("AT+HTTPINIT"); delay(1000); toSerial(); // Serial3.println("AT+SAPBR=2,1"); // Serial.println("AT+SAPBR=2,1"); // delay(2000); // toSerial(); Serial2.print("AT+HTTPPARA="URL","http://www.doantotnghiepk13.tk/m onitor.php?id="); Serial2.print(id); Serial2.println(""");
  • 119.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 99 Serial.println("AT+HTTPPARA="URL","http://www.doantotnghiepk13.tk/m onitor.php?id=3""); delay(1000); toSerial(); Serial2.println("AT+HTTPACTION=0"); Serial.println("AT+HTTPACTION=0"); delay(4000); // It nhat 6s toSerial(); // Serial3.println("AT+HTTPREAD"); // Serial.println("AT+HTTPREAD"); // delay(1000); // toSerial(); Serial2.println("AT+HTTPTERM"); Serial.println("AT+HTTPTERM"); delay(300); toSerial(); // Serial2.println("AT+SAPBR=0,1"); // Serial.println("AT+SAPBR=0,1"); // delay(500); // toSerial(); } //-----------FINGER- PRINT---------------------------------- uint8_t getFingerprintID() { uint8_t p = finger.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("Image taken"); break; case FINGERPRINT_NOFINGER: Serial.println("No finger detected"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); return p; default: Serial.println("Unknown error"); return p; }
  • 120.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 100 // OK success! p = finger.image2Tz(); switch (p) { case FINGERPRINT_OK: Serial.println("Image converted"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Image too messy"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_FEATUREFAIL: Serial.println("Could not find fingerprint features"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("Could not find fingerprint features"); return p; default: Serial.println("Unknown error"); return p; } // OK converted! p = finger.fingerFastSearch(); if (p == FINGERPRINT_OK) { Serial.println("Found a print match!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p; } else if (p == FINGERPRINT_NOTFOUND) { Serial.println("Did not find a match"); return p; } else { Serial.println("Unknown error"); return p; } // found a match! Serial.print("Found ID #"); Serial.print(finger.fingerID); Serial.print(" with confidence of "); Serial.println(finger.confidence); } // returns -1 if failed, otherwise returns ID # int getFingerprintIDez() {
  • 121.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 101 uint8_t p = finger.getImage(); if (p != FINGERPRINT_OK) return -1; p = finger.image2Tz(); if (p != FINGERPRINT_OK) return -1; p = finger.fingerFastSearch(); if (p != FINGERPRINT_OK) return -1; // found a match! Serial.print("Found ID #"); Serial.print(finger.fingerID); Serial.print(" with confidence of "); Serial.println(finger.confidence); hienthi_lcd_clear(0, 0, "Found ID: "); lcd.print(finger.fingerID); hienthi_lcd(2, 2, "DA QUET VAN TAY!"); delay(500); // gServo.write(70); // hienthi_lcd(1, 0, "Do Tin Cay: "); // lcd.print(finger.confidence); //+++++++++++++++++++++++ hienthi_lcd_clear(0, 0, "Dang tai du lieu..."); sim800_send(int(finger.fingerID)); //++++++++++++++++++++++ delay(1); // gServo.write(10); // delay(50); class_x = '0'; // Quay lai menu out_fingerprint = true; // check de out delay(1); // KO DELAY LÀ BỊ LỖI //class_x = '0'; return finger.fingerID; } //-----------DeleteFinger----------------------------------- uint8_t deleteFingerprint(uint8_t id) { uint8_t p = -1; p = finger.deleteModel(id); if (p == FINGERPRINT_OK) { Serial.println("Deleted!"); hienthi_lcd(2, 7, "Deleted!"); delay(1000); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p;
  • 122.
    PHỤ LỤC BỘ MÔNĐIỆN TỬ CÔNG NGHIỆP – Y SINH 102 } else if (p == FINGERPRINT_BADLOCATION) { Serial.println("Could not delete in that location"); return p; } else if (p == FINGERPRINT_FLASHERR) { Serial.println("Error writing to flash"); return p; } else { Serial.print("Unknown error: 0x"); Serial.println(p, HEX); return p; } } //-----------LCD-------------------------------------------- void hienthi_lcd(int hang, int cot, char *content) { lcd.setCursor(cot, hang); lcd.print(content); } void hienthi_lcd_clear(int hang, int cot, char *content) { lcd.clear(); lcd.setCursor(cot, hang); lcd.print(content); }