Đồ án Thiết kế và thi công tủ đựng vật dụng của giảng viên bảo mật bằng vân tay

pdf 116 trang phuongvu95 6011
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Thiết kế và thi công tủ đựng vật dụng của giảng viên bảo mật bằng vân tay", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfdo_an_thiet_ke_va_thi_cong_tu_dung_vat_dung_cua_giang_vien_b.pdf

Nội dung text: Đồ án Thiết kế và thi công tủ đựng vật dụng của giảng viên bảo mật bằng vân tay

  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: THIẾT KẾ VÀ THI CÔNG TỦ ĐỰNG VẬT DỤNG CỦA GIẢNG VIÊN BẢO MẬT BẰNG VÂN TAY GVHD: ThS Nguyễn Văn Hiệp SVTH: MSSV: Dương Quốc Trung 15141316 Nguyễn Văn Phong 15141237 TP Hồ Chí Minh - 12/2019
  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 CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG TỦ ĐỰNG VẬT DỤNG CỦA GIẢNG VIÊN BẢO MẬT BẰNG VÂN TAY GVHD: ThS Nguyễn Văn Hiệp SVTH: MSSV: Dương Quốc Trung 15141316 Nguyễn Văn Phong 15141237 TP Hồ Chí Minh - 12/2019 i
  3. TRƯỜNG ĐH SPKT TP. HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ ĐỘC LẬP - TỰ DO - HẠNH PHÚC BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH o0o Tp. HCM, ngày 20 tháng 11 năm 2019 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Dương Quốc Trung MSSV: 15141316 Nguyễn Văn Phong MSSV: 15141237 Chuyên ngành: Điện tử công nghiệp Mã ngành: 41 Hệ đào tạo: Đại học chính quy Mã hệ: 1 Khóa: 2015 Lớp: 15141DT1B I. TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG TỦ ĐỰNG VẬT DỤNG CỦA GIẢNG VIÊN BẢO MẬT BẰNG VÂN TAY II. NHIỆM VỤ 1. Các số liệu ban đầu: - Vi điều khiển: Arduino mega 2560, ESP8266. - Các loại module: DS1307, Relay. - Cảm biến: Vân tay R305. - Màn hình hiển thị: LCD TFT 3.2 inches touch screen - Nguồn: Tổ ong 12V, ổn áp LM2596, UPS12V, Pin. 2. Nội dung thực hiện: - Tìm hiểu nguyên lý hoạt động của cảm biến vân tay R305. - Tìm hiểu các chuẩn truyền thông như USART, SPI. - Thiết kế và thi công tủ đựng vật dụng thô. - Thiết kế và thực hiện đi dây các thiết bị trong tủ. - Thiết kế phần mềm thông báo trên điện thoại Android. - Viết chương trình điều khiển cho Arduino và ESP8266, nạp code và chạy thử nghiệm sản phẩm. - Chỉnh sửa và hoàn thiện hệ thống. - Thực hiện viết luận văn báo cáo. - Tiến hành báo cáo đề tài tốt nghiệp. III. NGÀY GIAO NHIỆM VỤ: 26/8/2019 IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 20/12/2019 V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Nguyễn Văn Hiệp CÁN BỘ HƯỚNG DẪN BM. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ii
  4. TRƯỜNG ĐH SPKT TP. HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ ĐỘC LẬP - TỰ DO - HẠNH PHÚC BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP o0o – Y SINH Tp. HCM, ngày 20 tháng 10 năm 2019 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Dương Quốc Trung Lớp: 15141DT1B MSSV: 15141316 Họ tên sinh viên 2: Nguyễn Văn Phong Lớp: 15141DT1B MSSV: 15141237 Tên đề tài: THIẾT KẾ VÀ THI CÔNG TỦ ĐỰNG VẬT DỤNG CỦA GIẢNG VIÊN BẢO MẬT BẰNG VÂN TAY Xác nhận Tuần/ngày Nội dung GVHD Tuần 3 Tìm hiểu về cảm biến vân tay R305. 09/09/2019 Tuần 4 Tìm hiểu Arduino Mega 2560 R3 và LCD TFT cảm 16/09/2019 ứng 3.2 inch. Tuần 5 Giao tiếp giữa module cảm biến vân tay R305 và 23/08/2019 Arduino. Tuần 6 Giao tiếp giữa LCD TFT cảm ứng, cảm biến thời gian 30/09/2019 thực DS1307 và Arduino. Tuần 7 07/10/2019 Kết hợp giao tiếp và trao đổi dữ liệu giữa R305, LCD Tuần 8 TFT cảm ứng, DS1307 và Arduino. 14/10/2019 Tuần 9 Tìm hiểu về Firebase cập nhật dữ liệu điều khiển giữa 21/10/2019 Firebase và ESP8266. Tuần 10 Thiết kế ứng dụng trên điện thoại android. 28/10/2019 Thiết kế sơ đồ nguyên lý phần cứng của hệ thống. Tuần 11 Thiết kế mạch PCB cho hệ thống. 04/11/2019 Viết chương trình arduino và ESP8266. Tuần 12 Thiết kế và thi công tủ đựng vật dụng. 11/112019 Tuần 13 18/11/2019 Tiến hành chạy thử nghiệm phần cứng. Tuần 14 Lắp ráp phần cứng vào tủ, đi dây và hoàn thiện. 25/11/2019 Tuần 15 Kiểm tra lại phần cứng, giao tiếp giữa phần cứng và 02/12/2019 ứng dụng trên điện thoại. Tuần 16 Kiểm tra lại toàn bộ hệ thống. 09/12/2019 Tiến hành viết báo cáo cho đề tài. Tuần 17 Hoàn thiện đề tài. 16/12/2019 GV HƯỚNG DẪN (Ký và ghi rõ họ và tên) iii
  5. LỜI CAM ĐOAN Đề tài này là do nhóm tự thực hiện dưới sự hướng dẫn của giảng viên ThS Nguyễn Văn Hiệp. Đề tài dựa vào một số tài liệu trước đó và không sao chép từ tài liệu hay công trình đã có trước đó. Nhóm thực hiện đề tài Dương Quốc Trung Nguyễn Văn Phong iv
  6. LỜI CẢM ƠN Nhóm em xin gửi lời cảm ơn sâu sắc đến Thầy Nguyễn Văn Hiệp, người đã trực tiếp hướng dẫn và giúp đỡ tạo điều kiện để nhóm hoàn thành tốt đề tài này. Mặc dù kiến thức của nhóm còn hạn chế nhưng thầy đã nhiệt tình giúp đỡ, vạch ra hướng đi sao cho phù hợp. Xin chân thành cảm ơn quý thầy cô Giảng viên khoa Điện - Điện Tử, trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM đã giúp đỡ nhóm trong quá trình thực hiện đồ án. Ngoài ra nhóm còn nhận sự quan tâm, giúp đỡ của gia đình, bạn bè, các anh chị trong trường để hoàn thành đồ án này. Do kiến thức còn hạn chế nên trong quá trình thực hiện không tránh khỏi sai sót mong thầy cô và các bạn góp ý để nhóm có thể hoàn thành đồ án tốt nhất. Xin chân thành cảm ơn! Nhóm thực hiện đề tài Dương Quốc Trung Nguyễn Văn Phong v
  7. MỤC LỤC Trang bìa i NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ii LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP iii LỜI CAM ĐOAN iv LỜI CẢM ƠN v MỤC LỤC vi LIỆT KÊ HÌNH ix LIỆT KÊ BẢNG xii TÓM TẮT xiii 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 2 1.5 BỐ CỤC 2 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4 2.1 TỔNG QUAN VỀ TỦ ĐỒ BẢO MẬT 4 2.1.1 Giới thiệu tủ đồ bảo mật và đặc điểm của tủ bảo mật 4 2.1.2 Ứng dụng của tủ đồ bảo mật 5 2.2 TỔNG QUAN VỀ CÔNG NGHỆ NHẬN DẠNG VÂN TAY 6 2.2.1 Lịch sử ra đời nhận dạng vân tay 6 2.2.2 Hệ thống nhận dạng vân tay 7 2.2.3 Ứng dụng công nghệ nhận dạng vân tay hiện nay 9 2.3 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID 10 2.3.1 Khái niệm hệ điều hành android 10 2.3.2 Giao diện 11 2.3.3 Ứng dụng 12 2.3.4 Ưu và nhược điểm của hệ điều hành Android 13 2.4 TỔNG QUAN VỀ FIREBASE 14 2.4.1 Lịch sử và khái niệm 14 2.4.2 Các tính năng chính 15 2.4.3 Ưu và nhược điểm của Firebase 17 2.5 CÁC CHUẨN TRUYỀN DỮ LIỆU 18 2.5.1 Chẩn giao tiếp I2C 18 vi
  8. 2.5.2 Chuẩn truyền thông UART 20 2.5.3 Chuẩn truyền thông SPI 21 CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ 22 3.1 GIỚI THIỆU 22 3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 22 3.2.1 Thiết kế sơ đồ khối hệ thống 22 3.3 TÍNH TOÁN VÀ THIẾT KẾ MẠCH 23 3.3.1 Khối cảm biến vân tay 23 3.3.2 Vi điều khiển 26 3.3.3 Khối module thời gian thực 28 3.3.4 Khối module wifi 29 3.3.5 Khối điều khiển và hiển thị 31 3.3.6 Khối module relay 34 3.3.7 Khóa chốt điện 35 3.3.8 Khối nguồn 36 3.4 SƠ ĐỒ NGUYÊN LÝ TOÀN MẠCH 40 CHƯƠNG 4: THI CÔNG HỆ THỐNG 41 4.1 GIỚI THIỆU 41 4.2 THI CÔNG HỆ THỐNG 41 4.2.1 Thi công Board mạch 41 4.2.2 Lắp ráp và kiểm tra 42 4.3 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH 43 4.3.1 Đóng gói bộ điều khiển 43 4.3.2 Thi công tủ 44 4.4 LẬP TRÌNH HỆ THỐNG 49 4.4.1 Lưu đồ giải thuật 49 4.4.2 Phần mềm lập trình cho vi điều khiển 57 4.4.3 Phần mềm lập trình cho điện thoại, máy tính 58 4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC 61 CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 69 5.1 GIỚI THIỆU 69 5.2 KẾT QUẢ ĐẠT ĐƯỢC 69 5.3 KẾT QUẢ THỰC NGHIỆM 70 5.3.1 Thiết kế thi công tủ 70 5.3.2 Phần cứng, giao diện điều khiển 72 vii
  9. 5.3.3 App android 78 5.4 NHẬN XÉT, ĐÁNH GIÁ 80 5.4.1 Nhận xét 80 5.4.2 Đánh giá 80 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 82 6.1 KẾT LUẬN 82 6.2 HƯỚNG PHÁT TRIỂN 82 TÀI LIỆU THAM KHẢO 83 PHỤ LỤC 84 viii
  10. LIỆT KÊ HÌNH Hình Trang Hình 2.1. Tủ đồ bảo mật bằng vân tay 4 Hình 2.2. Tủ đồ bảo mật bằng mật mật khẩu và khóa 5 Hình 2.3. Một số hình ảnh vân tay được sử dụng thời xưa 7 Hình 2.4. Cấu trúc cơ bản của hệ thống nhận dạng vân tay 8 Hình 2.5. Thanh toán mua hàng bằng dấu vân tay 9 Hình 2.6. Máy chấm công 10 Hình 2.7. Khóa cửa bảo mật vân tay 10 Hình 2.8. Logo hệ điều hành Android 11 Hình 2.9. Giao diện của thiết bị chạy hệ điều hành Android 11 Hình 2.10. Thanh trạng thái của thiết bị chạy hệ điều hành Android 12 Hình 2.11. Kho ứng dụng Google Play Store 13 Hình 2.12. Biểu tượng của nền tảng Firebase 14 Hình 2.13. Cây Json của Realtime Database 15 Hình 2.14. Các thiết bị tương tác với Realtime Database 16 Hình 2.15. Xác thực người dùng qua Authentication 17 Hình 2.16. Các thiết bị gửi và nhận tin nhắn qua Firebase Cloud Messaging 17 Hình 2.17. Giao diện hiển thị các project của Firebase 18 Hình 2.18. Bus I2C và các thiết bị ngoại vi 18 Hình 2.19. Trình tự truyền bit trên đường truyền 19 Hình 2.20. Truyền thông UART 20 Hình 2.21. Giao tiếp SPI 21 Hình 3.1. Sơ đồ khối hệ thống 22 Hình 3.2. Module cảm biến vân tay R305 23 Hình 3.3. Hình dạng bên ngoài và kích thước module R305 24 Hình 3.4. Các chân kết nối của module cảm biến vân tây R305 25 Hình 3.5. Sơ đồ kết nối cảm biến vân tay với vi điều khiển 25 Hình 3.6. Board arduino mega 2560 26 Hình 3.7. Sơ đồ và kí hiệu chân trên arduino mega 2560 28 Hình 3.8. Mạch thời gian thực RTC I2C DS1307 28 Hình 3.9. Sơ đồ kết nối module DS1307 với vi điều khiển 29 Hình 3.10. Module Wifi NodeMCU ESP8266 29 Hình 3.11. Sơ đồ kết nối module ESP8266 với vi điều khiển 30 Hình 3.12. Màn hình LCD TFT 3.2 Inches 31 Hình 3.13. Shield LCD TFT 3.2 Inches cho Arduino Mega 33 Hình 3.14. Sơ đồ kết nối Shield LCD TFT với vi điều khiển 33 Hình 3.15. Module relay 6 kênh 34 Hình 3.16. Sơ đồ kết nối relay với vi điều khiển 35 Hình 3.17. Khóa chốt điện LY-03 12V 35 Hình 3.18. Nguồn tổ ong 12V-5A 36 Hình 3.19. Mạch ổn áp LM2596 37 Hình 3.20. Mạch chuyển nguồn tự động UPS 12V 37 Hình 3.21. Pin Cell 18650 4200mAh 3.7V 38 Hình 3.22. Mạch chuyển nguồn UPS và ổn áp LM2596 39 ix
  11. Hình 3.23. Sơ đồ nguyên lý hệ thống 40 Hình 4.1. PCB mặt trên 41 Hình 4.2. PCB mặt dưới 41 Hình 4.3. Mặt trên board 42 Hình 4.4. Mặt dưới board 42 Hình 4.5. Mặt trên board khi lắp linh kiện 43 Hình 4.6. Mặt dưới board khi lắp linh kiện 43 Hình 4.7. Hình ảnh sau khi lắp mạch lên mica 43 Hình 4.8. Thông số kích thước của tủ trên thiết kế 44 Hình 4.9. Hình ảnh mặt trước của tủ sau khi hoàn thiện 45 Hình 4.10. Hình ảnh mặt trước mạch điều khiển khi lắp lên tủ 46 Hình 4.11. Đi dây mạch điều khiển 47 Hình 4.12. Đi dây cho khóa điện và đèn báo 48 Hình 4.13. Lưu đồ chương trình chính 49 Hình 4.14. Lưu đồ chương trình con chọn chế độ 50 Hình 4.15. Lưu đồ chương trình gửi đồ 51 Hình 4.16. Lưu đồ chương trình lấy đồ 52 Hình 4.17. Lưu đồ chương trình thêm vân tay 53 Hình 4.18. Lưu đồ của chương trình con quét vân tay của chế độ gửi đồ và lấy đồ 54 Hình 4.19. Lưu đồ chương trình con quét vân tay của chế độ thêm vân tay 55 Hình 4.20. Lưu đồ của ESP8266 56 Hình 4.21. Giao diện phần mềm lập trình Arduino IDE 57 Hình 4.22. Giao diện phần mềm Android Studio 59 Hình 4.23. Giao diện phần thiết kế giao diện cho ứng dụng 60 Hình 4.24. Ánh xạ các đối tượng trong giao diện với các câu lệnh 60 Hình 4.25. Giao diện phần lập trình Java 61 Hình 4.26. Giao diện chính của hệ thống 61 Hình 4.27. Quét vân tay gửi đồ 62 Hình 4.28. Gửi đồ thành công 62 Hình 4.29. Quét vân tay lấy đồ 63 Hình 4.30. Thông báo lấy đồ thành công 63 Hình 4.31. Thông báo nhập mật khẩu 64 Hình 4.32. Giảng viên nhập mật khẩu 64 Hình 4.33. Quét vân tay lần 1 64 Hình 4.34. Quét vân tay lần 2 65 Hình 4.35. Thêm vân tay thành công 65 Hình 4.36. Giao diện bắt đầu của ứng dụng 66 Hình 4.37. Người quản lí đăng nhập. 66 Hình 4.38. Giao diện bên trong chế độ người dùng 67 Hình 4.39. Giao diện bên trong chế độ quản lý 68 Hình 5.1. Hình ảnh thực tế mặt trước tủ sau khi hoàn thiện 70 Hình 5.2. Mặt bên phải tủ sau khi hoàn thiện 71 Hình 5.3. Board mạch lắp bên trong tủ 72 Hình 5.4. Mặt trước board điều khiển 73 Hình 5.5. Giao diện chính 74 Hình 5.6. Quét vân tay gửi đồ 74 x
  12. Hình 5.7. Gửi đồ thành công 74 Hình 5.8. Quét vân tay lấy đồ 75 Hình 5.9. Thông báo lấy đồ thành công 75 Hình 5.10. Thông báo nhập mật khẩu 76 Hình 5.11. Giao diện nhập mật khẩu 76 Hình 5.12. Quét vân tay lần 1 76 Hình 5.13. Quét vân tay lần 2 77 Hình 5.14. Thêm vân tay thành công 77 Hình 5.15. Giao diện bắt đầu của ứng dụng 78 Hình 5.16. Người quản lí đăng nhập 78 Hình 5.17. Giao diện bên trong chế độ người dùng 79 Hình 5.18. Giao diện bên trong chế độ quản lý 79 xi
  13. LIỆT KÊ BẢNG Bảng Trang Bảng 3.1: Kí hiệu và chức năng của các chân trên cảm biến vân tay R305 25 Bảng 3.2: Thông số Ardiuno Mega 2560 27 Bảng 3.4: Mô tả chức năng các chân của GLCD 31 Bảng 3.5: Thông số, giá trị các linh kiện sử dụng 36 Bảng 5.1: Số liệu thực nghiệm 80 xii
  14. TÓM TẮT Trong những năm gần đây, công nghệ bảo mật vân tay đã và đang được ứng dụng rộng rãi trong nhiều lĩnh vực của đời sống. Nhận thấy việc gửi đồ của giảng viên trong trường Đại học ngày chưa được đề cao về sự thuận tiện cũng như tính bảo mật. Đề tài này nhằm mục đích thiết kế và thi công được tủ đựng vật dụng của giảng viên với phương pháp bảo mật bằng vân tay. xiii
  15. CHƯƠNG 1: TỔNG QUAN CHƯƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Thế giới đang trong làn sóng của cuộc cách mạng công nghiệp 4.0. Công nghệ bảo mật ngày càng được nâng cấp và sử dụng rộng rãi trong các ứng dụng của đời sống. Đặc biệt, bảo mật bằng vân tay dù không còn là điều gì đó quá mới mẻ nhưng vẫn là một trong những công nghệ được áp dụng phổ biến để giải quyết các vấn đề như giám sát tự động, bảo mật dữ liệu, xác thực cá nhân trong các cơ quan, doanh nghiệp. Ngoài ra công nghệ này còn được sử dụng trong lĩnh vực nghiên cứu khoa học pháp y và tội phạm. Quét vân tay là một công nghệ bảo mật sử dụng dấu vân tay của một người để xác định danh tính của người đó. Như chúng ta đều biết mỗi người sẽ sở hữu cấu trúc vân tay riêng biệt, thể hiện sự đặc trưng cho từng cá nhân. Điều này thường được gọi là dấu vân tay sinh trắc học. Sinh trắc học là cách nghiên cứu về con người khác nhau dựa trên các yếu tố sinh học. Ngay cả các cặp song sinh giống hệt nhau cũng không chia sẻ cùng một tập hợp các dấu vân tay. Dấu vân tay của một người giống như một thẻ nhận dạng, và đây cũng là nền tảng cốt lõi để sáng tạo ra công nghệ bảo mật vân tay. Trước đây cũng có khá nhiều đồ án tốt nghiệp nghiên cứu về các ứng dụng sử dụng công nghệ vân tay như đề tài “Điểm danh sinh viên bằng vân tay” của Nguyễn Khắc Thành, trong đó sử dụng Arduino Mega 2560, module vân tay R305, phần mềm C# để tạo giao diện và SQL Server để tạo cơ sở dữ liệu lưu trữ thông tin sinh viên [4]. Tác giả Trần Anh Đề và Trần Sơn Lành nghiên cứu đề tài “Hệ thống điểm danh bằng vân tay sử dụng vi điều khiển ARM” sử dụng vi điều khiển STM32F103VET6 giao tiếp với SD card, cảm biến vân tay R305 và hiển thị thông tin lên LCD TFT 320x240. Mô hình xử lý dựa trên files Excel mà người dùng đã định dạng theo 1 mẫu sẵn được lưu trữ trong thẻ nhớ SD [5]. Qua những thông tin trên, nhóm em quyết định làm đề tài “Thiết kế và thi công tủ đựng vật dụng của giảng viên bảo mật bằng vân tay”. Hệ thống sử dụng vi điều khiển trung tâm là module Arduino và module Wifi Node MCU ESP8266, cảm biến vân tay R305, khóa điện tử, LCD TFT hiển thị thông tin và các đèn led báo trạng thái. Người dùng có thể nhận thông báo về trạng thái hộc tủ của mình thông qua ứng dụng cài đặt trên điện thoại sử dụng hệ điều hành Android [1]. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 1
  16. CHƯƠNG 1: TỔNG QUAN 1.2 MỤC TIÊU Thiết kế và thi công được tủ đựng vật dụng cho giảng viên bảo mật bằng vân tay. Giúp việc gửi đồ của giảng viên trở nên nhanh chóng, thuận tiện và nâng cao khả năng bảo mật. 1.3 NỘI DUNG NGHIÊN CỨU - NỘI DUNG 1: Tìm hiểu nguyên lý hoạt động của cảm biến vân tay R305. - NỘI DUNG 2: Tìm hiểu các chuẩn truyền thông USART, SPI, I2C. - NỘI DUNG 3: Tìm hiểu và giao tiếp được cảm biến vân tay R305, module thời gian thực DS1307, module Wifi ESP8266 với Arduino Mega 2560. - NỘI DUNG 4: Thiết kế app bằng Android Studio. - NỘI DUNG 5: Thiết kế và thi công tủ đựng vật dụng. - NỘI DUNG 6: Đánh giá kết quả thực hiện. 1.4 GIỚI HẠN - Tủ có kích thước 145x85x40 cm, gồm 6 hộc chứa. - Tích hợp LCD TFT cảm ứng để hiển thị thông tin và điều khiển. - Sử dụng module vân tay R305. - Thời gian chứa vật dụng trong tủ tối đa là 1 tuần. - Hiển thị thông tin tủ và thông báo cho người dùng qua app cài đặt trên các thiết bị sử dụng hệ điều hành Android. - Cho phép quản trị viên điều khiển từ xa thông qua app android. - Có tích hợp UPS (mạch chuyển nguồn tự động) cấp nguồn dự phòng lúc mất điện. 1.5 BỐ CỤC - Chương 1: Tổng quan Chương này trình bày đặt vấn đề, 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 Chương này trình bày lý thuyết về các module, cảm biến và linh kiện sử dụng trong hệ thống, các chuẩn truyền thông, giao thức. - Chương 3: Thiết kế và tính toán Chương này thiết kế sơ đồ khối, sơ đồ nguyên lí của các khối trong hệ thống và thực hiện tính toán thiết kế. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2
  17. CHƯƠNG 1: TỔNG QUAN - Chương 4: Thi công hệ thống Chương này trình bày lưu đồ giải thuật, thiết kế app android, viết chương trình hệ thống, thiết kế sơ đồ mạch in PCB. - Chương 5: Kết quả, nhận xét và đánh giá Chương này trình bày kết quả thi công phần cứng và kết quả hình ảnh thực tế của tủ, nhận xét đánh giá chung về sản phẩm. - Chương 6: Kết luận và hướng phát triển Trong chương này sẽ đưa ra kết quả đạt được, phân tích những ưu nhược điểm và đề xuất hướng phát triển đề tài. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3
  18. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ TỦ ĐỒ BẢO MẬT 2.1.1 Giới thiệu tủ đồ bảo mật và đặc điểm của tủ bảo mật Tủ đồ bảo mật đang dần trở thành thiết bị phổ biến và được ứng dụng ở nhiều nơi bởi mỗi cá nhân, gia đình hay tập thể đều có những giấy tờ, vật dụng quan trọng cần được bảo mật. Tủ bảo mật là loại tủ có kích thước, hình dáng giống như tủ đựng hồ sơ, tài liệu bình thường nhưng có tính bảo mật cao hơn. Tủ thường được dùng để cất giữ những giấy tờ hồ sơ quan trọng, tài sản riêng. Tủ bảo mật được thiết kế tiêu chuẩn với các loại phổ biến là tủ 2 cánh, 4 cánh và 6 cánh. Ngoài ra, tủ còn được thiết kế theo yêu cầu, mục đích và nhu cầu cụ thể của từng người sử dụng. Hiện nay có nhiều công nghệ bảo mật được tích hợp trong tủ đồ để nâng cao khả năng bảo vệ cho tài sản như mật khẩu số, thẻ RFID, vân tay sinh trắc học, mà phổ biến nhất là mật khẩu số và thẻ RFID vình sự đơn giản và giá thành phù hợp với đại đa số người sử dụng. Công nghệ vân tay cũng đã được ứng dụng nhiều trong các sản phẩm máy chấm công, cửa thông minh, tủ thông minh, tuy nhiên giá thành cao hơn khiến cho chúng chỉ được sử dụng trong các cơ quan, môi trường đặc thù chứ chưa quá phổ biến cho người dùng thông thường. Hình 2.1. Tủ đồ bảo mật bằng vân tay BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 4
  19. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Hình 2.2. Tủ đồ bảo mật bằng mật mật khẩu và khóa Đặc điểm của tủ bảo mật: - Được làm từ vật liệu thép sơn tĩnh điện dày từ 0.8 mm đến 1.2 mm (tùy theo nhu cầu của người sử dụng) nên có độ bền rất cao. Chất liệu thép sơn tĩnh điện giúp tủ bảo mật có độ bóng, mịn tuyệt đối, đặc biệt là khả năng chống ăn món, chống oxi hóa. - Đáy tủ có hệ thống bánh xe sắt giúp việc di chuyển tủ sang các vị trí khác nhau dễ dàng ( vì tủ có trọng lượng lớn) - Đặc điểm quan trọng nhất của tủ bảo mật chính là hệ thống bảo mật của tủ nằm trên các cánh tủ. Với công nghệ bảo mật khác nhau như khóa mã (mật khẩu) riêng biệt, khóa chìa 4 cạnh, hệ thống an toàn giúp cánh được bảo vệ an toàn gây khó khăn với những nguy cơ cố tình cạy, phá trong thời gian ngắn. 2.1.2 Ứng dụng của tủ đồ bảo mật - Tủ bảo mật được sử dụng phổ biến trong các công ty, trường học để bảo quản những dụng cụ, hồ sơ quan trọng, có giá trị, tránh việc xâm phạm tủ một cách có chủ ý khi chưa được phép. - Hạn chế việc mất cắp những đồ đạc được lưu trữ trong tủ. Ngoài ra với tính bảo mật và độ bền cao, tủ bảo mật còn được ưa chuộng trong môi trường quân đội, nơi đề cao tính bảo mật và kỷ luật để bảo quản giấy tờ của lãnh đạo, quân tư trang của quân nhân. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 5
  20. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.2 TỔNG QUAN VỀ CÔNG NGHỆ NHẬN DẠNG VÂN TAY 2.2.1 Lịch sử ra đời nhận dạng vân tay Từ thế kỉ thứ XIV, việc sử dụng dấu vân tay và vân chân để nhận dạng đã được người Ấn Độ áp dụng. Khi một đứa trẻ ra đời, người Trung Quốc đã dùng mực bôi đen chân tay nó và in dấu lên một tờ giấy. Người Mỹ bắt đầu sử dụng dấu vân tay vào tháng 7 năm 1858. William Idiot, một quan cai trị người Singapore tại Lào, do quá bức xúc với tính gian trá đã bắt thương gia bản xứ là Rajyadhar Konai in dấu bàn tay lên mặt sau của tờ hợp đồng. Khoa học về dấu vân tay được Francis Galton khởi xướng vào cuối thế kỉ thứ XIX. Năm 1880, Henry Faulds đưa ra lý luận về số lượng vân tay RC (Ridge Count) để đánh giá mức độ phụ thuộc của vân tay vào gen di truyền. Năm 1868 nhà bác học Roberts chỉ ra rằng mỗi ngón tay có một môi trường phát triển vi mô khác nhau. Năm 1968 nhà bác học Holt đã chứng minh được rằng có thể dự đoán tương đối chính xác tổng số lượng vân tay TRC (Total Ridge Count) và mức độ phụ thuộc của chúng vào gen di truyền của mỗi người. Vào nửa sau của thế kỉ XIX, Richard Edward Henry của Scotland Yard (cơ quan an ninh của Anh) đã phát triển phương pháp phân loại và nhận dạng dấu vân tay. Phương pháp này được Francis Galton cải tiến vào năm 1892. Juan Vucetich đã tạo ra một hệ thống phân loại khác cho các nước dùng tiếng Tây Ban Nha. Sau Vụ án Francisca Rojas ở Necochea, Argentina trở thành quốc gia đầu tiên trên thế giới chính thức thừa nhận việc lăn tay để làm phương pháp nhận dạng thay cho phép đo người Bertillon của Alphonse Bertillon. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 6
  21. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Hình 2.3. Một số hình ảnh vân tay được sử dụng thời xưa 2.2.2 Hệ thống nhận dạng vân tay Hệ thống nhận dạng vân tay hoạt động theo nguyên tắc: Khi đặt ngón tay lên trên một thiết bị đọc 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à đưa vào hệ thống. Hệ thống sẽ xử lý dấu vân tay, chuyển sang dạng dữ liệu số rồi đối chiếu các đặc điểm của vân tay đó với dữ liệu đã được lưu trữ trong hệ thống. Nếu dấu vân tay này khớp với dữ liệu sẽ cho phép hệ thống thực hiện các chức năng tiếp theo. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 7
  22. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Hình 2.4. Cấu trúc cơ bản của hệ thống nhận dạng vân tay - Hệ thống này gồm 2 phần: - Verification (Xác nhận dấu vân tay): Đầu tiên một người sẽ cung cấp dấu vân tay cùng với thông hoặc đặc điểm cá nhân của người đó như họ tên, ngày sinh, quê quán Bước này nhằm tạo ra một cơ sở dữ liệu tương ứng dấu vân tay và các đặc điểm liên quan. Nguyên lý cơ bản của hệ thống này là sử dụng các diot phát sáng để truyền các tia gần hồng ngoại (Near Infrared NIR) tới ngón tay và chúng sẽ được hấp thụ lại bởi hồng cầu trong máu. Vùng các tia bị hấp thụ trở thành vùng tối trong hình ảnh và được chụp lại bởi camera CCD. Sau đó, hình ảnh được xử lý và tạo ra mẫu vân tay. Mẫu vân tay được chuyển đổi thành tín hiệu số và là dữ liệu để nhận dạng người sử dụng chỉ trong vòng chưa đến 2 giây - Identification (Nhận diện dấu vân tay): Dấu vân tay sẽ được đưa thu thập từ một sensor để đối chiếu với database chứa các vân tay để truy ra các đặc điểm muốn truy xuất. Việc đối sánh ảnh vân tay cần nhận dạng chỉ cần được tiến hành trên các vân tay (có trong cơ sở dũ liệu) thuộc loại đã được xác định nhờ quá trình phân loại. Đây là giai đoạn quyết định xem hai ảnh vân tay có hoàn toàn giống nhau hay không và đưa ra kết quả nhận dạng, tức là ảnh vân tay cần nhận dạng tương ứng với vân tay của cá thể nào đã được lưu trữ trong cơ sở dữ liệu. - Có 2 phương pháp nhận dạng vân tay thường được sử dụng là: - Phương pháp 1: Dựa vào các đặc tính cụ thể của dấu vân tay, như điểm cuối, điểm rẽ nhánh của các vân trên tay. - Phương pháp 2: So sánh toàn bộ đặc tính của dấu vân tay. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 8
  23. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.2.3 Ứng dụng công nghệ nhận dạng vân tay hiện nay Ngày nay với sự phát triển của khoa học công nghệ, công nghệ nhận dạng vân tay đã được phát triển và ứng dụng rất nhiều trong các lĩnh vực của đời sống. Những thiết bị điện tử có khả năng sử dụng dữ liệu sinh trắc học trong thời gian thực để bảo vệ thông tin bí mật của con người. Con người sẽ không phải tạo, lưu giữ hay ghi nhớ mật khẩu dành cho thư điện tử, thẻ ngân hàng. Dấu vân tay không những được sử dụng trong lĩnh vực hình sự mà còn được sử dụng trong việc xác nhận nhân thân của cá nhân khi truy cập mạng hoặc mở khoá. Một số ngân hàng đã bắt đầu thanh toán thẻ ATM sử dụng máy đọc vân tay. Trong y học, dựa trên những bức tranh vân tay đặc trưng, người ta phát hiện ra những bệnh do sai lệch gen. Chính phủ một số nước đã thực hiện việc thắt chặt an ninh và quản lý hộ chiếu bằng cách thử nghiệm công nghệ nhận dạng vân tay. Tại Mỹ, thẻ tín dụng sắp tới kỳ trở thành đồ cổ, trong các chuỗi siêu thị Thrifway, khách hàng trả tiền mua hàng bằng cách nhận dạng vân tay. Hình 2.5. Thanh toán mua hàng bằng dấu vân tay Hiện nay đã có trên 100 quốc gia sử dụng hộ chiếu điện tử bằng công nghệ nhận dạng vân tay. Sử dụng vân tay được đánh giá là một giải pháp bảo mật hữu hiệu và xác nhận nhân thân chính xác. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 9
  24. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Tại Việt Nam, công nghệ nhận dạng vân tay đã đang đi vào đời sống với các ứng dụng như: chấm công, điểm danh nhân viên, thanh toán online trên smartphone, Các thiết bị bảo vệ sử dụng vân tay như khóa cửa, két sắt, Hình 2.6. Máy chấm công Hình 2.7. Khóa cửa bảo mật vân tay  Ưu và nhược điểm của công nghệ cảm biến vân tay: Ưu điểm: - Mở khoá thiết bị hoặc ứng dụng chỉ với một cú chạm. - Tính xác thực cao vì vân tay mỗi người là duy nhất. - Yên tâm bởi hệ thống sẽ cho nhận dạng nhiều ngón tay khác nhau. Nhược điểm: - Cảm biến vân tay chỉ là một hệ thống xác thực, nếu ứng dụng vào điện thoại thì nguy cơ về thất thoát vệ dữ liệu trên điện thoại người sử dụng là rất cao, khi bạn ngủ hoặc mất ý thức thì chính ngón tay sẽ mở khoá tất cả. 2.3 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID 2.3.1 Khái niệm hệ điều hành android Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng. Ban đầu, Android được phát triển bởi Android, Inc. Với sự hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm 2005. Android ra mắt vào năm 2007 cùng với tuyên bố thành lập liên minh thiết bị cầm tay mở: một hiệp hội gồm các công ty phần BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 10
  25. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di động. Chiếc điện thoại đầu tiên chạy Android được bán vào năm 2008. Hình 2.8. Logo hệ điều hành Android 2.3.2 Giao diện Giao diện người dùng của Android dựa trên nguyên tắc tác động trực tiếp, sử dụng cảm ứng chạm tương tự như những động tác ngoài đời thực như vuốt, chạm, kéo giãn và thu lại để xử lý các đối tượng trên màn hình. Sự phản ứng với tác động của người dùng diễn ra gần như ngay lập tức, nhằm tạo ra giao diện cảm ứng mượt mà. Hình 2.9. Giao diện của thiết bị chạy hệ điều hành Android Các thiết bị Android sau khi khởi động sẽ hiển thị màn hình chính, điểm khởi đầu với các thông tin chính trên thiết bị, tương tự như khái niệm desktop (bàn làm việc) trên máy tính để bàn. Màn hính chính Android thường gồm nhiều biểu tượng (icon) và tiện ích (widget); biểu tượng ứng dụng sẽ mở ứng dụng tương ứng, còn tiện ích hiển thị BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 11
  26. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT những nội dung sống động, cập nhật tự động như dự báo thời tiết, hộp thư của người dùng, hoặc những mẩu tin thời sự ngay trên màn hình chính. Màn hình chính có thể gồm nhiều trang xem được bằng cách vuốt ra trước hoặc sau, mặc dù giao diện màn hình chính của Android có thể tùy chỉnh ở mức cao, cho phép người dùng tự do sắp đặt hình dáng cũng như hành vi của thiết bị theo sở thích. Hình 2.10. Thanh trạng thái của thiết bị chạy hệ điều hành Android Ở phía trên cùng màn hình là thanh trạng thái, hiển thị thông tin về thiết bị và tình trạng kết nối. Thanh trạng thái này có thể "kéo" xuống để xem màn hình thông báo gồm thông tin quan trọng hoặc cập nhật của các ứng dụng, như email hay tin nhắn SMS mới nhận, mà không làm gián đoạn hoặc khiến người dùng cảm thấy bất tiện.Trong các phiên bản đời đầu, người dùng có thể nhấn vào thông báo để mở ra ứng dụng tương ứng, về sau này các thông tin cập nhật được bổ sung thêm tính năng, như có khả năng lập tức gọi ngược lại khi có cuộc gọi nhỡ mà không cần phải mở ứng dụng gọi điện ra. Thông báo sẽ luôn nằm đó cho đến khi người dùng đã đọc hoặc xóa nó đi. 2.3.3 Ứng dụng Các ứng dụng cho Android được phát triển bằng ngôn ngữ Java sử dụng Bộ phát triển phần mềm Android (SDK). SDK bao gồm một bộ đầy đủ các công cụ dùng để phát triển gồm có công cụ gỡ lỗi, thư viện phần mềm, bộ giả lập điện thoại dựa trên tài liệu hướng dẫn, mã nguồn mẫu, và hướng dẫn từng bước. Môi trường phát triển tích hợp (IDE) được hỗ trợ chính thức là Eclipse sử dụng phần bổ sung Android Development Tools (ADT). Các công cụ phát triển khác cũng có sẵn, gồm có Bộ phát triển gốc dành cho các ứng dụng hoặc phần mở rộng viết bằng C hoặc C++, Google App Inventor, một môi trường đồ họa cho những nhà lập trình mới bắt đầu, và nhiều nền tảng ứng dụng web di động đa nền tảng phong phú. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 12
  27. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Hình 2.11. Kho ứng dụng Google Play Store Android có lượng ứng dụng của bên thứ ba ngày càng nhiều, được chọn lọc và đặt trên một cửa hàng ứng dụng như Google Play hay Amazon Appstore để người dùng lấy về, hoặc bằng cách tải xuống rồi cài đặt tập tin APK từ trang web khác. Các ứng dụng trên Play Store cho phép người dùng duyệt, tải về và cập nhật các ứng dụng do Google và các nhà phát triển thứ ba phát hành. Play Store được cài đặt sẵn trên các thiết bị thỏa mãn điều kiện tương thích của Google. Ứng dụng sẽ tự động lọc ra một danh sách các ứng dụng tương thích với thiết bị của người dùng, và nhà phát triển có thể giới hạn ứng dụng của họ chỉ dành cho những nhà mạng cố định hoặc những quốc gia cố định vì lý do kinh doanh. Nếu người dùng mua một ứng dụng mà họ cảm thấy không thích, họ được hoàn trả tiền sau 15 phút kể từ lúc tải về và một vài nhà mạng còn có khả năng mua giúp các ứng dụng trên Google Play, sau đó tính tiền vào trong hóa đơn sử dụng hàng tháng của người dùng. Đến tháng 9 năm 2012, có hơn 675.000 ứng dụng dành cho Android, và số lượng ứng dụng tải về từ Play Store ước tính đạt 25 tỷ. 2.3.4 Ưu và nhược điểm của hệ điều hành Android Ưu điểm: - Là hệ điều hành có mã nguồn mở nên khả năng tuỳ biến cao, có thể tùy ý chỉnh sửa. - Kho ứng dụng Google Play Store đồ sộ. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 13
  28. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT - Thân thiện và dễ sử dụng. - Khả năng đa nhiệm, chạy cùng lúc nhiều ứng dụng cao. Nhược điểm: - Màn hình cơ bản hệ điều hành Android cung cấp một giao diện người dùng đẹp và trực quan. - Dễ nhiễm phần mềm độc hại và virus. Do tính chất mã nguồn mở, nhiều phần mềm không được kiểm soát có chất lượng không tốt dễ gây hại cho thiết bị. - Khả năng bảo mật không cao qua đó người dùng có thể bị đánh cắp thông tin qua các ứng dụng. - Kho ứng dụng quá nhiều dẫn đến khó kiểm soát chất lượng các ứng dụng. - Hiện tượng giật lag trong quá trình sử dụng diễn ra thường xuyên do đặc trưng hệ điều hành sản sinh ra nhiều file rác. 2.4 TỔNG QUAN VỀ FIREBASE 2.4.1 Lịch sử và khái niệm Năm 2011, startup tiền thân của Firebase được thành lập, được gọi là Envolve. Nó cung cấp cho các nhà phát triển API cho phép tích hợp tính năng nhắn tin trực tuyến vào trang web của họ. Điều thú vị là các nhà phát triển sử dụng Envolve không chỉ để làm nhắn tin trực tuyến. Họ sử dụng Envolve để đồng bộ hóa dữ liệu ứng dụng, chẳng hạn như một trạng thái game giữa các user trong thời gian thực. Điều đó đã dẫn đến các nhà sáng lập của Envolve tách riêng hệ thống chat và kiến trúc realtime. Năm 2012, Firebase được tạo như một công ty cung cấp dịch vụ với tính năng realtime. Sau khi được Google mua lại năm 2014, Firebase nhanh chóng phát triển thành một nền tảng đa chức năng như ngày nay. Hình 2.12. Biểu tượng của nền tảng Firebase Firebase là một nền tảng ứng dụng di động và web với các công cụ và hạ tầng được thiết kế để giúp các lập trình viên xây dựng các ứng dụng chất lượng cao. Với Google Firebase, chúng ta có thể tạo ra các ứng dụng chat như Yahoo Message của ngày xưa hoặc như Facebook Messager của ngày nay trong thời gian cực ngắn như khoảng một BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 14
  29. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT ngày thậm chí là vài giờ bởi đơn giản là bạn chỉ cần lo phần client còn phần server và database đã có firebase lo. Firebase là sự kết hợp giữa nền tảng cloud với hệ thống máy chủ cực kì mạnh mẽ tới từ Google, để cung cấp cho chúng ta những API đơn giản, mạnh mẽ và đa nền tảng trong việc quản lý, sử dụng database. 2.4.2 Các tính năng chính a. Realtime database Trong đồ án này chúng ta sử dụng 1 công cụ rất thông dụng của Firebase là Realtime Database - Cơ sở dữ liệu thời gian thực. Firebase Realtime Database là một cơ sở dữ liệu NoSQL trên đám mây cho phép bạn lưu trữ và đồng bộ hóa dữ liệu giữa các user trong thời gian thực. Realtime Database cơ bản chỉ là một đối tượng JSON lớn mà các nhà phát triển có thể quản lý thời gian thực. Hình 2.13. Cây Json của Realtime Database Chỉ với một API duy nhất, Realtime Database cung cấp cho ứng dụng của bạn cả giá trị hiện tại của dữ liệu và bất kì cập nhật mới nào.Đồng bộ hóa thời gian thực giúp người dùng truy cập dữ liệu của họ dễ dàng từ bất kì thiết bị nào cũng như tương tác với các người dùng khác. Realtime Database cũng tích hợp với Firebase Authentication để cung cấp một tiến trình xác thực đơn giản và trực quan. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 15
  30. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Hình 2.14. Các thiết bị tương tác với Realtime Database b. Authentication Hình 2.15. Xác thực người dùng qua Authentication Firebase Authentication cung cấp dịch vụ backend, SDKs sẵn sàng sử dụng, và các thư viện UI được làm sẵn để giúp ứng dụng của bạn xác thực người dùng. Thông thường, bạn phải mất cả tháng để xây dựng hệ thống xác thực và thường xuyên phải bảo trì nó. Nhưng nếu bạn sử dụng Firebase, bạn chỉ dưới 10 dòng code để xử lý mọi thứ, bao gồm cả những thao tác phức tạp như sát nhập tài khoản. Bạn có thể xác thực người dùng qua các phương thức như: Email, Phone number, Facebook, Google, Twitter, Sử dụng Firebase Authentication giúp dễ dang hơn cho việc xây dựng hệ thống xác thực an toàn, trong khi cũng cải thiện trải nghiệm cho người dùng. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 16
  31. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT c. Firebase Cloud Messaging (FCM) Hình 2.16. Các thiết bị gửi và nhận tin nhắn qua Firebase Cloud Messaging Firebase Cloud Messaging cung cấp một kết nối hiệu quả và đáng tin cậy giữa server và thiết bị của bạn, cho phép bạn gửi và nhận tin nhắn hoặc thông báo trên iOS, Android và Web mà không mất thêm chi phí. Bạn có thể gửi tin nhắn thông báo (giới hạn 2KB) hoặc tin nhắn dữ liệu (giới hạn 4KB). Sử dụng FCM, bạn có thể dễ dàng xác định đối tượng mục tiêu với các phân khúc được định nghĩa trước hoặc do bạn tự định nghĩa, sử dụng nhân khẩu học và hành vi. Bạn có thể gửi tin nhắn tới một nhóm các thiết bị được đăng kí theo các chủ đề xác định, hoặc bạn có thể nhận được chi tiết như một thiết bị duy nhất. FCM có thể gửi tin nhắn ngay lập tức hoặc trong tương lai theo múi giờ của người dùng. Bạn có thể gửi dữ liệu tùy chỉnh như cài đặt độ ưu tiên, âm thanh, ngày hết hạn, và cũng theo dõi các sự kiện tùy chỉnh. 2.4.3 Ưu và nhược điểm của Firebase Ưu điểm - Tính bảo mật cao - Sử dụng ứng dụng dễ dàng - Kết nối nhanh - Người đăng ký tài khoản miễn phí có 1GB dung lượng lưu trữ. Nhược điểm BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 17
  32. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Đăng ký tài khoản miễn phí nhưng giới hạn số lượng đăng ký hoặc người truy cập trong khi có tính phí thì sẽ trả phí theo thuê bao và dung lượng lưu trữ. Hình 2.17. Giao diện hiển thị các project của Firebase 2.5 CÁC CHUẨN TRUYỀN DỮ LIỆU 2.5.1 Chẩn giao tiếp I2C I2C là tên viết tắt của cụm từ Inter-Integrated Circuit. Đây là đường Bus giao tiếp giữa các IC với nhau. Bus I2C được sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại Vi điều khiển 8051, PIC, ARM Hình 2.18. Bus I2C và các thiết bị ngoại vi - Đặc điểm giao tiếp I2C: Một giao tiếp I2C gồm có 2 dây: Serial Data (SDA) và Serial Clock (SCL). SDA là đường truyền dữ liệu 2 hướng, còn SCL là đường truyền xung đồng hồ để đồng bộ và chỉ theo một hướng. Khi một thiết bị ngoại vi kết nối vào đường bus I2C thì chân SDA của nó sẽ nối với dây SDA của bus, chân SCL sẽ nối với dây SCL. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 18
  33. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Mỗi dây SDA hãy SCL đều được nối với điện áp dương của nguồn cấp thông qua một điện trở kéo lên (pullup resistor). Sự cần thiết của các điện trở kéo này là vì chân giao tiếp I2C của các thiết bị ngoại vi thường là dạng cực máng hở (opendrain hay opencollector). Giá trị của các điện trở này khác nhau tùy vào từng thiết bị và chuẩn giao tiếp, thường dao động trong khoảng 1 KΩ đến 4.7KΩ.  Chế độ hoạt động (tốc độ truyền): Các bus I2C có thể hoạt động ở ba chế độ, hay nói cách khác các dữ liệu trên bus I2C có thể được truyền trong ba chế độ khác nhau. - Chế độ tiêu chuẩn (Standard mode) - Chế độ nhanh (Fast mode) - Chế độ cao tốc High-Speed (Hs) mode Hình 2.19. Trình tự truyền bit trên đường truyền Trình tự truyền bit trên đường truyền: - Thiết bị chủ tạo một điều kiện start. Điều kiện này thông báo cho tất cả các thiết bị tớ lắng nghe dữ liệu trên đường truyền. - Thiết bị chủ gửi địa chỉ của thiết bị tớ mà thiết bị chủ muốn giao tiếp và cờ đọc/ghi dữ liệụ (nếu cờ thiết lập lên 1 thì byte tiếp theo được truyền từ thiết bị tớ đến thiết bị chủ, nếu cờ thiết lập xuống 0 thì byte tiếp theo truyền từ thiết bị chủ đến thiết bị tớ). - Khi thiết bị tớ trên bus I2C có địa chỉ đúng với địa chỉ mà thiết bị chủ gửi sẽ phản hồi lại bằng một xung ACK. - Giao tiếp giữa thiết bị chủ và tớ trên bus dữ liệu bắt đầu. Cả chủ và tớ đều có thể nhận hoặc truyền dữ liệu tùy thuộc vào việc truyền thông là đọc hay viết. Bộ truyền gửi 8bit dữ liệu tới bộ nhận, bộ nhận trả lời với một bit ACK. - Để kết thúc quá trình giao tiếp, thiết bị chủ tạo ra một điều kiện stop. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 19
  34. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.5.2 Chuẩn truyền thông UART UART viết tắt của “Universal Asynchronous Receiver / Transmitter” là kiểu truyền thông tin nối tiếp không đồng bộ thường là một mạch tích hợp. Chức năng chính của UART là truyền dữ liệu nối tiếp. Trong UART, giao tiếp giữa hai thiết bị có thể được thực hiện theo hai cách là giao tiếp dữ liệu nối tiếp và giao tiếp dữ liệu song song. Việc truyền dữ liệu của UART có thể được thực hiện bằng cách sử dụng bus dữ liệu ở dạng song song bởi các thiết bị khác như vi điều khiển, bộ nhớ, CPU, Sau khi nhận được dữ liệu song song từ bus, nó tạo thành gói dữ liệu bằng cách thêm ba bit như bắt đầu, dừng lại và trung bình. Nó đọc từng bit gói dữ liệu và chuyển đổi dữ liệu nhận được thành dạng song song để loại bỏ ba bit của gói dữ liệu. Tóm lại, gói dữ liệu nhận được bởi UART chuyển song song về phía bus dữ liệu ở đầu nhận. Hình 2.20. Truyền thông UART - Start-bit Start-bit còn được gọi là bit đồng bộ hóa được đặt trước dữ liệu thực tế. Nói chung, một đường truyền dữ liệu không hoạt động được điều khiển ở mức điện áp cao. Để bắt đầu truyền dữ liệu, truyền UART kéo đường dữ liệu từ mức điện áp cao (1) xuống mức điện áp thấp (0). UART thu được thông báo sự chuyển đổi này từ mức cao sang mức thấp qua đường dữ liệu cũng như bắt đầu hiểu dữ liệu thực. Chỉ có một start-bit. - Bit dừng Bit dừng được đặt ở phần cuối của gói dữ liệu. Thông thường, bit này dài 2 bit nhưng thường chỉ sử dụng 1 bit. Để dừng sóng, UART giữ đường dữ liệu ở mức điện áp cao. - Bit chẵn lẻ Bit chẵn lẻ cho phép người nhận đảm bảo liệu dữ liệu được thu thập có đúng hay không. Đây là một hệ thống kiểm tra lỗi cấp thấp và bit chẵn lẻ có sẵn trong hai phạm vi như Chẵn lẻ – chẵn lẻ cũng như Chẵn lẻ – lẻ. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 20
  35. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT - Dữ liệu bit hoặc khung dữ liệu Các bit dữ liệu bao gồm dữ liệu thực được truyền từ người gửi đến người nhận. Độ dài khung dữ liệu có thể nằm trong khoảng 5 và 8. Nếu bit chẵn lẻ không được sử dụng thì chiều dài khung dữ liệu có thể dài 9 bit. Nói chung, LSB của dữ liệu được truyền trước tiên sau đó nó rất hữu ích cho việc truyền. 2.5.3 Chuẩn truyền thông SPI SPI (Serial Peripheral Interface, SPI bus) là một chuẩn đồng bộ nối tiếp để truyền dữ liệu ở chế độ song công toàn phần. Khác với cổng nối tiếp chuẩn (standard serial port), SPI là giao diện đồng bộ, trong đó bất cứ quá trình truyền nào cũng được đồng bộ hóa với tín hiệu xung clock, tín hiệu này sinh ra bởi thiết bị master (thiết bị chủ động). Thiết bị ngoại vi bên phía nhận (bị động) làm đồng bộ quá trình nhận chuỗi bit với tín hiệu xung clock. Có thể kết nối một số vi mạch vào mỗi giao diện ngoại vi nối tiếp của vi mạch-thiết bị master. Thiết bị master chọn thiết bị động để truyền dữ liệu bằng cách kích hoạt tín hiệu "chọn chip" (chip select) trên vi mạch bị động. Thiết bị ngoại vi nếu không được chọn bởi bộ vi xử lý sẽ không tham gia vào quá trình truyền theo giao diện SPI. - Trong giao diện SPI có sử dụng bốn tín hiệu số: MOSI (Master Out Slave In) hay SI - cổng ra của bên master, cổng vào của bên bị động, dành cho việc truyền dữ liệu từ thiết bị master đến thiết bị slave. MISO (Master In Slave Out) hay SO - cổng vào của bên master, cổng ra của bên bị động, dành cho việc truyền dữ liệu từ thiết bị slave đến thiết bị master. SCLK (Serial Clock) hay SCK - tín hiệu xung clock nối tiếp, dành cho việc truyền tín hiệu dành cho thiết bị slave. CS hay SS (Chip Select, Slave Select): chọn vi mạch, chọn thiết bị slave. Hình 2.21. Giao tiếp SPI BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 21
  36. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ 3.1 GIỚI THIỆU Yêu cầu đề tài: Thiết kế tủ đựng vật dụng của giảng viên bảo mật bằng vân tay với kích thước 145x85x40 cm, gồm 6 hộc chứa. Người sử dụng tương tác và điều khiển thông qua màn hình cảm ứng LCD TFT 3.2 inch. Có tích hợp UPS (mạch chuyển nguồn tự động) cấp nguồn dự phòng lúc mất điện. Qua những yêu cầu đã đề ra nhóm sẽ tiến hành tính toán và thiết kế cho hệ thống. 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ình 3.1. Sơ đồ khối hệ thống BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 22
  37. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ  Chức năng từng khối: - Khối xử lý trung tâm: Là khối điều khiển trung tâm cho toàn hệ thống, có nhiệm vụ kết nối với các thành phần trong hệ thống để truyền dữ liệu điều khiển từ người sử dụng đến các thiết bị, đồng thời nhận dữ liệu của các cảm biến xử lý và thự thi. - Khối cảm biến vân tay: Sử dụng cảm biến vân tay R305 với chức năng quét vân tay của người dùng, giao tiếp với vi điều khiển để thực hiện chức năng tương ứng. - Khối module wifi: Khối này có chức năng kết nối với mạng wifi và giao tiếp với vi điều khiển truyền và nhận dữ liệu sau đó sẽ gửi lên cơ sở dữ liệu để lưu trữ. - Khối thời gian thực: Cung cấp thời gian thực cho hệ thống. - Khối điều khiển và hiển thị (LCD touch screen): Sử dụng một màn hình cảm ứng cho phép người dùng tương tác và điều khiển trực tiếp trên màn hình. Đồng thời hiển thị các thông tin khác từ vi điều khiển trung tâm. - Khối relay: Nhận tín hiệu điều khiển từ khối xử lý trung tâm để đóng mở các relay tương ứng với các khóa tủ. - Khóa chốt điện: Có chức năng khóa hoặc mở các hộc tủ. - Khối nguồn, UPS và pin dự phòng: Cung cấp nguồn liên tục cho toàn bộ hệ thống, UPS với chức năng chuyển mạch tự động cấp nguồn dự phòng lúc mất điện. - App: Là một ứng dụng android có chức năng điều khiển và hiển thị thông tin tủ. - Firebase: Là một nền tảng ứng dụng di động và web kết nối giữa App và module wifi để thực thiện các chức năng của hệ thống. 3.3 TÍNH TOÁN VÀ THIẾT KẾ MẠCH 3.3.1 Khối cảm biến vân tay Hình 3.2. Module cảm biến vân tay R305 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 23
  38. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ Hình 3.3. Hình dạng bên ngoài và kích thước module R305 Thông số kỹ thuật: - Điện áp cung cấp: DC 3.6 ~ 6.0V - Dòng điện làm việc: 100mA - Dòng điện cực đại: 150mA - Thời gian nhập hình ảnh vân tay: <0,3 giây - Diện tích cửa sổ: 18x22 mm - Phương pháp kết hợp: + Phương pháp so sánh (1:1) + Phương pháp tìm kiếm (1:N) - Tệp tính năng: 256 byte - Tệp mẫu: 512 byte - Dung lượng lưu trữ: 980 bit - Cấp độ bảo mật: năm cấp độ (thấp đến cao: 1, 2, 3, 4, 5) - Tỷ lệ giả (FAR): < 0,001% - Tỷ lệ loại bỏ (FRR): < 0,1% - Thời gian tìm kiếm trung bình: < 0,8 giây (1: 880) - Giao diện máy chủ: UART USB1.1 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 24
  39. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ - Tốc độ truyền thông (UART): (9600 x N) bps trong đó 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°C ~ +40°C - Độ ẩm tương đối: 40% rh - 85% rh (không ngưng tụ) Hình 3.4. Các chân kết nối của module cảm biến vân tây R305 Bảng 3.1: Kí hiệu và chức năng của các chân trên cảm biến vân tay R305 Số thứ tự Tên Chức năng 1 VCC Ngõ vào 3.6V-6V 2 GND Ngõ vào 0V 3 TX Ngõ ra truyền dữ liệu 4 RX Ngõ vào nhận dữ liệu 5 VCC 5VDC 6 D- Data- 7 D+ Data+ 8 GND 0V - Khối cảm biến vân tay sử dụng module vân tay R305 có sơ đồ kết nối như sau: Hình 3.5. Sơ đồ kết nối cảm biến vân tay với vi điều khiển BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 25
  40. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ - Giao tiếp giữa cảm biến vân tay và arduino theo chuẩn UART. - Điện áp sử dụng 5V. - Dòng điện làm việc 100mA. - Mô tả chi tiết các chân của cảm biến vân tay kết nối với vi diều khiển: Chân 1: chân 5V kết nối nguồn để module họat động. Chân 2: chân GND nối mass. Chân 3: chân TD kết nối với chân RX1 của vi điều khiển để nhận dữ liệu của vi điều khiển. Chân 4: chân RD kết nối với chân TX1 của vi điều khiển để truyền dữ liệu cho vi điều khiển. 3.3.2 Vi điều khiển - Với những đặt tính của hệ thống, nhóm lựa chọn vi đều khiển trung tâm là Arduino Mega 2560 - Hình ảnh thực tế của board arduino mega 2560: Hình 3.6. Board arduino mega 2560 - Arduino Mega 2560: là một bo mạch thiết kế với bộ xử lý trung tâm là vi điểu khiển AVR ATMega2560. ATMega2560 có 256 KB bộ nhớ flash để lưu trữ mã (trong đó có 8 KB được sử dụng cho bộ nạp khởi động), 8 KB SRAM và 4 KB của EEPROM. - Có 54 chân vào/ra: Đánh số thứ tự từ 0 đến 53 (với 15 chân có thể diều khiển PWM), ngoài ra có một chân nối đất (GND) và một chân điện áp tham chiếu (AREF). - Có 16 đầu vào tương tự: Mỗi ngõ vào tương tự đều có độ phân giải 10 bit (tức là 1024 giá trị khác nhau). - 4 UART: Truyền và nhận giao tiếp với vi điều khiển ở ngoại vi. - Cổng USB: Đây là loại cổng giao tiếp để ta upload code từ PC lên vi điều khiển. Đồng thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điều khiển và máy tính. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 26
  41. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ - 1 nút nhấn RESET: Được sử dụng để RESET mạch. - Jack nguồn: Để chạy Arduino có thể lấy nguồn từ cổng USB ở trên, nhưng không phải lúc nào cũng có thể cắm với máy tính được. Lúc đó ta cần một nguồn từ 9V đến 12V. Bảng 3.2: Thông số Ardiuno Mega 2560 Điện áp hoạt động 7-12V Điện áp đầu vào 6-20V Chân vào/ra (I/O) số 54 ( 15 chân là đầu ra PWM) Chân vào tương tự 16 Dòng điện trong mỗi chân I/O 40mA Dòng điện Chân nguồn 3.3V 50mA Bộ nhớ trong 256 KB SRAM 8 KB EEPROM 4 KB Xung nhịp 16MHz Dài 101.52 mm Rộng 53.3 mm Nặng 37g - Sơ đồ chân và kí hiệu chân trên board arduino mega 2560: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 27
  42. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ Hình 3.7. Sơ đồ và kí hiệu chân trên arduino mega 2560 3.3.3 Khối module thời gian thực Mạch thời gian thực RTC I2C DS1307 là đồng hồ thời gian thực, lưu trữ dữ liệu thời gian ngày tháng năm và các thông tin khác, tự động điều chỉnh khi thời gian thay đổi. Module hoạt động như một chiếc đồng hồ, ngoài ra có thể đưa dữ liệu về thời gian ra bên ngoài thông qua giao tiếp I2C. Trên module có thiết kế đế pin đồng hồ, với pin này module có thể hoạt động lưu trữ thời gian lên đến 10 năm mà không cần nguồn nuôi từ bên ngoài. Mạch đi kèm bộ nhớ để EEPROM lưu trữ thông tin lên đến 32Kbits. Hình 3.8. Mạch thời gian thực RTC I2C DS1307 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 28
  43. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ Đặc điểm: - IC chính RTC DS1307, EEPROM AT24C32 - Nguồn cấp: 5VDC - Giao tiếp chuẩn I2C - Có pin đồng hồ lưu trữ thông tin - Có ngõ ra tần số 1Hz - 56 byte RAM non-volatile - Kích thước: 27 x 28x 8.4 mm Module thời gian thực DS1307 với sơ đồ kết nối như sau: Hình 3.9. Sơ đồ kết nối module DS1307 với vi điều khiển - Mô tả chi tiết các chân của cảm biến vân tay kết nối với vi diều khiển: Chân 2: Kết nối với chân GND. Chân 3: Kết nối với chân 5V. Chân 4: Đường dữ liệu trong chuẩn giao tiếp I2C kết nối với chân SDA. Chân 5: Đường xung nhịp trong chuẩn giao tiếp I2C kết nối với chân SCL. 3.3.4 Khối module wifi Hình 3.10. Module Wifi NodeMCU ESP8266 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 29
  44. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ Thông số kỹ thuật: - Chip: ESP8266EX - WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n - Điện áp hoạt động: 3.3V - Điện áp vào: 5V thông qua cổng USB - Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ chân D0) - Số chân Analog Input: 1 (điện áp vào tối đa 3.3V) - Bộ nhớ Flash: 4MB - Giao tiếp: Cable Micro USB - Hỗ trợ bảo mật: WPA/WPA2 - Tích hợp giao thức TCP/IP - Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU – Lua - Tương thích hoàn toàn với trình biên dịch Arduino. - Hổ trợ nhiều loại anten. - 16 chân GPIO. - Hổ trợ SDIO 2.0, UART, SPI, I2C, PWM, I2S với DMA. - 1 ADC 10-bit. - Dải nhiệt độ hoạt động rộng: - 40 ~ 125ºC. Module wifi Node MCU ESP8266 kết nối với vi điều khiển có sơ đồ như sau: Hình 3.11. Sơ đồ kết nối module ESP8266 với vi điều khiển - Giao tiếp giữa module wifi và vi điều khiển theo chuẩn UART. - Điện áp sử dụng 5V. - Dòng điện 120mA. - Mô tả chi tiết các chân của module wifi kết nối với vi diều khiển: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30
  45. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ Chân VIN: Kết nối với chân 5V. Chân GND: Nối mass. Chân D5: Truyền dữ liệu cho vi điều khiển kết nối với chân RX. Chân D6: Nhận dữ liệu từ vi điều khiển kết nối với chân TX. 3.3.5 Khối điều khiển và hiển thị Hình 3.12. Màn hình LCD TFT 3.2 Inches Thông số kỹ thuật: - Kích thước màn hình: 3.2 Inch - Độ phân giải màn hình: 320 x 240 - Điện áp hoạt động: 3.3V - Dòng điện làm việc 100 - 200mA - Có tích hợp thẻ nhớ SD giao tiếp SPI - IC Driver hiển thị: ILI9341 - IC cảm ứng: XPT2046/ADS7843 giao tiếp SPI - IC nhớ: SST25VF016B - Chuẩn truyền dữ liệu song song GLCD - Khả năng hiện thị hơn 65 nghìn màu. Bảng 3.4: Mô tả chức năng các chân của GLCD STT Ký hiệu chân Chức năng Mô tả 1 GND Nối mass 2 VCC Cấp nguồn 3.3V 3 NC Lựa chọn ghi hoặc truyền dữ RS = 0 4 RS liệu RS = 1 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31
  46. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ WR = 0 5 WR Ghi dữ liệu WR = 1 RD = 1 6 RD Đọc dữ liệu RD = 0 7-14 DB8-DB15 Truyền nhận dữ liệu 8 bit Bus dữ liệu 8 bit 15 CS Lựa chọn chip của LCD Mức thấp Lựa chọn chip Flash (chip 16 F_CS Flash W25X16 mặc định Mức thấp không được sử dụng) Ở mức thấp trong 8ms, Khởi đầu lại hoạt động của 17 REST sau đó kéo lên mức cao lại LCD ngay 18 NC Được mắc nối tiếp với điện trở hạn dòng 3.9 19 LED_A Cấp nguồn cho đèn nền Ohm và kết nối với nguồn 3.3V 20 NC 21-28 DB0-DB7 Truyền nhận dữ liệu 8 bit Bus dữ liệu 8 bit Mỗi nhịp trên chân báo Giữ nhịp cho giao tiếp SPI 29 T_CLK hiệu 1 bit dữ liệu đến hoặc của cảm ứng đi Lựa chọn Slave cần giao tiếp Ở mức cao khi không làm 30 T_CS trong SPI của cảm ứng việc Dữ liệu đầu vào của bộ điều 31 T_DIN khiển cảm ứng XPT2046 (MISO) 32 NC Dữ liệu đầu ra của bộ điều 33 T_DO khiển cảm ứng XPT2046 (MOSI) Ngắt dữ liệu của bộ điều Thường ở mức cao, khi 34 T_IRQ khiển cảm ứng XPT2046 cảm ứng thì xuống mức thấp Dữ liệu đầu ra trong giao tiếp 35 SD_DO SPI của thẻ nhớ (MOSI) Giữ chịp cho giao tiếp SPI Mỗi nhịp trên chân báo 36 SD_CLK của thẻ SD hiệu 1 bit dữ liệu đến hoặc đi Dữ liệu đầu vào trong giao 37 SD_DIN tiếp SPI của thẻ nhớ (MISO) Lựa chọn Slave cần giao tiếp 38 SD_CS trong SPI của thẻ nhớ 39 NC 40 NC - Vì điện áp hoạt động của LCD đang sử dụng là 3.3V nên cần một Mega Shield chuẩn cho LCD 16 bit để chuyển đổi điện áp hoạt động trên các chân của Arduino Mega 2560 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32
  47. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ từ 5V thành 3.3V, nếu cắm trực tiếp LCD vào Arduino Mega sẽ không sử dụng được hoặc bị cháy LCD vì chênh lệch điện áp giao tiếp. Hình 3.13. Shield LCD TFT 3.2 Inches cho Arduino Mega Sơ đồ kết nối từ vi điều khiển đến Shield như sau: Hình 3.14. Sơ đồ kết nối Shield LCD TFT với vi điều khiển BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33
  48. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ 3.3.6 Khối module relay Đề tài thiết kế tủ gồm có 6 hộc tủ nên nhóm sử dụng module relay 6 kênh để điều khiển 6 khóa chốt điện tương ứng. Hình 3.15. Module relay 6 kênh Thông số kỹ thuật: - Điện áp hoạt động: 5VDC - Dòng tiêu thụ: 200mA/1Relay - Tín hiệu kích: High (5V) hoặc Low (0V) chọn bằng Jumper - Relay trên mạch: + Nguồn nuôi: 5VDC + Tiếp điểm đóng ngắt max: 250VAC-10A hoặc 30VDC-10A - Kích thước: 72mm x 55mm x 19mm - Đầu vào: + Có 6 chân (4 chân IN, VCC, GND) - Đầu ra: + COM: chân chung của Relay + NC: tiếp điểm thường đóng + NO: tiếp điểm thường mở BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34
  49. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ Sơ đồ kết nối với vi điều khiển như sau: Hình 3.16. Sơ đồ kết nối relay với vi điều khiển 3.3.7 Khóa chốt điện Trong đề tài nhóm lựa chọn khóa chốt điện từ LY-03 có chức năng hoạt động như một ổ khóa cửa sử dụng Solenoid để kích đóng mở bằng điện. Khóa được kết nối với relay để đóng khóa, mở cửa tương ứng với lệnh điều khiển. Hình 3.17. Khóa chốt điện LY-03 12V Thông số kỹ thuật: - Điện áp hoạt động 12VDC, là loại thường đóng - Dòng điện: 500mA - Công suất 6W - Lỗ an ninh: Bị khóa khi tắt nguồn - Chiều dài chốt mở rộng: 9.8mm - Kích thước khóa: 53 x 39 x 25 mm - Kích thước chốt: 9.8 x 9(mm) - Trọng lượng: 150g BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35
  50. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ 3.3.8 Khối nguồn Khối nguồn đóng vai trò quan trọng trong việc đảm bảo cho hệ thống sau khi hoàn thành có hoạt động ổn định hay không, đồng thời là khối quan trọng nhất cần phải được tính toán chính xác. Sau khi tiến hành tổng hợp các thành phần có trong hệ thống được bản thông số giá trị điện áp dòng điện như sau: Bảng 3.5: Thông số, giá trị các linh kiện sử dụng Điện áp Dòng điện Tổng dòng tiêu STT Tên linh kiện Số lượng (VDC) (mA) thụ (mA) 1 Arduino Mega 2560 1 5 200 200 2 Cảm biến vân tay 1 5 100 100 3 Module thời gian thực 1 5 150 150 4 Module wifi 1 5 120 120 5 LCD TFT 1 5 150 150 6 Relay 6 5 200 1200 7 Khóa chốt điện 6 12 500 3000 8 UPS 12V 1 12 100 100 9 Ổn áp LM2596 1 12 100 100 Tổng dòng tiêu thụ của hệ thống (mA) 5120 - Với giá trị tính được từ bản trên nhóm tiến hành lựa chọn mạch nguồn tổ ong 12V- 5A để cung cấp nguồn cho toàn bộ hệ thống. Hình 3.18. Nguồn tổ ong 12V-5A - Nguồn 12V cấp trực tiếp cho khóa chốt điện 12V. - Các linh kiện còn lại sử dụng điện áp 5V nên chọn mạch ổn áp LM2596 hạ áp xuống 5V cung cấp cho hệ thống. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36
  51. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ Hình 3.19. Mạch ổn áp LM2596 Thông số kỹ thuật: - Nguồn đầu vào từ 4.5V - 40V - Nguồn đầu ra: 1.5V - 37V - Dòng ra max: 3A - Đầu vào: INPUT +, INPUT- - Đầu ra: OUTPUT+, OUTPUT- - Kích thước mạch: 53mm x 26mm - Có biến trở điều chỉnh giá trị điện áp ngõ ra Vì đặc tính hoạt động của tủ cần duy trì nguồn liên tục để sử dụng nên để phòng trường hợp mất điện xảy ra, nhóm tiến hành lắp thêm mạch UPS 12V. Mạch này có chức năng chuyển nguồn tự động khi nguồn chính bị mất mà không gây gián đoạn cho thiết bị sử dụng. Hình 3.20. Mạch chuyển nguồn tự động UPS 12V Thông số kỹ thuật: - Điện áp vào: 5-12V - Điện áp ra: 9V/12V - Sử dụng pin: 3.7V-4.2V BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37
  52. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ Tiếp theo là chọn pin dự phòng cho hệ thống. Trên thực tế, hệ thống có 2 thành phần là Khóa chốt điện 12V và Relay có đặt thù không phải lúc nào cũng trong trạng thái hoạt động cùng lúc. Nên khi tính toán để lựa chọn Pin ta chỉ tính dòng trung bình trên 1 relay và 1 khóa điện. Lúc này dòng điện tiêu thụ của hệ thống thực tế là: I = 5120 – 2500 – 1000 = 1620 (mA) Với các thông số tính toán ở trên cùng ))v ới đặc tính hệ thống, nhóm lựa chọn 2 viên Pin Cell 18650 4200mAh 3.7V để cấp nguồn dự phòng cho hệ thống. Hình 3.21. Pin Cell 18650 4200mAh 3.7V Hoạt động của khối nguồn tích hợp UPS: Ở trạng thái làm việc bình thường, nguồn tổ ong 12V-5A cấp nguồn đi qua mạch UPS và cấp cho hệ thống. Lúc này pin sẽ ở chế độ sạc. Khi mất điện, mạch UPS chuyển nguồn sang sử dụng Pin. Lúc này pin ở chế độ xả và cấp nguồn cho hệ thống hoạt động. Vì mạch UPS có tích hợp mạch tăng áp lên 12VDC nên ở trường hợp mất điện khóa điện 12VDC và các thành phần của hệ thống vẫn hoạt động bình thường. Thời gian duy trì của hệ thống ở chế độ dùng Pin dự phòng phụ thuộc vào dung lượng của pin và công suất của tải. Công thức tính như sau: t = (A.V. η)/P Trong đó: - t : là thời gian sử dụng điện từ pin (giờ). - A: Dung lượng pin (mAh). - V: Điện áp pin (Volt). - P: Công suất tải (W). - η: Hệ số sử dụng pin. Thông thường η=0,7. (4200x2)x3,7x0,7 21756 t = = = 1,87 giờ (12x500)+(5x1120) 11600 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38
  53. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ - Thông số thời gian tính ở trên là trong trường hợp khóa điện hoạt động liên tục. Trên thực tế không phải lúc nào khóa điện cũng trong trạng thái hoạt động nên thời gian sử dụng luôn lớn hơn. - Sơ đồ khối UPS kết hợp với ổn áp LM2596: Hình 3.22. Mạch chuyển nguồn UPS và ổn áp LM2596 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39
  54. CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ 3.4 SƠ ĐỒ NGUYÊN LÝ TOÀN MẠCH Hình 3.23. Sơ đồ nguyên lý toàn mạch BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40
  55. CHƯƠNG 4: THI CÔNG HỆ THỐNG CHƯƠNG 4: THI CÔNG HỆ THỐNG 4.1 GIỚI THIỆU Trong chương này là quá trình thi công PCB, lập trình, lắp ráp phần cứng và kiểm tra mạch. Bên cạnh đó là hình vẽ được chụp từ mô hình thực tế của hệ thống, hình chụp các kết quả chạy của hệ thống. 4.2 THI CÔNG HỆ THỐNG 4.2.1 Thi công Board mạch Board mạch thiết kế bằng phần mềm eagle Hình 4.1. PCB mặt trên Hình 4.2. PCB mặt dưới BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41
  56. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.3. Mặt trên board Hình 4.4. Mặt dưới board 4.2.2 Lắp ráp và kiểm tra Sau khi thiết kế xong PCB nhóm tiến hành đặt gia công mạch in. Mục tiêu thiết kế ban đầu là thiết kế lại board arduino mega 2560. Các khối chức năng khác thì sử dụng module có sẵn. Tuy nhiên trong quá trình gia công hàn lắp, nhóm gặp khó khăn trong quá trình tìm mua linh kiện dán SMD của arduino. Sau khi giáo viên hướng dẫn đồng ý cho sử dụng board arduino, nhóm đã bỏ qua bước hàn lắp linh kiện lên mạch arduino đã gia công và thay vào đó là sử dụng một board arduino mega 2560 có sẵn. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42
  57. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.5. Mặt trên board khi lắp linh kiện Hình 4.6. Mặt dưới board khi lắp linh kiện 4.3 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH 4.3.1 Đóng gói bộ điều khiển Nhóm sử dụng vật liệu Mica đen để tạo khung mặt trước sau đó cố định mạch lên đó Hình 4.7. Hình ảnh sau khi lắp mạch lên mica BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43
  58. CHƯƠNG 4: THI CÔNG HỆ THỐNG 4.3.2 Thi công tủ Với yêu cầu đề ra của đề tài, nhóm đã thiết kế một tủ đựng vật dụng cho giảng viên với kích thước 145x85x40cm. Gồm có 6 hộc tủ, vật lệu là gỗ. Hình 4.8. Thông số kích thước của tủ trên thiết kế BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44
  59. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.9. Hình ảnh mặt trước của tủ sau khi hoàn thiện Lắp mạch và đi dây trong tủ: Mạch điều khiển được bố trí nằm bên mặt phải của tủ gồm một LCD 3.2 inches cảm ứng để người sử dụng tương tác và hiển thị thông tin, bên cạnh là cảm biến vân tay để quét dấu vân tay đóng mở các hộc tủ. Bên dưới có 2 nút nhấn giữ. Nút màu đỏ dùng đóng, ngắt nguồn 220VAC cấp cho tủ. Nút màu xanh đóng, ngắt nguồn đến relay. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45
  60. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.10. Hình ảnh mặt trước mạch điều khiển khi lắp lên tủ Mạch điều khiển được lắp lên một cách cửa có thể mở ra được giúp cho việc đi dây thuận tiện hơn. Thuận tiện cho việc sửa chữa khi gặp sự cố xảy ra. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46
  61. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.11. Đi dây mạch điều khiển BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 47
  62. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.12. Đi dây cho khóa điện và đèn báo BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 48
  63. CHƯƠNG 4: THI CÔNG HỆ THỐNG 4.4 LẬP TRÌNH HỆ THỐNG 4.4.1 Lưu đồ giải thuật Chương trình chính Bắt đầu Khởi tạo hệ thống Đọc thời gian DS1307 Hiển thị giao diện chính Truyền, nhận dữ liệu với ESP8266 Mở tủ theo Đ dữ liệu điều Có dữ liệu điều khiển khiển S Có tủ hết Đ Giải phóng thời gian ngăn tủ S Chọn chế độ Hình 4.13. Lưu đồ chương trình chính Giải thích lưu đồ: Khi bắt đầu cấp nguồn, chương trình sẽ tiến hành khởi tạo các port, giao tiếp I2C, UART và SPI. Sau đó khởi tạo LCD TFT cảm ứng và giá trị ban đầu của các biến. Mặc định ban đầu chương trình ở chế độ tùy chọn, LCD hiển thị giao diện chính. Vòng lặp chương trình được thực hiện. Hệ thống truyền, nhận dữ liệu với ESP8266. Kiểm tra các BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 49
  64. CHƯƠNG 4: THI CÔNG HỆ THỐNG giá trị của dữ liệu nhận về từ ESP8266 và tiến hành mở tủ theo các giá trị đó. Nếu không có dữ liệu điều khiển từ ESP, hệ thống kiểm tra các dữ liệu thời gian của các ngăn tủ ,tìm ra tủ đồ hêt hạn và tiến hành giải phóng tủ nếu có. Sau khi giải phóng ngăn tủ hết hạn, chương trình tự động chuyển về giao diện chính. Quá trình này chạy xuyên suốt trong hệ thống và luôn được ưu tiên. Nếu không có tủ đồ quá thời gian, người dùng có thể tiến hành chọn các chế độ. Sau khi kết thúc chế độ bất kỳ chương trình sẽ tự động chuyển về giao diện chính để người khác sử dụng. Lưu đồ chương trình con chọn chế độ: Bắt đầu S Chọn chế độ Chọn chế độ S Chọn chế độ S Gửi Đồ Lấy Đồ Thêm Vân Tay Đ Đ Đ Chương trình Chương trình Chương trình gửi đồ lấy đồ thêm vân tay Hiển thị giao diện chính Hình 4.14. Lưu đồ chương trình con chọn chế độ Giải thích lưu đồ: Chương trình chọn chế độ bao gồm 3 chương trình con tương ứng với 3 chế độ: - Chế độ gửi đồ: Khi chọn “GỬI ĐỒ” trên màn hình thì sẽ chuyển qua hiển thị giao diện và thực hiện chương trình của chế độ gửi đồ . - Chế độ lấy đồ: Khi chọn “LẤY ĐỒ” trên màn hình thì sẽ chuyển qua hiển thị giao diện và thực hiện chương trình của chế độ lấy đồ. - Chế độ thêm vân tay: Khi chọn “ THÊM VÂN TAY” trên màn hình thì sẽ chuyển qua hiển thị giao diện và thực hiện chương trình của chế độ thêm vân tay. Lưu đồ của chương trình gửi đồ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 50
  65. CHƯƠNG 4: THI CÔNG HỆ THỐNG Bắt đầu Còn tủ đồ Thông báo tủ trống đã đầy Yêu cầu quét vân tay S S Người dùng Nhận dạng bấm thoát được vân tay Đ Đ Lưu ID vân tay Mở tủ đồ còn trống Hiển thị giao diện chính Hình 4.15. Lưu đồ chương trình gửi đồ Giải thích lưu đồ: Sau khi chọn chế độ gửi đồ thì hệ thống kiểm tra xem tủ đồ có còn ngăn trống, nếu vẫn còn thì yêu cầu người dùng đưa vân tay lên cảm biến để quét. Hệ thống sẽ kiểm tra vân tay đó có trong các mẫu vân đã được lưu hay không, nếu có thì ID vân tay sẽ được lưu vào để lấy đồ sau này, mở tủ còn trống cho người dùng và quay lại hiển thị giao diện chính. Nếu vân tay không có trong mẫu đã có, người dùng có thể bấm thoát ra màn hình chính để thêm vân tay hoặc quét lần nữa để kiểm tra lại. Trong trường hợp tủ đã đầy thì màn hình LCD hiện thông báo và quay về màn hình chính. Lưu đồ của chương trình lấy đồ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 51
  66. CHƯƠNG 4: THI CÔNG HỆ THỐNG Bắt đầu Yêu cầu quét vân tay S S Người dùng Tìm thấy ID bấm thoát phù hợp Đ Đ Mở tủ đồ đã gửi Xóa ID của tủ Hiển thị giao diện chính Hình 4.16. Lưu đồ chương trình lấy đồ Giải thích lưu đồ: Sau khi chọn chế độ gửi đồ thì hệ thống yêu cầu người dùng đưa vân tay lên cảm biến để quét. Hệ thống sẽ so sánh ID vân tay vừa quét được với các ID được lưu khi gửi đồ, nếu tìm thấy ID phù hợp thì mở tủ đồ gắn với ID đó cho người dùng lấy đồ, đồng thời xóa ID của tủ và biến tủ đó trở thành tủ trống. Kết thúc màn hình LCD hiển thị trở lại giao diện chính. Trong trường hợp không tìm thấy ID nào phù hợp, người dùng có thể bấm thoát ra, trở về giao diện chính hoặc đưa vân tay lên quét lần nữa để kiểm tra lại. Lưu đồ của chương trình thêm vân tay BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 52
  67. CHƯƠNG 4: THI CÔNG HỆ THỐNG Bắt đầu Yêu cầu nhập mật khẩu S Người dùng Mật khẩu đúng bấm thoát S Đ Yêu cầu quét vân tay lần 1 Đ Yêu cầu quét vân tay lần 2 Xác nhận đúng mẫu vân tay S Đ Lưu vân tay vào hệ thốngĐ Thông báo thêm thành công Hiển thị giao diện chính Hình 4.17. Lưu đồ chương trình thêm vân tay Giải thích lưu đồ: Vì đối tượng hướng đến của sản phẩm là giảng viên trong trường nên sau khi chọn chế độ thêm vân tay, hệ thống yêu cầu nhập mật mà chỉ giảng viên biết được. Nếu mật khẩu sai, yêu cầu nhập lại hoặc người dùng có thể bấm thoát để quay trở lại giao diện chính. Nếu mật khẩu đúng, hệ thống yêu cầu đưa vân tay cần thêm lên cảm biến để quét BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 53
  68. CHƯƠNG 4: THI CÔNG HỆ THỐNG lần 1. Sau khi quét lần 1 xong, màn hình sẽ hiện lên yêu cầu quét lần 2. Khi quét lần 2, hệ thống sẽ so sánh kết quả quét với lần 1, nếu 2 mẫu vân tay có kết quả so sánh gần như tương đương thì hệ thống xác nhận đúng mẫu vân tay cần thêm, tiến hành lấy mẫu và lưu vào hệ thống, đồng thời hiện lên thông báo thêm thành công, kết thúc và trở về giao diện chính . Nếu kết quả so sánh không giống nhau thì hệ thống sẽ bắt quét lại lần 2 cho đến khi nào kết quả phù hợp thì mới thoát ra khỏi vòng lặp đó. Lưu đồ của chương trình con quét vân tay của chế độ gửi đồ và lấy đồ Bắt đầu Quét vân tay và tạo ra một ảnh Chuyển đổi ảnh Kết thúc Hình 4.18. Lưu đồ của chương trình con quét vân tay của chế độ gửi đồ và lấy đồ Lưu đồ chương trình con quét vân tay của chế độ thêm vân tay BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 54
  69. CHƯƠNG 4: THI CÔNG HỆ THỐNG Bắt đầu Chuyển đổi Nhập ID hình ảnh vừa tạo Quét vân tay Tạo ra 1 tệp mẫu và tạo ra một và lưu nó vào bộ ảnh nhớ tạm thời Chuyển đổi Lưu mẫu vào bộ hình ảnh vừa nhớ dài hạn và tạo thêm ID Quét vân tay và tạo ra một Kết thúc ảnh Hình 4.19. Lưu đồ chương trình con quét vân tay của chế độ thêm vân tay Giải thích lưu đồ: Khi lựa chọn chế độ thêm vân tay, chương trình con này sẽ hoạt động trong hai bước quét vân tay để thêm vân tay vào hệ thống.Đầu tiên người dùng cần nhập ID của mình tương ứng với vân tay cần thêm, trong đồ án này nhóm cho vân tay chạy tự động bắt đầu từ 1. Đưa vân tay lên, cảm biến sẽ quét, lấy dữ liệu và tạo ra một hình ảnh. Sau đó sẽ chuyển đổi hình ảnh vừa tạo ra. Trải qua hai lần tạo ảnh và chuyển đổi, module sẽ kết hợp so sánh hai hình ảnh vân tay này để tạo ra một mẫu và lưu vào bộ nhớ tạm thời. Cuối cùng module lưu mẫu và thêm ID của mẫu đó vào bộ nhớ dài hạn. Lưu đồ của ESP8266 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 55
  70. CHƯƠNG 4: THI CÔNG HỆ THỐNG Bắt đầu Kết nối ESP với Wifi Khởi tạo kết nối giữa ESP và Firebase Đọc dữ liệu điều khiển về từ Firebase Truyền, nhận dữ liệu với Arduino Đọc thời gian từ NTP Gửi dữ liệu lên Firebase Mất kết nối Wifi S Đ Hình 4.20. Lưu đồ của ESP8266 Giải thích lưu đồ: Kết nối ESP với wifi, khởi tạo kết nối giữa ESP với cơ sở dữ liệu Firebase. Nếu có lệnh điều khiển từ ứng dụng Android thì giá trị của các biến thay đổi trên cơ sở dữ liệu Firebase, ESP đọc dữ liệu về từ Firebase và truyền dữ liệu điều khiển về Arduino. Sau đó ESP cũng nhận dữ liệu từ Arduino, thời gian từ hệ thống đồng bộ thời gian NTP và tiến hành gửi dữ liệu đó lên Firebase để cập nhật thời gian và tình trạng của các ngăn tủ. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 56
  71. CHƯƠNG 4: THI CÔNG HỆ THỐNG Quá trình lặp lại tiếp tục bằng việc đọc dữ liệu điều khiển từ Firebase về. Trong quá trình truyền nhận, nếu wifi bị mất kết nối thì sẽ khởi tạo lại kết nối giữa ESP và wifi. 4.4.2 Phần mềm lập trình cho vi điều khiển a. Giới thiệu phần mềm lập trình aduino IDE Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng nền tảng được viết bằng Java, và từ IDE này sẽ được sử dụng cho Ngôn ngữ lập trình xử lý (Processing programming language) và project Wiring. Công cụ này được đội ngũ kĩ sư của Arduino phát triển và có thể chạy trên Windows, MAC OS X và Linux. Nó được thiết kế để dành cho những người mới tập tành làm quen với lĩnh vực phát triển phần mềm. Nó bao gồm một chương trình code editor với các chức năng như đánh dấu cú pháp, tự động brace matching, và tự động canh lề, cũng như compile (biên dịch) và upload chương trình lên board chỉ với 1 cú click chuột. Một chương trình hoặc code viết cho Arduino được gọi là một sketch. Các chương trình Arduino được viết bằng C hoặc C++. Arduino IDE đi kèm với một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp các thao tác input/output được dễ dàng hơn. Hình 1Hình 4.22. Giao diện phần mềm lập trình Arduino IDE Hình 4.21. Giao diện phần mềm lập trình Arduino IDE BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 57
  72. CHƯƠNG 4: THI CÔNG HỆ THỐNG 1) Vùng lệnh: bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help). Phía dưới là các icon cho phép sử dụng nhanh các chức năng thường dùng của IDE được miêu tả như hình sau: 2) Vùng viết chương trình: Các đoạn code sẽ được viết trong vùng này. Người dùng chỉ cần định nghĩa 2 hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có thể chạy được: + Setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các cài đặt + Loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch 3) Vùng thông báo (Debug): Những thông báo từ IDE sẽ được hiển thị tại đây. Để ý rằng góc dưới cùng bên phải hiển thị loại board Arduino và cổng COM được sử dụng. Luôn chú ý tới mục này bởi nếu chọn sai loại board hoặc cổng COM thì sẽ không thể upload được code của mình. b. Viết chương trình hệ thống Phần này sẽ được trình bày ở phần phụ lục. 4.4.3 Phần mềm lập trình cho điện thoại, máy tính Giới thiệu phần mềm Android Studio BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58
  73. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.22. Giao diện phần mềm Android Studio Hiện nay, ứng dụng Android có thể được viết bằng nhiều phần mềm như Visual Studio, Android Studio, MIT AppInventor, Eclipse, Trong số đó thì Android Studio là phần mềm được Google hỗ trợ mạnh mẽ và nhóm chọn phần mềm này để viết ứng dụng điều khiển ,hiển thị các thông số của tủ đồ. Android Studio là một phần mềm bao gồm các công cụ khác nhau dùng để phát triển ứng dụng chạy trên thiết bị sử dụng hệ điều hành Android như smartphone, tablet, Android Studio được đóng gói với một bộ code editor, debugger, các công cụ performance tool và một hệ thống build/ deploy (trong đó có trình giả lập simulator để giả lập môi trường của thiết bị điện thoại hoặc tablet trên máy tính) cho phép các lập trình viên có thể nhanh chóng phát triển ứng dụng từ đơn giản đến phức tạp. Trong lập trình Android Studio có 3 bước quan trọng là thiết kế giao diện, ánh xạ và lập trình Java để kết nối tới các đối tượng trong layout. - Thiết kế giao diện: sắp xếp các đối tượng như Image, View, TextView, Button trong các layout hỗ trợ sẵn như Linear Layout, Relative Layout, BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 59
  74. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.23. Giao diện phần thiết kế giao diện cho ứng dụng - Ánh xạ: đây là giai đoạn kết nối các đối tượng trong giao diện với các câu lệnh để điều khiển các đối tượng đó. Hình 4.24. Ánh xạ các đối tượng trong giao diện với các câu lệnh - Lập trình Java: thực hiện các lệnh viết trên nền tảng Java để tác động tới các đối tượng trong layout, gửi dữ liệu lên Firebase, kích hoạt Countdown Timer BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60
  75. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.25. Giao diện phần lập trình Java 4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC Hướng dẫn sử dụng sản phẩm Bước 1: Cấp nguồn cho hệ thống. Hệ thống sử dụng nguồn từ mạch giảm áp LM2596 khi cấp nguồn trực tiếp 220VAC. Đợi hệ thống khởi động, màn hình LCD hiển thi giao diện chính của chương trình. Có ba chế độ là gửi đồ, lấy đồ và thêm vân tay. Hình 4.26. Giao diện chính của hệ thống Bước 2: Khi chọn chế độ gửi đồ, cảm biến vân tay sẽ sáng lên, LCD hiện yêu cầu người dùng đưa vân tay đã có mẫu trong bộ nhớ vào cảm biến để quét. Nếu chưa có mẫu vân tay, người dùng có thể nhấn nút thoát ra giao diện chính để thêm vân tay. Nếu quét và gửi đồ thành công, LCD sẽ hiện thông báo và cho biết thứ tự ngăn tủ của người dùng. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61
  76. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.27. Quét vân tay gửi đồ Hình 4.28. Gửi đồ thành công Bước 3: Khi chọn chế độ lấy đồ, cảm biến vân tay sẽ sáng lên, LCD hiện yêu cầu người dùng đưa vân tay đã sử dụng khi gửi đồ vào cảm biến để quét. Hệ thống kiểm tra vân tay với mẫu trong bộ nhớ và lấy ID tương ứng so sánh với các ID được lưu. Nếu không tìm thấy, cảm biến sẽ tắt trong khoảng một giây và sáng ngay để người dùng quét lại. Ngược lại LCD thông báo lấy đồ thành công và cho biết thứ tự ngăn tủ của người dùng phòng trường hợp quên tủ của mình. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 62
  77. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.29. Quét vân tay lấy đồ Hình 4.30. Thông báo lấy đồ thành công Bước 4: Khi chọn chế độ thêm vân tay, người dùng sẽ được yêu cầu nhập mật khẩu. Vì đối tượng hướng tới của sản phẩm là giảng viên nên mật khẩu này chỉ giảng viên biết được. Sau khi nhập mật khẩu thành công, cảm biến vân tay sẽ sáng lên, LCD hiện thông báo yêu cầu người dùng đưa vân tay cần thêm vào cảm biến để quét lần 1. Sau khi quét lần 1 xong, màn hình sẽ hiện lên yêu cầu quét lần 2. Khi quét lần 2, hệ thống sẽ so sánh kết quả quét với lần 1, nếu 2 mẫu vân tay có kết quả so sánh gần như tương đương thì hệ thống xác nhận đúng mẫu vân tay cần thêm và tiến hành lấy mẫu, lưu mẫu vào hệ thống, đồng thời hiện lên thông báo thêm thành công, kết thúc và trở về giao diện chính. Nếu kết quả so sánh không giống nhau thì hệ thống sẽ bắt quét lại lần 2 cho đến khi nào kết quả phù hợp thì mới thoát ra. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 63
  78. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.31. Thông báo nhập mật khẩu Hình 4.32. Giảng viên nhập mật khẩu Hình 4.33. Quét vân tay lần 1 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 64
  79. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.34. Quét vân tay lần 2 Hình 4.35. Thêm vân tay thành công Hướng dẫn sử dụng ứng dụng App android Sau khi truy cập vào ứng dụng trên các thiết bị Android thì giao diện ban đầu của ứng dụng hiện ra như hình dưới: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 65
  80. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.36. Giao diện bắt đầu của ứng dụng Hình 4.37. Người quản lí đăng nhập Ở màn hình Menu có 2 chế độ lựa chọn. Chế độ người dùng dành cho người sử dụng tủ đồ có thể vào và xem các thông tin về tủ đồ như tình trạng của các ngăn tủ có hoặc chưa có đồ, thời gian hết hạn của ngăn tủ đã có đồ. Ngoài ra người quản lí của tủ đồ sẽ đăng nhập bằng địa chỉ Email và mật khẩu riêng để vào được Chế độ quản lí. Trong Chế độ người dùng, người sử dụng chỉ có thể xem các thông tin của tủ đồ chứ không có quyền điều khiển hay can thiệp vào các ngăn tủ. Ô báo trạng thái có 2 màu xanh và đỏ. Màu xanh thể hiện ngăn tủ còn trống, còn màu đỏ ngược lại cho biết ngăn tủ đã có đồ. Khi ngăn tủ có đồ, ô báo trạng thái chuyển sang màu đỏ, đồng thời thanh thời gian giới hạn sẽ hiện lên cho biết thời điểm ngăn đồ hết hạn, người sử dụng cần lấy đồ trước mốc thời gian đó để tránh phải liên hệ với người quản lí hoặc mất đồ trong 1 số trường hợp. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 66
  81. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.38. Giao diện bên trong chế độ người dùng Trong Chế độ quản lí, người quản lí tủ đều có các chức năng xem thông tin như trong Chế độ người dùng. Ngoài ra người quản lí còn có các nút nhấn riêng cho từng ngăn tủ đề có thể mở bất kỳ ngăn tủ nào đề phòng các trường hợp có sự cố trong hệ thống làm mất ID vân tay của người gửi, người quản lí sẽ mở ngăn tủ để lấy lại đồ cho người sử dụng. Bên cạnh đó còn 1 nút nhấn dành cho trường hợp đặc biệt như mất điện khiến toàn bộ ID mất hết hoặc hỏa hoạn cần phải lấy tất cả đồ gấp, người quản lí sử dụng nút này để mở toàn bộ các ngăn tủ cùng một lúc. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 67
  82. CHƯƠNG 4: THI CÔNG HỆ THỐNG Hình 4.39. Giao diện bên trong chế độ quản lý BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 68
  83. CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.1 GIỚI THIỆU Chương này trình bày kết quả của cả quá trình nghiên cứu làm đề tài trong thời gian 16 tuần. Bên cạnh đó là nhận xét, đánh giá và đề xuất hướng phát triển của sản phẩm mô hình để hoàn thiện và có thể đi vào thực tế. 5.2 KẾT QUẢ ĐẠT ĐƯỢC Các chuẩn truyền dữ liệu - Tìm hiểu và nắm được các kiến thức cần thiết của các chuẩn truyền dữ liệu UART, SPI, I2C. Về phần cứng - Biết cách sử dụng phần mền altium để thiết kế sơ đồ nguyên lý của hệ thống. - Biết sử dụng phần mềm eagle để thiết kế mạch PCB 2 lớp. - Nâng cao được kĩ năng thi công mạch (hàn linh kiện, kiểm tra các thành phần trong mạch). - Biết cách tính toán các giá trị điện áp dòng điện trong hệ thống để chọn nguồn phù hợp. - Biết kết nối các linh kiện với nhau sao cho phù hợp tạo thành một hệ thống hoàn chỉnh. Phần mềm lập trình - Biết lập trình cho arduino, ESP8266 sử dùng phần mềm adduino IDE. - Biết sử dụng phần mềm android studio viết được app mobile chạy trên điện thoại android. Firebase - Xây dựng Firebase và sử dụng công cụ Realtime Database. - Biết kết nối dữ liệu giữa hệ thống với firre base. - Kết nối database thông qua app Android. Các thành phần khác trong hệ thống - Biết sử dụng và lập trình cho module wifi ESP8266. - Nắm được nguyên lý hoạt động của cảm biến vân tay. - Nắm được nguyên lý hoạt động module relay, module thời gian thực. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 69
  84. CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.3 KẾT QUẢ THỰC NGHIỆM 5.3.1 Thiết kế thi công tủ Một số hình ảnh sau khi hoàn thiện: Hình 5.1. Hình ảnh thực tế mặt trước tủ sau khi hoàn thiện BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 70
  85. CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.2. Mặt bên phải tủ sau khi hoàn thiện BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 71
  86. CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.3.2 Phần cứng, giao diện điều khiển Hình 5.3. Board mạch lắp bên trong tủ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 72
  87. CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.4. Mặt trước board điều khiển Một số hình ảnh lúc thao tác sử dụng tủ: - Giao diện chính: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 73
  88. CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.5. Giao diện chính - Chế độ “Gửi đồ”: Hình 5.6. Quét vân tay gửi đồ Hình 5.7. Gửi đồ thành công BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 74
  89. CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ - Chế độ “Lấy đồ”: Hình 5.8. Quét vân tay lấy đồ Hình 5.9. Thông báo lấy đồ thành công - Chế độ “Thêm vân tay”: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 75
  90. CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.10. Thông báo nhập mật khẩu Hình 5.11. Giao diện nhập mật khẩu Sau khi nhập mật khẩu đúng chuyển sang giao diện quét để thêm vân tay Hình 5.12. Quét vân tay lần 1 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 76
  91. CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.13. Quét vân tay lần 2 Hình 5.14. Thêm vân tay thành công BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 77
  92. CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.3.3 App android Một số hình ảnh của app khi sử dụng: Hình 5.15. Giao diện bắt đầu của ứng dụng Hình 5.16. Người quản lí đăng nhập Ở chế độ người dùng có 6 biểu tượng tương ứng với 6 hộc tủ. Icon hiện màu xanh là tủ đó còn trống, khi có người dùng gửi đồ icon chuyển sang màu đỏ đồng thời hiện thời gian gửi đồ. Tương tự như chế độ người dùng, chế độ quản lí có các nút nhấn riêng cho từng ngăn tủ đề có thể mở bất kỳ ngăn tủ nào đề phòng các trường hợp có sự cố trong hệ thống làm mất ID vân tay của người gửi, người quản lí sẽ mở ngăn tủ để lấy lại đồ cho người sử dụng. Bên cạnh đó còn 1 nút nhấn dành cho trường hợp đặc biệt như mất điện khiến toàn bộ ID mất hết hoặc hỏa hoạn cần phải lấy tất cả đồ gấp, người quản lí sử dụng nút này để mở toàn bộ các ngăn tủ cùng một lúc. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 78
  93. CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.17. Giao diện bên trong chế độ người dùng Hình 5.18. Giao diện bên trong chế độ quản lý. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 79
  94. CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 5.4 NHẬN XÉT, ĐÁNH GIÁ 5.4.1 Nhận xét Sau thời gian 16 tuần nghiên cứu và thực hiện đề tài, hệ thống cơ bản đáp ứng được yêu cầu thiết kế ban đầu. Dưới đây là một số nhận xét: Tủ: - Tủ đựng vật dụng giảng viên hoàn thiện chắc chắn, đáp ứng được nhu cầu cơ bản nhất của giảng viên trong việc gửi đồ hằng ngày. - Thiết kế và hoàn thiện khá đẹp mắt. - Hộc tủ với kích thước vừa phải có thể để vừa một balo hay laptop 15 inch. - Độ bảo mật của tủ rất cao. Phần cứng, giao diện điều khiển: - Mạch điều khiển trung tâm hoạt động ổn định, chính xác. - Tốc độ quét và nhận dạng vân tay nhanh. - Quá trình gửi đồ và lấy đồ diễn ra nhanh chóng. - Thời gian hoạt động ở chế độ Pin dự phòng chỉ khoảng 5 giờ. - Đôi lúc có độ trễ nhất định khi điều khiển qua app android. Tuy nhiên đây là yếu tố khách quan của mạng wifi, việc này không ảnh hưởng nhiều đến người sử dụng. - Giao diện người dùng đơn giản dễ sử dụng. - Admin và người dùng dễ dàng theo dõi tình trạng tủ thông qua app android. App android: - Giao diện trực quan, đơn giản và dễ sử dụng. - Hiển thị đầy đủ thông tin cần thiết cho người sử dụng biết và theo dõi. - Đôi lúc có độ trễ nhất định khi điều khiển qua app android. Tuy nhiên đây là yếu tố khách quan do mạng wifi, việc này không ảnh hưởng nhiều đến người sử dụng. - Hiện tại app chỉ chạy được trên nền tản hệ điều hành android. 5.4.2 Đánh giá Bảng 5.1: Số liệu thực nghiệm Số lần thực Số lần thành Đánh giá Quá trình nghiệm công Gửi đồ 20 20 ĐẠT Lấy đồ 20 20 ĐẠT Thêm vân tay 20 19 ĐẠT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 80
  95. CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Điều khiển bằng app 20 17 ĐẠT Thông báo hết hạn 20 19 ĐẠT Sau quá trình vận hành thử hệ thống, nhóm có những đánh giá sau đây: Hệ thống hoạt động ổn định đạt được những mục tiêu ban đầu đề ra. Tủ thiết kế khá đẹp, hoàn thiện chắc chắn và độ tin cậy cao. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 81
  96. CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Sau khoảng 16 tuần nghiên cứu và tìm hiểu, nhóm đã hoàn thành đồ án và thi công ra sản phẩm tủ đồ vân tay cho giảng viên đáp ứng được những yêu cầu đã đặt ra ban đầu: - Sản phẩm tủ được thi công hoàn thiện, đi dây gọn gàng có thể mang vào sử dụng. - Tốc độ nhận dạng vân tay nhanh, chính xác. - Các chức năng như gửi đồ, lấy đồ, thêm vân tay hoạt động mượt mà, ổn định. - Chức năng tự động giải phóng tủ khi quá hạn hoạt động đúng theo yêu cầu. - Tủ hoạt động bình thường khi mất điện nhờ tích hợp mạch UPS và pin dự phòng. - App android có giao diện trực quan, dễ theo dõi. - Chế độ của người quản lí được bảo mật bằng tài khoản Gmail. - Thời gian trễ khi điều khiển tủ bằng App khá lớn khoảng 2 đến 3 giây. - Thời gian duy trì hoạt động của tủ ở chế độ Pin dự phòng chưa cao. 6.2 HƯỚNG PHÁT TRIỂN - Thiết kế tủ với mẫu mã đẹp mắt hơn, số lượng hộc tủ nhiều hơn phù hợp với từng mục đích sử dụng khác nhau. - Tích hợp thêm tính năng bảo mật bằng RFID. - Tích hợp khóa cơ truyền thống để mở tủ trong trường hợp xảy ra lỗi của hệ thống. - Lưu trữ thông tin cá nhân của người dùng mỗi khi gửi đồ hoặc lấy đồ lên hệ thống quản lý giúp tăng khả năng bảo mật. - Nâng cấp giao diện cũng như chức năng của App Android. - Phát triển ứng dụng chạy trên nhiều thiết bị có kích thước màn hình khác nhau. - Tăng dung lượng Pin dự phòng để tủ hoạt động nhiều giờ hơn khi mất điện. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 82
  97. TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Sách tham khảo [1] Nguyễn Văn Hiệp - Đinh Quang Hiệp, “Lập trình android cơ bản ”, Nhà xuất bản ĐH Quốc Gia, Tp.HCM, 2015. [2] Nguyễn Đình Phú, “Giáo trình Vi xử lí ”, Trường ĐHSPKT, Tp.HCM, 2013. [3] Phạm Hải, “Tìm hiểu cách thức hoạt động của công nghệ bảo mật vân tay”, quantrimang.com, 11/2018 [4] Nguyễn Khắc Thành, “Điểm danh sinh viên bằng vân tay” , Đồ án tốt nghiệp, trường ĐHSPKT Tp.HCM, 2016. [5] Trần Anh Đề - Trần Sơn Lành, “Hệ thống điểm danh bằng vân tay sử dụng vi điều khiển ARM”, Đồ án tốt nghiệp, trường ĐHSPKT Tp.HCM, 2016. Website tham khảo [1] www.arduino.vn [2] www.wikipedia.org [3] www.alldatasheet.com BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 83
  98. PHỤ LỤC PHỤ LỤC Code arduino #include #include #include #include SoftwareSerial mySerial(18, 19); #define mySerial Serial1 #include #include #define s Serial2 Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial); UTFT myGLCD(ITDB32WC, 38, 39, 40, 41); UTouch myTouch( 6, 5, 4, 3, 2); // uint8_t id = 1; uint8_t data7; uint8_t i, j, k, data; uint8_t m; uint8_t data_send; uint8_t tt_tu[] = {0, 0, 0, 0, 0, 0}; uint8_t save[6] = {1, 2, 3, 4, 5, 6}; uint8_t vantay_tu[6]; uint8_t thoigian_tu_sec[6] = {62, 62, 62, 62, 62, 62}; uint8_t thoigian_tu_min[6] = {62, 62, 62, 62, 62, 62}; uint8_t demthoigian[6] = {72, 72, 72, 72, 72, 72}; // const byte DS1307 = 0x68; const byte NumberOfFields = 7; int second, minute, hour, day, wday, month, year; // int bcd2dec(byte num) { return ((num / 16 * 10) + (num % 16)); } int dec2bcd(byte num) { return ((num / 10 * 16) + (num % 10)); } // extern uint8_t BigFont[]; extern uint8_t SmallFont[]; extern uint8_t SevenSegNumFont[]; int x, y; char currentPage; char stCurrent[5] = ""; int RANGE_stCurrent = 0; // void setTime(byte hr, byte min, byte sec, byte wd, byte d, byte mth, byte yr) { Wire.beginTransmission(DS1307); Wire.write(byte(0x00)); // đặt lại pointer Wire.write(dec2bcd(sec)); Wire.write(dec2bcd(min)); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 84
  99. PHỤ LỤC Wire.write(dec2bcd(hr)); Wire.write(dec2bcd(wd)); // day of week: Sunday = 1, Saturday = 7 Wire.write(dec2bcd(d)); Wire.write(dec2bcd(mth)); Wire.write(dec2bcd(yr)); Wire.endTransmission(); } void readDS1307() { Wire.beginTransmission(DS1307); Wire.write((byte)0x00); Wire.endTransmission(); Wire.requestFrom(DS1307, NumberOfFields); second = bcd2dec(Wire.read() & 0x7f); minute = bcd2dec(Wire.read() ); hour = bcd2dec(Wire.read() & 0x3f); // chế độ 24h. wday = bcd2dec(Wire.read() ); day = bcd2dec(Wire.read() ); month = bcd2dec(Wire.read() ); year = bcd2dec(Wire.read() ); year += 2000; if (currentPage == '0') { myGLCD.setBackColor(255, 255, 255); myGLCD.print("/", 151, 30); myGLCD.print("/", 196, 30); myGLCD.printNumI(year, 213, 30, 2); myGLCD.print(":", 131, 50); myGLCD.print(":", 176, 50); // if (day / 10 % 10 == 0) { myGLCD.printNumI(0, 120, 30); myGLCD.printNumI(day % 10, 135, 30); } else { myGLCD.printNumI(day, 120, 30, 2); } // if (month / 10 % 10 == 0) { myGLCD.printNumI(0, 166, 30); myGLCD.printNumI(month % 10, 181, 30); } else { myGLCD.printNumI(month, 166, 30, 2); } // if (second / 10 % 10 == 0) { myGLCD.printNumI(0, 190, 50); myGLCD.printNumI(second % 10, 205, 50); } else { myGLCD.printNumI(second, 190, 50, 2); } // if (minute / 10 % 10 == 0) { myGLCD.printNumI(0, 145, 50); myGLCD.printNumI(minute % 10, 160, 50); } else { myGLCD.printNumI(minute, 145, 50, 2); } // if (hour / 10 % 10 == 0) { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 85
  100. PHỤ LỤC myGLCD.printNumI(0, 100, 50); myGLCD.printNumI(hour % 10, 115, 50); } else { myGLCD.printNumI(hour, 100, 50, 2); } // switch (wday) { case 1: myGLCD.print("SUN", 55, 30); break; case 2: myGLCD.print("MON", 55, 30); break; case 3: myGLCD.print("TUE", 55, 30); break; case 4: myGLCD.print("WED", 55, 30); break; case 5: myGLCD.print("THU", 55, 30); break; case 6: myGLCD.print("FRI", 55, 30); break; case 7: myGLCD.print("SAT", 55, 30); break; } } } // void updateStr(int val) { if (RANGE_stCurrent < 4) { stCurrent[RANGE_stCurrent] = val; RANGE_stCurrent++; myGLCD.setColor(0, 0, 0); myGLCD.setBackColor(255, 255, 255); myGLCD.print(stCurrent, CENTER, 202); } } // //VE MAN HINH CHU void drawHomeScreen() { myGLCD.setColor(255, 255, 255); myGLCD.fillRoundRect (1, 1, 319, 239); myGLCD.setBackColor(255, 255, 255); myGLCD.setColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.print("TU DO GIANG VIEN", CENTER, 10); myGLCD.setColor(255, 0, 0); myGLCD.drawLine(0, 67, 319, 67); myGLCD.setColor(0, 255, 255); myGLCD.fillRoundRect (35, 80, 285, 120); myGLCD.setColor(0, 0, 0); myGLCD.drawRoundRect (35, 80, 285, 120); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 86
  101. PHỤ LỤC myGLCD.setFont(BigFont); myGLCD.setBackColor(0, 255, 255); myGLCD.print("GUI DO", CENTER, 92); myGLCD.setColor(255, 114, 86); myGLCD.fillRoundRect (35, 130, 285, 170); myGLCD.setColor(0, 0, 0); myGLCD.drawRoundRect (35, 130, 285, 170); myGLCD.setFont(BigFont); myGLCD.setBackColor(255, 114, 86); myGLCD.print("LAY DO", CENTER, 142); myGLCD.setColor(255, 255, 0); myGLCD.fillRoundRect (35, 180, 285, 220); myGLCD.setColor(0, 0, 0); myGLCD.drawRoundRect (35, 180, 285, 220); myGLCD.setFont(BigFont); myGLCD.setBackColor(255, 255, 0); myGLCD.print("THEM VAN TAY", CENTER, 192); } // // VE HIEU UNG void drawFrame(int x1, int y1, int x2, int y2) { myGLCD.setColor(255, 0, 0); myGLCD.drawRoundRect (x1, y1, x2, y2); while (myTouch.dataAvailable()) myTouch.read(); myGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (x1, y1, x2, y2); } // // TRANG1_GUIDO void drawTRANG1_GUIDO() { myGLCD.setColor(255, 255, 255); myGLCD.fillRoundRect (1, 1, 319, 239); myGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect (10, 10, 60, 36); myGLCD.setColor(0, 0, 0); myGLCD.drawRoundRect (10, 10, 60, 36); myGLCD.setColor(255, 255, 255); myGLCD.setFont(BigFont); myGLCD.setBackColor(255, 0, 0); myGLCD.print("<-", 18, 15); myGLCD.setColor(0, 0, 0); myGLCD.setBackColor(255, 255, 255); myGLCD.setFont(SmallFont); myGLCD.print("TRO VE MAN HINH CHINH", 70, 18); myGLCD.setColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.setBackColor(255, 255, 255); myGLCD.print("QUET VAN TAY ", CENTER, 113); myGLCD.print("DE GUI DO", CENTER, 133); } // void drawTRANG2_GUIDO() { myGLCD.setColor(255, 255, 255); myGLCD.fillRoundRect (1, 1, 319, 239); myGLCD.setColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.setBackColor(255, 255, 255); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 87
  102. PHỤ LỤC myGLCD.print("GUI DO THANH CONG!", CENTER, 107); myGLCD.print("MO TU", CENTER, 127); myGLCD.setFont(SevenSegNumFont); myGLCD.printNumI(i + 1, CENTER, 147); } // void drawTRANG3_GUIDO() { myGLCD.setColor(255, 255, 255); myGLCD.fillRoundRect (1, 1, 319, 239); myGLCD.setColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.setBackColor(255, 255, 255); myGLCD.print("KHONG CON TU TRONG", CENTER, 107); myGLCD.print("HAY QUAY LAI SAU.", CENTER, 127); } // void drawTRANG1_THEMVANTAY() { myGLCD.setColor(255, 255, 255); myGLCD.fillRoundRect (1, 1, 319, 239); myGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect (10, 10, 60, 36); myGLCD.setColor(0, 0, 0); myGLCD.drawRoundRect (10, 10, 60, 36); myGLCD.setFont(BigFont); myGLCD.setBackColor(255, 0, 0); myGLCD.setColor(255, 255, 255); myGLCD.print("<-", 18, 15); myGLCD.setColor(0, 0, 0); myGLCD.setBackColor(255, 255, 255); myGLCD.setFont(SmallFont); myGLCD.print("TRO VE MAN HINH CHINH", 70, 18); myGLCD.setColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.setBackColor(255, 255, 255); myGLCD.print("NEU CHUA CO MAT KHAU", CENTER, 113); myGLCD.print("GIANG VIEN LIEN HE", CENTER, 133); myGLCD.print("SDT: 0354436396", CENTER, 153); myGLCD.setColor(127, 255, 0); myGLCD.fillRoundRect (35, 63, 285, 103); myGLCD.setColor(0, 0, 0); myGLCD.drawRoundRect (35, 63, 285, 103); myGLCD.setFont(BigFont); myGLCD.setBackColor(127, 255, 0); myGLCD.print("NHAP MAT KHAU", CENTER, 76); } // void drawPass() { myGLCD.setColor(255, 255, 255); myGLCD.fillRoundRect (1, 1, 319, 239); for (x = 0; x < 5; x++) { myGLCD.setColor(0, 0, 255); myGLCD.fillRoundRect (10 + (x * 60), 10, 60 + (x * 60), 60); myGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (10 + (x * 60), 10, 60 + (x * 60), 60); myGLCD.setFont(BigFont); myGLCD.setBackColor(0, 0, 255); myGLCD.printNumI(x + 1, 27 + (x * 60), 27); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 88
  103. PHỤ LỤC for (x = 0; x < 5; x++) { myGLCD.setColor(0, 0, 255); myGLCD.fillRoundRect (10 + (x * 60), 70, 60 + (x * 60), 120); myGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (10 + (x * 60), 70, 60 + (x * 60), 120); if (x < 4) myGLCD.printNumI(x + 6, 27 + (x * 60), 87); } myGLCD.print("0", 267, 87); myGLCD.setColor(128, 128, 128); myGLCD.fillRoundRect (10, 130, 100, 180); myGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (10, 130, 100, 180); myGLCD.setBackColor(128, 128, 128); myGLCD.print("Back", 23, 147); myGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect (110, 130, 200, 180); myGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (110, 130, 200, 180); myGLCD.setBackColor(255, 0, 0); myGLCD.print("Clear", 116, 147); myGLCD.setColor(0, 255, 0); myGLCD.fillRoundRect (210, 130, 300, 180); myGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (210, 130, 300, 180); myGLCD.setBackColor(0, 255, 0); myGLCD.print("Enter", 216, 147); myGLCD.setBackColor (0, 0, 0); myGLCD.setColor(255, 255, 255); myGLCD.fillRoundRect (10, 190, 300, 230); } // void drawTRANG2_THEMVANTAY() { myGLCD.setColor(255, 255, 255); myGLCD.fillRoundRect (1, 1, 319, 239); myGLCD.setColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.setBackColor(255, 255, 255); myGLCD.print("DE NGON TAY VAO", CENTER, 50); myGLCD.print("CAM BIEN", CENTER, 70); myGLCD.print("QUET LAN 1", CENTER, 112); } // void drawTRANG3_THEMVANTAY() { myGLCD.setColor(255, 255, 255); myGLCD.fillRoundRect (1, 1, 319, 239); myGLCD.setColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.setBackColor(255, 255, 255); myGLCD.print("DE NGON TAY VAO", CENTER, 50); myGLCD.print("CAM BIEN", CENTER, 70); myGLCD.print("QUET LAN 2", CENTER, 112); } // void drawTRANG4_THEMVANTAY() { myGLCD.setColor(255, 255, 255); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 89
  104. PHỤ LỤC myGLCD.fillRoundRect (1, 1, 319, 239); myGLCD.setColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.setBackColor(255, 255, 255); myGLCD.print("THEM VAN TAY", CENTER, 50); myGLCD.print("THANH CONG!", CENTER, 70); } // void drawTRANG1_LAYDO() { myGLCD.setColor(255, 255, 255); myGLCD.fillRoundRect (1, 1, 319, 239); myGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect (10, 10, 60, 36); myGLCD.setColor(0, 0, 0); myGLCD.drawRoundRect (10, 10, 60, 36); myGLCD.setFont(BigFont); myGLCD.setBackColor(255, 0, 0); myGLCD.setColor(255, 255, 255); myGLCD.print("<-", 18, 15); myGLCD.setColor(0, 0, 0); myGLCD.setBackColor(255, 255, 255); myGLCD.setFont(SmallFont); myGLCD.print("TRO VE MAN HINH CHINH", 70, 18); myGLCD.setFont(BigFont); myGLCD.print("QUET VAN TAY DA LUU", CENTER, 113); myGLCD.print("KHI GUI DO", CENTER, 133); } // void drawTRANG2_LAYDO() { myGLCD.setColor(255, 255, 255); myGLCD.fillRoundRect (1, 1, 319, 239); myGLCD.setColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.setBackColor(255, 255, 255); myGLCD.print("LAY DO THANH CONG!", CENTER, 107); myGLCD.print("MO TU", CENTER, 127); myGLCD.setFont(SevenSegNumFont); myGLCD.printNumI(i + 1, CENTER, 147); } // uint8_t getFingerprintID() { uint8_t p = finger.getImage(); switch (p) { case FINGERPRINT_OK: break; case FINGERPRINT_NOFINGER: return p; case FINGERPRINT_PACKETRECIEVEERR: return p; case FINGERPRINT_IMAGEFAIL: return p; default: return p; } // OK success! p = finger.image2Tz(); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 90
  105. PHỤ LỤC switch (p) { case FINGERPRINT_OK: break; case FINGERPRINT_IMAGEMESS: return p; case FINGERPRINT_PACKETRECIEVEERR: return p; case FINGERPRINT_FEATUREFAIL: return p; case FINGERPRINT_INVALIDIMAGE: return p; default: return p; } // OK converted! p = finger.fingerFastSearch(); if (p == FINGERPRINT_OK) { Serial.println("Found a print match!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { return p; } else if (p == FINGERPRINT_NOTFOUND) { return p; } else { return p; } // found a match! return finger.fingerID; } // //QUET VAN TAY GUI DO int getFingerprintIDez1() { 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! for (i = 0; i < 6; i = i + 1) { if (tt_tu[i] == 0) { tt_tu[i] = 1; thoigian_tu_sec[i] = second; thoigian_tu_min[i] = minute; demthoigian[i] = 0; m = save[i]; myGLCD.clrScr(); drawTRANG2_GUIDO(); delay(2000); myGLCD.clrScr(); drawHomeScreen(); currentPage = '0'; break; } } j = i; vantay_tu[j] = finger.fingerID; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 91
  106. PHỤ LỤC digitalWrite(j + 8, HIGH); delay(4000); digitalWrite(j + 8, LOW); return finger.fingerID; } // //QUET VAN TAY LAY DO int getFingerprintIDez2() { 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! for (i = 0; i < 6; i = i + 1) { if (vantay_tu[i] == finger.fingerID) { tt_tu[i] = 0; vantay_tu[i] = 0; demthoigian[i] = 72; myGLCD.clrScr(); drawTRANG2_LAYDO(); delay(2000); myGLCD.clrScr(); drawHomeScreen(); currentPage = '0'; break; } } k = i; digitalWrite(k + 8, HIGH); delay(4000); digitalWrite(k + 8, LOW); return finger.fingerID; } // //THEM VAN TAY uint8_t getFingerprintEnroll() { int p = -1; while (p != FINGERPRINT_OK) { p = finger.getImage(); switch (p) { case FINGERPRINT_OK: break; case FINGERPRINT_NOFINGER: break; case FINGERPRINT_PACKETRECIEVEERR: break; case FINGERPRINT_IMAGEFAIL: break; default: break; } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 92
  107. PHỤ LỤC // OK success! p = finger.image2Tz(1); switch (p) { case FINGERPRINT_OK: myGLCD.clrScr(); drawTRANG3_THEMVANTAY(); break; case FINGERPRINT_IMAGEMESS: return p; case FINGERPRINT_PACKETRECIEVEERR: return p; case FINGERPRINT_FEATUREFAIL: return p; case FINGERPRINT_INVALIDIMAGE: return p; default: return p; } // // Serial.println("Remove finger"); delay(1500); p = 0; while (p != FINGERPRINT_NOFINGER) { p = finger.getImage(); } p = -1; while (p != FINGERPRINT_OK) { p = finger.getImage(); switch (p) { case FINGERPRINT_OK: break; case FINGERPRINT_NOFINGER: break; case FINGERPRINT_PACKETRECIEVEERR: break; case FINGERPRINT_IMAGEFAIL: break; default: break; } } // OK success! p = finger.image2Tz(2); switch (p) { case FINGERPRINT_OK: Serial.println("Image converted"); break; case FINGERPRINT_IMAGEMESS: return p; case FINGERPRINT_PACKETRECIEVEERR: return p; case FINGERPRINT_FEATUREFAIL: return p; case FINGERPRINT_INVALIDIMAGE: return p; default: return p; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 93