Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 122 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
122
Dung lượng
9,82 MB
Nội dung
BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET GVHD : ThS Võ Đức Dũng SVTH1: Nguyễn Văn Phúc MSSV : 13141243 SVTH2: Diệp Minh Thiện MSSV : 13141330 Tp Hồ Chí Minh - 1/2018 BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET GVHD : ThS Võ Đức Dũng SVTH1: Nguyễn Văn Phúc MSSV : 13141243 SVTH2: Diệp Minh Thiện MSSV : 13141330 Tp Hồ Chí Minh - 1/2018 TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TP HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH Tp HCM, ngày 15 tháng 01 năm 2018 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Chuyên ngành: Hệ đào tạo: Khóa: Nguyễn Văn Phúc Diệp Minh Thiện Điện tử cơng nghiệp Đại học quy 2013 MSSV: 13141243 MSSV: 13141330 Mã ngành: 141 Mã hệ: Lớp: 13141DT3A I TÊN ĐỀ TÀI: GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET II NHIỆM VỤ Các số liệu ban đầu: - Nguyễn Minh Tiến, Phan Hồng Đức, “Thiết kế thi cơng hệ thống đóng mở cửa vân tay sử dụng kit Arduino giám sát máy tính thơng qua Internet”, Đồ Án Tốt Nghiệp ĐH, Trường ĐH Sư Phạm Kỹ Thuật TP.HCM, 2017 Nội dung thực hiện: - Tìm hiểu nghiên cứu cấu tạo, nguyên lý hoạt động, chức module Arduino, cảm biến vân tay R305, module Sim 800A, động Servo, ma trận phím - Tìm hiểu nghiên cứu cách lập trình Web Server, tìm hiểu ngơn ngữ HTML, CSS, PHP, sở liệu MySQL để tạo nên trang Web hoàn chỉnh - Cách thiết kế thi công mô hình hồn thiện - Thiết kế hệ thống điều khiển, lưu đồ giải thuật chương trình điều khiển mơ hình - Thiết kế hồn thiện mơ hình thực tế - Chạy thử nghiệm mơ hình hệ thống - Cân chỉnh mơ hình hệ thống - Viết sách luận văn - Bảo vệ đề tài tốt nghiệp i III NGÀY GIAO NHIỆM VỤ: 02/10/2017 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 15/01/2018 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Võ Đức Dũng CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP - Y SINH ii TRƯỜNG ĐH 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 CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC Tp HCM, ngày 01 tháng 10 năm 2017 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Lớp: MSSV: Họ tên sinh viên 2: Lớp: MSSV: Tên đề tài: Tuần/ngày Nội dung Xác nhận GVHD GV HƯỚNG DẪN (Ký ghi rõ họ tên) LỜI CAM ĐOAN Đề tài nhóm sinh viên Nguyễn Văn Phúc Diệp Minh Thiện tự thực hiện, dựa vào số tài liệu trước khơng chép từ tài liệu hay cơng trình có trước Người thực đề tài Nguyễn Văn Phúc Diệp Minh Thiện v LỜI CẢM ƠN Sau trình tìm hiểu, nghiên cứu thực đề tài đồ án tốt nghiệp hoàn thành tiến độ, chúng em xin chân thành gửi lời cảm ơn sâu sắc đến quý thầy cô, gia đình người anh, người bạn giúp đỡ, đưa lời khuyên, lời động viên lúc khó khăn Chúng em xin gửi lời cảm ơn đến thầy Võ Đức Dũng, giảng viên trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM hướng dẫn tạo điều kiện điều kiện để nhóm thực tốt đề tài Và chúng em xin gửi lời tri ân đến thầy cô khoa Điện - Điện tử trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM tận tình dạy dỗ giảng dạy cho chúng em kiến thức đến nâng cao tạo cho chúng em sở kiến thức vững vàng để hoàn thành đề tài Gia đình ln nguồn động lực nguồn cảm hứng để chúng em liên tục phấn đấu hoàn thành đề tài, xin cảm ơn đấng sinh thành động viên chúng em lúc bế tắc chán nản Và cuối chúng em xin cảm ơn anh, chị trước bạn bè có lời khuyên, lời góp ý chân thành để đề tài chúng em hoàn thiện Một lần nữa, chúng em xin cảm ơn tất người bên cạnh giúp đỡ chúng em, tạo động lực để chúng em hoàn thành tốt đề tài Xin chân thành cảm ơn! Người thực đề tài: Nguyễn Văn Phúc Diệp Minh Thiện vi MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii Lịch trình thực đồ án tốt nghiệp iv Cam đoan v Lời cảm ơn vi Mục lục vii Liệt kê hình vẽ x Liệt kê bảng vẽ xv Tóm tắt xvi CHƯƠNG TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ ARDUINO 2.2 TỔNG QUAN VỀ WEB 2.3 NHẬN DẠNG VÂN TAY 2.4 GIỚI THIỆU PHẦN CỨNG 2.4.1 Arduino Mega 2560 2.4.2 Module Sim 800A 2.4.3 Module cảm biến vân tay R305 2.4.8 Màn hình LCD 20x4 11 2.4.9 Mạch chuyển giao tiếp LCD 20x4 12 2.4.10 Bàn phím ma trận 4x4 (Keypad 4x4) 13 2.4.11 Động Servo SG90 9g Micro 13 2.5 CÁC CHUẨN GIAO TIẾP 14 2.5.1 Chuẩn giao tiếp UART 14 vii 2.5.2 Chuẩn giao tiếp SPI 15 2.5.3 Chuẩn giao tiếp I2C 16 2.5.3 Chuẩn giao tiếp One-wire 16 CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ 17 3.1 GIỚI THIỆU 17 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 18 3.2.1 Thiết kế sơ đồ khối hệ thống 18 3.2.2 Tính tốn thiết kế mạch 22 3.2.3 Sơ đồ nguyên lý toàn mạch 38 CHƯƠNG THI CÔNG HỆ THỐNG 40 4.1 GIỚI THIỆU 40 4.2 THI CÔNG HỆ THỐNG 40 4.2.1 Thi công bo mạch hệ thống 42 4.2.2 Lắp ráp kiểm tra bo mạch hệ thống 42 4.2.3 Thi công bo mạch module relay điều khiển ngõ 42 4.2.4 Lắp ráp khiểm tra bo mạch module relay điều khiển ngõ 44 4.3 ĐÓNG GÓI VÀ THI CƠNG MƠ HÌNH 45 4.3.1 Đóng gói điều khiển 45 4.3.2 Thi cơng mơ hình 45 4.4 LẬP TRÌNH HỆ THỐNG 46 4.4.1 Lưu đồ giải thuật 46 4.4.2 Phần mềm lập trình cho vi điều khiển 58 4.4.3 Phần mềm lập trình Android Studio 63 4.4.4 Phần mềm lập trình web 69 4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC 80 4.5.1 Viết tài liệu hướng dẫn sử dụng 82 4.5.2 Quy trình thao tác 83 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 85 5.1 KẾT QUẢ 85 5.2 NHẬN XÉT – ĐÁNH GIÁ 112 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 114 6.1 KẾT LUẬN 114 viii 6.2 HƯỚNG PHÁT TRIỂN 115 TÀI LIỆU THAM KHẢO 116 PHỤ LỤC………………………… 117 ix PHỤ LỤC LiquidCrystal_I2C lcd(0x3F, 20, 4); // PASSWORD -char matkhau[10] = {}; String password = ""; char password_buff[10] = {}; boolean check = false; char class_x = '0'; char class_y = '3'; byte index = 0; byte index_buff = 0; String password_admin = "1111"; int dem_mk_sai = 0; // -SERIAL //SoftwareSerial mySerial(16, 17); // -FINGER Adafruit_Fingerprint finger = Adafruit_Fingerprint(&Serial1); //uint8_t id; int id = 0; char id_buff[] = {}; byte index_id = 0; uint8_t getFingerprintEnroll(); boolean check_enroll = false; boolean check_delete = false; boolean out_fingerprint = false; // ETHERNET SHIELD long tam_gioopen = 0; //bien tam dem so lan de open int times_open; // so lan cua timer de open int times_close; String pin_open = ""; String pin_close = ""; char statu[4] = {'0', '0', '0', '0'}; void setup() { // lcd lcd.init(); lcd.backlight(); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 88 PHỤ LỤC lcd.display(); // sim800 -Serial2.begin(115200); Serial2.println("AT+CNMI=2,2"); // Nhận tn có Serial2.println("AT+CMGF=1"); // Chuyển dạng text so sánh chuỗi Serial.println("AT+CMGF=1"); delay(100); // Ethernet shield /* */ // -finger -finger.begin(57600);//Khoi tao van tay if (finger.verifyPassword()) { Serial.println("Found fingerprint sensor!"); } else { Serial.println("Did not find fingerprint sensor :("); //while (1); } } // CHUONG TRINH CHINH -void loop() { char key = mykeypad.getKey(); switch (class_x) { case '0': { Serial.println("1 QUET VAN TAY"); Serial.println("2 QUAN TRI ADMIN"); //+++++++++++++ hienthi_lcd_clear(0, 0, "1.QUET VAN TAY"); hienthi_lcd(2, 0, "2.QUAN TRI ADMIN"); delay(500); while (class_x == '0') { char key = mykeypad.getKey(); if (key == '1') { class_x = '1'; break; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 89 PHỤ LỤC if (key == '2') { class_x = '2'; class_y = '3'; hienthi_lcd_clear(0, 0, "Nhap MK Admin:"); lcd.setCursor(0, 1); break; } } break; } case '1': { Serial.println("Waiting for valid finger "); hienthi_lcd_clear(0, 0, "Waiting finger "); while (!out_fingerprint) { getFingerprintIDez(); delay(50); } out_fingerprint = false; break; } case '2': { switch (class_y) { case '3': { if (key) { if (key == '#') { matkhau[index] = '\0'; Serial.print("ban vua nhap: "); Serial.println(matkhau); if (String(matkhau) == password_admin) { Serial.println("Xin Chao Admin!"); hienthi_lcd_clear(0, 0, "Xin Chao Admin!"); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 90 PHỤ LỤC // StrClear(matkhau, index); //Xoa chuoi mat khau da luu index = 0; delay(1000); class_y = '0'; // Ve lai menu } else { Serial.println("Nhap lai mat khau!"); hienthi_lcd_clear(0, 0, "Nhap lai mat khau:"); lcd.setCursor(0, 1); // StrClear(matkhau, index); index = 0; } } else if (key == 'D') //Back { class_x = '0'; //StrClear(matkhau, index); index = 0; } else if (index < 4) { matkhau[index] = key; index++; Serial.print(key); // Bo o duoi, để ấn back ko bị in D lcd.print(key); } } break; } case '0': { Serial.println("1 THEM VAN TAY"); Serial.println("2 XOA VAN TAY"); Serial.println("D BACK"); hienthi_lcd_clear(0, 0, "1.THEM VAN TAY"); hienthi_lcd(1, 0, "2.XOA VAN TAY"); hienthi_lcd(2, 0, "D.BACK"); delay(500); while (class_y == '0') { char key = mykeypad.getKey(); if (key == '1') { class_y = '1'; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 91 PHỤ LỤC hienthi_lcd_clear(0, 0, "Nhap ID Can Them:"); lcd.setCursor(0, 1); } if (key == '2') { class_y = '2'; hienthi_lcd_clear(0, 0, "Nhap ID Can Xoa:"); lcd.setCursor(0, 1); } /* if (key == '3') { class_y = '3'; hienthi_lcd_clear(0, 0, "Nhap Lai MK cu:"); lcd.setCursor(0, 1); }*/ if (key == 'D') { class_y = 'D'; } if(key == '5') { class_y = '5'; } } break; } case '1': { Serial.println("Chuong trinh them van tay"); delay(1000); id = 0; //reset id truoc //StrClear(id_buff, index_id); index_id = 0; while (!check_enroll) { char key = mykeypad.getKey(); if (key) { if (key == '#') { String str_id = String(id_buff); Serial.println(str_id); id = str_id.toInt(); check_enroll = true; //Co thể chạy chương trình enroll } else if (key == 'D') { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 92 PHỤ LỤC class_y = '0'; check_enroll = true; id = 0; //De khong chay getFingerprintEnroll(); } else { id_buff[index_id] = key; index_id++; Serial.print(key); lcd.print(key); } } } if (id != 0) getFingerprintEnroll(); delay(1000); //id = 0; check_enroll = false; class_y = '0'; class_x = '2'; break; } case '2': { Serial.println("Chuong trinh XOa van tay"); id = 0; //reset id truoc // StrClear(id_buff, index_id); index_id = 0; while (!check_delete) { char key = mykeypad.getKey(); if (key) { if (key == '#') { String str_id = String(id_buff); id = str_id.toInt(); Serial.print("ID XOA: "); Serial.println(id); check_delete = true; //Co thể chạy chương trình delete } else if (key == 'D') { class_y = '0'; check_delete = true; id = 0; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 93 PHỤ LỤC else { id_buff[index_id] = key; index_id++; Serial.print(key); lcd.print(key); } } } if (id != 0) deleteFingerprint(id); id = 0; check_delete = false; class_y = '0'; break; } case 'D': { class_y = '0'; class_x = '0'; break; } } break; } } } // -FINDGER -// -Enroll uint8_t getFingerprintEnroll() { int p = -1; Serial.print("Waiting for valid finger to enroll as #"); Serial.println(id); hienthi_lcd_clear(0, 0, "Waiting for finger"); hienthi_lcd(1, 0, "as ID:"); lcd.print(id); while (p != FINGERPRINT_OK) { p = finger.getImage(); switch (p) { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 94 PHỤ LỤC case FINGERPRINT_OK: Serial.println("Image taken"); break; case FINGERPRINT_NOFINGER: Serial.println("."); break; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); break; case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); break; default: Serial.println("Unknown error"); break; } } // OK success! p = finger.image2Tz(1); switch (p) { case FINGERPRINT_OK: Serial.println("Image converted"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Image too messy"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_FEATUREFAIL: Serial.println("Could not find fingerprint features"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("Could not find fingerprint features"); return p; default: Serial.println("Unknown error"); return p; } Serial.println("Remove finger"); hienthi_lcd_clear(0, 4, "Remove finger"); delay(2000); p = 0; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 95 PHỤ LỤC while (p != FINGERPRINT_NOFINGER) { p = finger.getImage(); } Serial.print("ID "); Serial.println(id); p = -1; Serial.println("Place same finger again"); hienthi_lcd_clear(0, 0, "Place same finger"); while (p != FINGERPRINT_OK) { p = finger.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("Image taken"); break; case FINGERPRINT_NOFINGER: Serial.print("."); break; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); break; case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); break; default: Serial.println("Unknown error"); break; } } // OK success! p = finger.image2Tz(2); switch (p) { case FINGERPRINT_OK: Serial.println("Image converted"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Image too messy"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_FEATUREFAIL: Serial.println("Could not find fingerprint features"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("Could not find fingerprint features"); return p; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 96 PHỤ LỤC default: Serial.println("Unknown error"); return p; } // OK converted! Serial.print("Creating model for #"); Serial.println(id); p = finger.createModel(); if (p == FINGERPRINT_OK) { Serial.println("Prints matched!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p; } else if (p == FINGERPRINT_ENROLLMISMATCH) { Serial.println("Fingerprints did not match"); return p; } else { Serial.println("Unknown error"); return p; } Serial.print("ID "); Serial.println(id); p = finger.storeModel(id); if (p == FINGERPRINT_OK) { Serial.println("Stored!"); hienthi_lcd_clear(0, 6, "Stored!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p; } else if (p == FINGERPRINT_BADLOCATION) { Serial.println("Could not store in that location"); return p; } else if (p == FINGERPRINT_FLASHERR) { Serial.println("Error writing to flash"); return p; } else { Serial.println("Unknown error"); return p; } } // SIM800 -void toSerial() { while (Serial2.available() != 0) { Serial.write(Serial2.read()); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 97 PHỤ LỤC } } void sim800_send(int id) { Serial.println("AT+IPR=19200"); Serial2.println("AT+IPR=115200"); 9600 bps delay(1000); toSerial(); Serial2.println("ATE0"); Serial.println("ATE0"); delay(500); toSerial(); // Dat c truyen nhan du lieu // Tat che phan hoi (Echo mode) Serial2.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\""); Serial.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\""); delay(1000); toSerial(); Serial2.println("AT+SAPBR=1,1"); Serial.println("AT+SAPBR=1,1"); delay(1000); toSerial(); Serial2.println("AT+HTTPINIT"); Serial.println("AT+HTTPINIT"); delay(1000); toSerial(); // // // // Serial3.println("AT+SAPBR=2,1"); Serial.println("AT+SAPBR=2,1"); delay(2000); toSerial(); Serial2.print("AT+HTTPPARA=\"URL\",\"http://www.doantotnghiepk13.tk/m onitor.php?id="); Serial2.print(id); Serial2.println("\""); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 98 PHỤ LỤC Serial.println("AT+HTTPPARA=\"URL\",\"http://www.doantotnghiepk13.tk/m onitor.php?id=3\""); delay(1000); toSerial(); Serial2.println("AT+HTTPACTION=0"); Serial.println("AT+HTTPACTION=0"); delay(4000); // It nhat 6s toSerial(); // // // // Serial3.println("AT+HTTPREAD"); Serial.println("AT+HTTPREAD"); delay(1000); toSerial(); Serial2.println("AT+HTTPTERM"); Serial.println("AT+HTTPTERM"); delay(300); toSerial(); // Serial2.println("AT+SAPBR=0,1"); // Serial.println("AT+SAPBR=0,1"); // delay(500); // toSerial(); } // -FINGER- PRINT -uint8_t getFingerprintID() { uint8_t p = finger.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("Image taken"); break; case FINGERPRINT_NOFINGER: Serial.println("No finger detected"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); return p; default: Serial.println("Unknown error"); return p; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 99 PHỤ LỤC // OK success! p = finger.image2Tz(); switch (p) { case FINGERPRINT_OK: Serial.println("Image converted"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Image too messy"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_FEATUREFAIL: Serial.println("Could not find fingerprint features"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("Could not find fingerprint features"); return p; default: Serial.println("Unknown error"); return p; } // OK converted! p = finger.fingerFastSearch(); if (p == FINGERPRINT_OK) { Serial.println("Found a print match!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p; } else if (p == FINGERPRINT_NOTFOUND) { Serial.println("Did not find a match"); return p; } else { Serial.println("Unknown error"); return p; } // found a match! Serial.print("Found ID #"); Serial.print(finger.fingerID); Serial.print(" with confidence of "); Serial.println(finger.confidence); } // returns -1 if failed, otherwise returns ID # int getFingerprintIDez() { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 100 PHỤ LỤC uint8_t p = finger.getImage(); if (p != FINGERPRINT_OK) return -1; p = finger.image2Tz(); if (p != FINGERPRINT_OK) return -1; p = finger.fingerFastSearch(); if (p != FINGERPRINT_OK) return -1; // found a match! Serial.print("Found ID #"); Serial.print(finger.fingerID); Serial.print(" with confidence of "); Serial.println(finger.confidence); hienthi_lcd_clear(0, 0, "Found ID: "); lcd.print(finger.fingerID); hienthi_lcd(2, 2, "DA QUET VAN TAY!"); delay(500); // gServo.write(70); // hienthi_lcd(1, 0, "Do Tin Cay: "); // lcd.print(finger.confidence); //+++++++++++++++++++++++ hienthi_lcd_clear(0, 0, "Dang tai du lieu "); sim800_send(int(finger.fingerID)); //++++++++++++++++++++++ delay(1); // gServo.write(10); // delay(50); class_x = '0'; // Quay lai menu out_fingerprint = true; // check de out delay(1); // KO DELAY LÀ BỊ LỖI //class_x = '0'; return finger.fingerID; } // -DeleteFinger uint8_t deleteFingerprint(uint8_t id) { uint8_t p = -1; p = finger.deleteModel(id); if (p == FINGERPRINT_OK) { Serial.println("Deleted!"); hienthi_lcd(2, 7, "Deleted!"); delay(1000); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 101 PHỤ LỤC } else if (p == FINGERPRINT_BADLOCATION) { Serial.println("Could not delete in that location"); return p; } else if (p == FINGERPRINT_FLASHERR) { Serial.println("Error writing to flash"); return p; } else { Serial.print("Unknown error: 0x"); Serial.println(p, HEX); return p; } } // -LCD -void hienthi_lcd(int hang, int cot, char *content) { lcd.setCursor(cot, hang); lcd.print(content); } void hienthi_lcd_clear(int hang, int cot, char *content) { lcd.clear(); lcd.setCursor(cot, hang); lcd.print(content); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 102 ... vân tay sử dụng kit Arduino giám sát máy tính thơng qua Internet ., nhóm sinh viên định thực mở rộng thêm với tên đề tài “GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN... nghệ phát triển giới Nên nhóm thực đồ án với mong muốn chế tạo hệ thống giám sát cảnh báo thời gian vào lớp học sinh viên thông qua việc quét vân tay Hệ thống quét vân tay sử dụng kit Arduino giám. .. CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: GIÁM SÁT VÀ CẢNH BÁO SINH VIÊN THÔNG QUA HỆ THỐNG QUÉT VÂN TAY ĐIỀU KHIỂN QUA MẠNG INTERNET GVHD