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

94 2 0
(Đồ án hcmute) thiết kế hệ thống ra vào bằng vân tay

Đ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

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 SKL 0 Tp Hồ Chí Minh, tháng 07/2018 an 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 an 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 an 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 MSSV: 10101220 Email: vungocsonthanh@gmail.com Điện thoại: 0977634250 Họ tên sinh viên 2: MAI VĂN SANG MSSV: 12141372 Email: maivnsang@gmail.com Điện thoại: 0949391714 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 chúng tơi 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 an (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 an 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 an 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 q thầy bạn để hồn thiện Chúng em xin chân thành cảm ơn! viii an 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 soát cửa vào công việc bắt buộc tiên tổ chức, đồ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 sốt vào để thể cơng tác quản lý chuyên nghiệp, đại quy củ Hệ thống kiểm số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 an 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 an 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 an 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 an 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 an "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 an 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 an 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 an 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 an 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 an 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 an 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 an } 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 an 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 an 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 an S an K L 0 ... 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... sánh trùng khớp hai dấu vân tay Khi trình quét vân tay diễn ra, đèn LED màu đỏ sẽ phát sáng, sau cảm biến hình ảnh sẽ lưu lại hình ảnh dấu vân tay Người dùng tạo mẫu vân tay, cần quét ngón tay. .. tay hai lần, hệ thống sẽ xử lý hai ảnh vân tay để tạo mẫu lưu mẫu vào thư viện module Khi tìm kiếm hệ thống sẽ so sánh dấu vân tay cần tìm với tồn thư viện module, sau sẽ trả kết q tìm thấy

Ngày đăng: 02/02/2023, 09:26

Tài liệu cùng người dùng

Tài liệu liên quan