1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(Đồ án tốt nghiệp) thiết kế hệ thống ra vào bằng vân tay

97 30 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 97
Dung lượng 2,53 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG THIẾT KẾ HỆ THỐNG RA VÀO BẰNG VÂN TAY GVHD: TRƯƠNG NGỌC ANH SVTH: VŨ NGỌC SƠN THÀNH MSSV: 10101220 SVTH: MAI VĂN SANG MSSV: 12141372 SKL006503 Tp Hồ Chí Minh, tháng 07/2018 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO BỘ MÔN ĐIỆN TỬ TRUYỀN THÔNG - ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ HỆ THỐNG RA VÀO BẰNG VÂN TAY NGÀNH ĐIỆN TỬ TRUYỀN THÔNG SVTH : VŨ NGỌC SƠN THÀNH MSSV: 10101220 MAI VĂN SANG MSSV: 12141372 TP HỒ CHÍ MINH – 07/2018 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO BỘ MÔN ĐIỆN TỬ VIỄN THÔNG - ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ HỆ THỐNG RA VÀO BẰNG VÂN TAY NGÀNH ĐIỆN TỬ TRUYỀN THÔNG SVTH: VŨ NGỌC SƠN THÀNH MSSV: 10101220 MAI VĂN SANG MSSV: 12141372 GVHD: Ths TRƯƠNG NGỌC ANH TP HỒ CHÍ MINH – 07/2018 iv THƠNG TIN KHĨA LUẬN TỐT NGHIỆP Thơng tin sinh viên Họ tên sinh viên 1: VŨ NGỌC SƠN THÀNH Email: vungocsonthanh@gmail.com Họ tên sinh viên 2: MAI VĂN SANG Email: maivnsang@gmail.com Thông tin đề tài - Tên đề tài: THIẾT KẾ HỆ THỐNG RA VÀO BẰNG VÂN TAY Đơn vị quản lý: Bộ môn Điện Tử - Truyền Thông, Khoa Đào Tạo Chất Lượng Cao, Trường Đại Học Sư Phạm Kỹ Thuật Tp Hồ Chí Minh - Thời gian thực hiện: Từ ngày 01 / 03 / 2018 đến ngày 07 / 07 / 2018 - Thời gian bảo vệ trước hội đồng: Ngày 28 / 07 / 2018 Lời cam đoan sinh viên Chúng tôi– Vũ Ngọc Sơn Thành Mai Văn Sang cam đoan KLTN cơng trình nghiên cứu thân hướng dẫn thạc sỹ Trương Ngọc Anh Kết công bố KLTN trung thực không chép từ cơng trình khác Tp.HCM, ngày 28 tháng 06 năm 2018 SV thực đồ án (Ký ghi rõ họ tên) tên) Vũ Ngọc Sơn Thành (Ký ghi rõ họ Mai Văn Sang Giảng viên hướng dẫn xác nhận báo cáo chỉnh sửa theo đề nghị ghi biên Hội đồng đánh giá Khóa luận tốt nghiệp …………………………………………………………………………………………… Xác nhận Bộ Môn Tp.HCM, ngày … tháng … năm 2018 Giáo viên hướng dẫn v (Ký, ghi rõ họ tên học hàm - học vị) CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên Sinh viên 1: Mai Văn Sang Ngành: Điện Tử Công Nghiệp Họ tên Sinh viên 2: Vũ Ngọc Sơn Thành Ngành: Kỹ Thuật Điện – Điện Tử MSSV: 12141372 MSSV: 10101220 Tên đề tài: HỆ THỐNG RA VÀO DÙNG CẢM BIẾN VÂN TAY Họ tên Giáo viên hướng dẫn: Th.s Trương Ngọc Anh NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm:……………….(Bằng chữ: ) Tp Hồ Chí Minh, ngày tháng năm 2017 Giáo viên hướng dẫn (Ký & ghi rõ họ tên) vi CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên Sinh viên: Mai Văn Sang MSSV: 12141372 Ngành: Điện Tử Công Nghiệp Họ tên Sinh viên 2: Vũ Ngọc Sơn Thành MSSV: 10101220 Ngành: Kỹ Thuật Điện – Điện Tử Tên đề tài: HỆ THỐNG RA VÀO DÙNG CẢM BIẾN VÂN TAY Họ tên Giáo viên phản biện: NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm:……………….(Bằng chữ: ) Tp Hồ Chí Minh, ngày tháng năm 20… Giáo viên phản biện (Ký & ghi rõ họ tên) vii LỜI CẢM ƠN Để hồn thành đề tài này, em chân thành cảm ơn quý Thầy, Cô khoa Đào Tạo Chất Lượng Cao - Trường Đại Học Sư Phạm Kỹ Thuật TP Hồ Chí Minh tận tình truyền đạt kiến thức năm chúng em học tập Đặc biệt, em xin chân thành cảm ơn Thầy Trương Ngọc Anh tận tình hướng dẫn tạo điều kiện thuận lợi cho chúng em suốt thời gian thực đồ án tốt nghiệp Bên cạnh đó, chúng em xin cảm ơn anh chị, bạn bè nhiệt tình đóng góp ý kiến chia sẽ kinh nghiệm để giúp em hoàn thành đề tài Cuối cùng, kiến thức hạn hẹp nên khơng tránh khỏi sai sót Chúng em mong nhận đóng góp ý kiến quý thầy bạn để hồn thiện Chúng em xin chân thành cảm ơn! viii LỜI NĨI ĐẦU Ngày nay, giới có phát triển nhanh chóng khoa học kỹ thuật, nhiều cơng nghệ đời với mục đích làm cho việc trở nên đơn giản, tiện lợi nhằm đáp ứng nhu cầu ngày cao người lĩnh vực Kiểm sốt cửa vào cơng việc bắt buộc tiên tổ chức, đoàn thể, cơng ty, xí nghiệp, nhà máy, nhà xưởng, Vấn đề bảo mật an ninh tự động hóa ngày doanh nghiệp, quan, xí nghiệp đánh giá cao Càng tổ chức lớn, bạn phải siết chặt khâu cổng kiểm soát vào để thể công tác quản lý chuyên nghiệp, đại quy củ Hệ thống kiểm soát vào cửa nhóm chúng em sẽ mang đến kiểm soát cửa vào đại, phục vụ mục đích kiểm sốt cửa vào cơng ty, văn phịng, chung cư, phịng ban, xí nghiệp cần có độ giám sát cao, kiểm sốt thời gian làm việc nhân viên cách hiệu hoàn toàn tự động ix MỤC LỤC LỜI CẢM ƠN viii LỜI NÓI ĐẦU ix MỤC LỤC x DANH MỤC CÁC BẢNG BIỂU xiii DANH MỤC CÁC BIỂU ĐỒ VÀ HÌNH ẢNH xiii DANH MỤC CÁC TỪ VIẾT TẮT xiv CHƯƠNG 1: TỔNG QUAN 16 1.1 GIỚI THIỆU TÌNH HÌNH HIỆN NAY 16 1.1.1 Đặt vấn đề 16 1.1.2 Các hình thức vào cửa 16 1.2 MỤC TIÊU NGHIÊN CỨU 17 1.3 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 17 1.4 PHƯƠNG PHÁP NGHIÊN CỨU 17 1.5 BỐ CỤC ĐỒ ÁN 17 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 19 2.1 MODULE ESP8266 NODEMCU 19 2.1.1 Giới thiệu 19 2.1.2 Cấu trúc Module Esp8266 NodeMCU 20 2.1.4 Phần mềm lập trình Arduino IDE 21 2.2 MODULE CẢM BIẾN VÂN TAY R305 22 2.2.1 Giới thiệu cảm biến vân tay R305 22 2.2.2 Thông số kỹ thuật R305 23 2.2.3 Nguyên tắc hoat động module R305 24 2.2.4 Cấu trúc lệnh để điều khiển module R305 liệu nhận 24 2.3 LCD HIỂN THỊ 32 2.3.1 Giới thiệu LCD 32 2.3.2 Module IC2 35 2.4 KHÓA CHỐT ĐIỆN TỪ 36 2.4.1 Giới thiệu 36 x 2.4.2 Thông số kỹ thuật 36 2.5 MODULE RELAY 5V VỚI OPTO CÁCH LY 38 2.5.1 Giới thiệu 38 2.6.2 Thông số kỹ thuật 39 2.6 NGÔN NGỮ HTML 39 2.6.1 Giới thiệu sơ lược HTML 39 2.6.2 Cấu trúc HTML 40 2.6.3 Các thẻ HTML 40 2.7 NGƠN NGỮ LẬP TRÌNH PHP 43 2.7.1 Giới thiệu PHP 43 2.7.2 Một số lệnh PHP 44 CHƯƠNG 3: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG .45 3.1 Yêu cầu sơ đồ khối hệ thống 45 3.1.1 Yêu cầu hệ thống 45 3.1.2 Sơ đồ khối chức khối 46 3.1.3 Hoạt động hệ thống 47 3.2 THIẾT KẾ HỆ THỐNG PHẦN CỨNG 47 3.2.1 Khối xử lý trung tâm 47 3.2.2 Khối ngoại vi 48 3.2.3 Khối hiển thị 49 3.2.4 Khối cảm biến 49 3.2.5 Khối chấp hành 50 3.2.6 Khối nguồn 50 3.3 THIẾT KẾ PHẦN MỀM 51 3.3.1 Lưu đồ giải thuật 51 3.3.2 Thiết kế giao diện web giải thích hoạt động 54 CHƯƠNG 4: KẾT QUẢ THỰC HIỆN 57 4.1 KẾT QUẢ PHẦN CỨNG 57 4.2 KẾT QUẢ PHẦN MỀM 61 CHƯƠNG 5: KẾT LUẬN VÀ PHẠM VI ỨNG DỤNG 62 xi return result;} //////////////////////// void load(){addr=EEPROM.read(1000);Serial.println("addr_load"); Serial.println(addr); int i=0; while(i 5000) { Serial.println(">>> Client Timeout !"); client.stop(); return; } } / Read all the lines of the reply from server and print them to Serial while(client.available()){ String line = client.readStringUntil('\r'); Serial.print(line); } i=i+1;} Serial.println(); Serial.println("closing connection"); return; } ////////////////////////// void load_id(){int addr_id=EEPROM.read(145);Serial.println("addr_load"); Serial.println(addr_id); int i=100; while(i 5000) { Serial.println(">>> Client Timeout !"); client.stop(); return; } } / Read all the lines of the reply from server and print them to Serial while(client.available()){ 83 String line = client.readStringUntil('\r'); Serial.print(line); } } i=i+1;} Serial.println(); Serial.println("closing connection"); return; } //////////////////// void load_id_con(int id){ Serial.print("connecting to "); Serial.println(host); WiFiClient client; const int httpPort = 80; if (!client.connect(host, httpPort)) { Serial.println("connection failed"); return; } / We now create a URI for the request String url = "/insert01.php?"; url += "id="; url += id; / url += "&name="; / url += "###"; Serial.print("Requesting URL: "); Serial.println(url); / This will send the request to the server client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + 84 "Connection: close\r\n\r\n"); unsigned long timeout = millis(); while (client.available() == 0) { if (millis() - timeout > 5000) { Serial.println(">>> Client Timeout !"); client.stop(); return; } } / Read all the lines of the reply from server and print them to Serial while(client.available()){ String line = client.readStringUntil('\r'); Serial.print(line); } Serial.println(); Serial.println("closing connection"); return; } ////////////////////////////////////////////////////////// uint8_t getFingerprintEnroll() { int p = -1; lcd.clear(); lcd.print("finger ID:"); Serial.println("finger ID:"); lcd.print(id); lcd.setCursor(0,1); lcd.print("Place Finger"); 85 Serial.println("Place Finger"); delay(2000); while (p != FINGERPRINT_OK) { p = finger.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("Image taken"); lcd.clear(); lcd.print("Image taken"); break; case FINGERPRINT_NOFINGER: / Serial.println("No Finger"); / lcd.clear(); / lcd.print("No Finger"); break; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); lcd.clear(); lcd.print("Comm Error"); break; case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); lcd.clear(); lcd.print("Imaging Error"); break; 86 default: Serial.println("Unknown error"); lcd.clear(); lcd.print("Unknown Error"); break; } } // OK success! p = finger.image2Tz(1); switch (p) { case FINGERPRINT_OK: Serial.println("Image converted"); lcd.clear(); lcd.print("Image converted"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Image too messy"); lcd.clear(); lcd.print("Image too messy"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); lcd.clear(); lcd.print("Comm Error"); return p; case FINGERPRINT_FEATUREFAIL: Serial.println("Could not find fingerprint features"); 87 lcd.clear(); lcd.print("Feature Not Found"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("Could not find fingerprint features"); lcd.clear(); lcd.print("Feature Not Found"); return p; default: Serial.println("Unknown error"); lcd.clear(); lcd.print("Unknown Error"); return p; } Serial.println("Remove finger"); lcd.clear(); lcd.print("Remove Finger"); delay(2000); p = 0; while (p != FINGERPRINT_NOFINGER) { p = finger.getImage(); } Serial.print("ID "); Serial.println(id); p = -1; Serial.println("Place same finger again"); lcd.clear(); 88 lcd.print("Place Finger"); lcd.setCursor(4,1); lcd.print("Again"); while (p != FINGERPRINT_OK) { p = finger.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("Image taken"); break; case FINGERPRINT_NOFINGER: Serial.print("."); break; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); break; case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); break; default: Serial.println("Unknown error"); return p; } } // OK success! p = finger.image2Tz(2); 89 switch (p) { case FINGERPRINT_OK: Serial.println("Image converted"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Image too messy"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_FEATUREFAIL: Serial.println("Could not find fingerprint features"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("Could not find fingerprint features"); return p; default: Serial.println("Unknown error"); return p; } // OK converted! Serial.print("Creating model for #"); Serial.println(id); p = finger.createModel(); if (p == FINGERPRINT_OK) { Serial.println("Prints matched!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { 90 Serial.println("Communication error"); return p; } else if (p == FINGERPRINT_ENROLLMISMATCH) { Serial.println("Fingerprints did not match"); return p; } else { Serial.println("Unknown error"); lcd.clear(); lcd.print("Unknown error"); delay(2000); return p; } Serial.print("ID "); Serial.println(id); p = finger.storeModel(id); if (p == FINGERPRINT_OK) { Serial.println("Stored!"); lcd.clear(); lcd.print("Save successfully!"); delay(2000); ////////////////////// save_id(id); if(id==2){ save_id_con(id); } load_id_con(id); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p; 91 } else if (p == FINGERPRINT_BADLOCATION) { Serial.println("Could not store in that location"); return p; } else if (p == FINGERPRINT_FLASHERR) { Serial.println("Error writing to flash"); return p; } else { Serial.println("Unknown error"); lcd.clear(); lcd.print("Unknown error"); delay(2000); return p; } } ////////////////////////////// int getFingerprintIDez() { uint8_t p = finger.getImage(); if (p != FINGERPRINT_OK) return -1; p = finger.image2Tz(); if (p != FINGERPRINT_OK) return -1; 92 p = finger.fingerFastSearch(); if (p != FINGERPRINT_OK) { /* lcd.clear(); lcd.print("Finger Not Found"); lcd.setCursor(0,1); lcd.print("Try Later");*/ Serial.print("NO Found ID #"); lcd.clear(); lcd.setCursor(1 ,0); lcd.print("NO Found ID"); lcd.setCursor(0,1); lcd.print("Please try again"); delay(1000); return -1; } // found a match! //Serial.print(finger.fingerID); return finger.fingerID; } /////////////////////// uint8_t deleteFingerprint(uint8_t id) { uint8_t p = -1; lcd.clear(); lcd.print("Please wait"); 93 Serial.println("Please wait"); p = finger.deleteModel(id); if(id==2){ EEPROM.write(89, 0); EEPROM.commit(); } if (p == FINGERPRINT_OK) { Serial.println("Deleted!"); lcd.clear(); lcd.setCursor(1,0); lcd.print("Finger Deleted"); lcd.setCursor(2,1); lcd.print("Successfully"); delay(1000); } else { Serial.print("Something Wrong"); lcd.clear(); lcd.print("Something Wrong"); lcd.setCursor(0,1); lcd.print("Try Again Later"); delay(2000); return p; } } 94 ... thống qua mạng Internet Mô hoạt động hệ thống Thiết kế xây dựng mơ hình hệ thống mở cửa dùng vân tay Báo cáo kết thực nghiệm sản phẩm đánh giá kết 1.5 BỐ CỤC ĐỒ ÁN Chương 1: Tổng quan Giới thiệu... MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO BỘ MƠN ĐIỆN TỬ VIỄN THÔNG - ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ HỆ THỐNG RA VÀO BẰNG VÂN TAY NGÀNH ĐIỆN TỬ TRUYỀN THÔNG SVTH: VŨ NGỌC SƠN THÀNH MSSV: 10101220 MAI... KHOA ĐÀO TẠO CHẤT LƯỢNG CAO BỘ MÔN ĐIỆN TỬ TRUYỀN THÔNG - ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ HỆ THỐNG RA VÀO BẰNG VÂN TAY NGÀNH ĐIỆN TỬ TRUYỀN THÔNG SVTH : VŨ NGỌC SƠN THÀNH MSSV: 10101220 MAI

Ngày đăng: 21/12/2021, 09:09

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w