Giám sát và diều khiển nhà thông minh bằng giọng nói

113 11 0
Giám sát và diều khiển nhà thông minh bằng giọng nói

Đ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 GIÁM SÁT VÀ ĐIỀU KHIỂN NHÀ THÔNG MINH BẰNG GIỌNG NÓI GVHD:NGUYỄN VĂN PHÚC SVTT:NGUYỄN BÁ QUÂN MSSV:15141340 SVTT:LÊ KHÁNH TRÌNH MSSV:15141311 SKL006799 Tp Hồ Chí Minh, tháng 12/2019 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN ĐIỆN TỬ BỘ MƠN KỸ THUẬT MÁY TÍNH - VIỄN THƠNG ĐỒ ÁN TỐT NGHIỆP GIÁM SÁT V I U KHI N NH THÔNG MINH B NGGI NGN I NG NH CÔNG NGHỆ KỸ THUẬT Sinh viên: IỆN TỬ - TRUYỀN THÔNG NGUYỄN BÁ QUÂN MSSV: 15141340 LÊ KHÁNH TRÌNH MSSV: 15141311 TP HỒ CHÍ MINH – 12/2019 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐIỆN ĐIỆN TỬ BỘ MƠN KỸ THUẬT MÁY TÍNH - VIỄN THƠNG ĐỒ ÁN TỐT NGHIỆP GIÁM SÁT V I U KHI N NH THÔNG MINHB NGGI NGN I NG NH CÔNG NGHỆ KỸ THUẬT IỆN TỬ TRUYỀN THÔNG Sinh viên: NGUYỄN BÁ QUÂN MSSV: 15141340 LÊ KHÁNH TRÌNH MSSV: 15141311 Hướng dẫn: Th.s NGUYỄN VĂN PHÚC TP HỒ CHÍ MINH – 12/2019 THƠNG TIN KHĨA LUẬN TỐT NGHIỆP Thơng tin sinh viên Họ tên sinh viên: Nguyễn Bá Quân MSSV: 15141340 Email: 15141340@student.hcmute.edu.vn Điện thoại: 0942968113 Họ tên sinh viên: Lê Khánh Trình MSSV: 15141311 Email: 15141311@student.hcmute.edu.vn Điện thoại: Thơng tin đề tài - Tên đề tài: Giám sát điều khiển nhà thơng minh giọng nói - Đơn vị quản lý: Bộ mơn Kỹ Thuật Máy Tính - Viễn Thông, Khoa Điện Điện Tử, 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 20 / 09 / 2019 đến ngày 20 / 12 / 2019 - Thời gian bảo vệ trước hội đồng: Ngày 06 / 01 / 2020 Lời cam đoan sinh viên Chúng – Nguyễn Bá Quân Lê Khánh Trình cam đoan KLTN cơng trình nghiên cứu thân hướng dẫn thạc sỹ Nguyễn Văn Phúc Kết công bố KLTN trung thực khơng chép từ cơng trình khác Tp.HCM, ngày … tháng … năm 20… SV thực đồ án (Ký ghi rõ họ tên) Nguyễn Bá Quân Lê Khánh Trình 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 BẢN NHẬN XÉT KHĨA LUẬN TỐT NGHIỆP (Dùng cho giảng viên phản biện) Đề tài: Nghiên cứu thực hệ thống nhận dạng tiếng nói kit FPGA Sinh viên thực hiện: Nguyễn Bá Quân Lê Khánh Trình Giảng viên hướng dẫn: Th.s Nguyễn Văn Phúc MSSV: 15141340 MSSV: 15141311 Nhận xét bao gồm nội dung sau đây: Tính hợp lý cách đặt vấn đề giải vấn đề; ý nghĩa khoa học thực tiễn [15/100]: Đặt vấn đề rõ ràng, mục tiêu cụ thể [5] ; đề tài có tính mới, cấp thiết [5] ; đề tài có khả ứng dụng, tính sáng tạo [5] Phương pháp thực hiện/ phân tích/ thiết kế [25/100]: Phương pháp hợp lý tin cậy dựa sở lý thuyết [10] ; có phân tích đánh giá phù hợp [10] ; có tính tính sáng tạo [5] Kết thực hiện/ phân tích đánh giá kết quả/ kiểm định thiết kế [25/100]: Phù hợp với mục tiêu [10] ; phân tích đánh giá / kiểm thử thiết kế hợp lý [10] ; có tính sáng tạo/ kiểm định chặt chẽ đảm bảo độ tin cậy [5] Kết luận đề xuất [10/100]: Kết luận phù hợp với cách đặt vấn đề, đề xuất mang tính cải tiến thực tiễn [5] ; kết luận có đóng góp mẻ, đề xuất sáng tạo thuyết phục [5] Hình thức trình bày, bố cục chất lượng báo cáo [15/100]: Văn phong quán, bố cục hợp lý, cấu trúc rõ ràng, định dạng mẫu [5] ; có tính hấp dẫn, thể lực tốt, văn trau chuốt [15] Tài liệu trích dẫn [10/100] Tính trung thực việc trích dẫn tài liệu tham khảo; tính phù hợp tài liệu trích dẫn; trích dẫn theo dẫn APA Đánh giá trùng lặp đề tài Cần khẳng định đề tài có trùng lặp hay khơng? Nếu có, đề nghị ghi rõ mức độ, tên đề tài, nơi công bố, năm công bố đề tài công bố Những nhược điểm thiếu sót, điểm cần bổ sung chỉnh sửa* Câu hỏi sinh viên phải trả lời trước hội đồng* (ít 02 câu) Đánh giá chung Điểm (Quy thang điểm 10 khơng làm trịn): …………./10 Xếp loại chung (Xuất sắc, Giỏi, Khá, Trung bình, Yếu, Kém): …………………………………… Đề nghị giảng viên phản biện Ghi rõ: “Báo cáo đạt/ không đạt yêu cầu khóa luận tốt nghiệp kỹ sư, phép/ khơng phép bảo vệ khóa luận tốt nghiệp” Tp HCM, ngày … tháng … năm 20… Người nhận xét (Ký ghi rõ họ tên) * Giáo viên phản biện ghi tiếp vào mặt sau LỜI CẢM ƠN Sau trình tìm hiểu, nghiên cứu thực đồ án tốt nghiệp, nhóm chúng em xin chân thành gửi lời cảm ơn sâu sắc đến q thầy cơ, gia đình bạn bạn bè, người giúp đỡ, đưa lời khun, định hướng cho nhóm chúng em thực hồn thành đề tài Chúng em xin gửi lời cảm ơn đến thầy Nguyễn Văn Phúc, giảng viên trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM tận tình giúp đỡ, hướng dẫn tạo điều kiện thuận lợi để nhóm thực tốt đề tài Và chúng em xin gửi lời tri ân đến thầy cô công tá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ỗ bảo cho chúng em suốt năm qua, tạo cho chúng em sở kiến thức vững vàng để thực đồ án áp dụng sống sau Gia đình ln nguồn động lực nguồn cảm hứng để chúng em nỗ lực vàà phấn đấu học tập sống, Chính vậy, chúng em xin gửi lời cảm ơn đến bố mẹ, người giúp đỡ nhiều để chúng em có ngày hơm Và cuối cùng, nhóm Chúng em gửi lời đồng cảm ơn đến bạn bè, người chia sẻ kiến thức kinh nghiệm quý báu thời gian thực đề tài Xin chân thành cảm ơn! Người thực đề tài: Nguyễn Bá Qn vi Lê Khánh Trình TĨM TẮT Đề tài hướng đến việc thiết kế, thi cơng mơ hình hệ thống điều khiển thiết bị điện giám sát nhà sử dụng vi điều khiển arduino mega 2560, vi điều khiển thực việc điều khiển thiết bị bật/tắt điều khiển người dùng thơng qua giọng nói, ứng dụng điện thoại công tắc trực tiếp, đồng thời đọc module cảm biến để thu thập thông số môi trường xung quanh Arduino mega 2560 kết nối với NodeMCU để truy cập vào internet nhằm nhận gửi liệu tới người dùng Ngoài ra, mơ hình cịn sử dụng arduino uno r3 để đọc cảm biến vân tay, liệu từ bàn phím, hiển thị liệu lên LCD điều khiển động servo đóng/mở cửa vii MỤC LỤC Trang bìa i Thông tin luận văn iii Nhận xét giảng viên hướng dẫn iv Nhận xét giảng viên phản biện v Lời cảm ơn vi Mục lục viii Danh mục hình xi Danh mục bảng xiv Các từ viết tắt xv CHƯƠNG TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG THỰC HIỆN 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.1.1 Giới thiệu 2.1.2 Phần cứng arduino 2.1.3 Arduino mega 2560 2.1.4 Arduino uno r3 viii RETURN buffer1; } void loop() { CHAR key = mykeypad.getKey (); SWITCH (class_x) { CASE '0': { hienthi_lcd_clear (0, 0, "NHAN PHIM DE"); hienthi_lcd (1, 0, "QUET VAN TAY "); mySerial1.println (canhbao); Serial.println ("canhbaocvantay :"); Serial.println (canhbao); delay (500); WHILE (class_x == '0') { CHAR key = mykeypad.getKey (); IF (key == '1') { class_x = '1'; mySerial1.println (canhbao); Serial.println ("canhbaocvantay :"); Serial.println (canhbao); BREAK; } IF (key == 'A') { class_x = '2'; class_y = '3'; mySerial1.println (canhbao); Serial.println ("canhbaocvantay :"); Serial.println (canhbao); hienthi_lcd_clear (0, 0, "Nhap MK Admin:"); lcd.setCursor (0, 1); BREAK; } } BREAK; 81 } CASE '1': { hienthi_lcd_clear (0, 0, "DANG QUET "); WHILE (!out_fingerprint) { IF (canhbao == 4) { getFingerprintEnroll1 (); canhbao = 0; mySerial1.println (canhbao); Serial.println ("canhbaocvantay :"); Serial.println (canhbao); } ELSE { getFingerprintIDez (); mySerial1.println (canhbao); Serial.println ("canhbaocvantay :"); Serial.println (canhbao); delay (50); } } out_fingerprint = false; BREAK; } CASE '2': { SWITCH (class_y) { CASE '3': { mySerial1.println (canhbao); Serial.println ("canhbaocvantay :"); Serial.println (canhbao); IF (key) { IF (key == '#') 82 { matkhau[index] = '\0'; IF (String (matkhau) == password_admin) { hienthi_lcd_clear (0, 0, "Xin Chao Admin ! ") ; index = 0; delay (1000); class_y = '0'; } ELSE { hienthi_lcd_clear (0, 0, "Nhap lai mat khau:"); lcd.setCursor (0, 1); index = 0; } } else IF (key == 'D') { class_x = '0'; index = 0; } else IF (index < 4) { matkhau[index] = key; index++; lcd.print (" * "); } } BREAK; } CASE '0': { hienthi_lcd_clear (0, 0, "1.THEM"); hienthi_lcd (0, 8, "2.XOA"); hienthi_lcd (1, 0, "3.MOCUA"); hienthi_lcd (1, 8, "D.TROLAI"); delay (500); 83 WHILE (class_y == '0') { CHAR key = mykeypad.getKey (); IF (key == '1') { class_y = '1'; 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 == 'D'){class_y = 'D'; } IF (key == '3'){class_y = '4'; } } BREAK; } CASE '1': { id = 0; CHAR id_buff[] = {}; index_id = 0; WHILE (!check_dangky) { CHAR key = mykeypad.getKey (); IF (key) { IF (key == '#') { String str_id = String (id_buff); id = str_id.toInt (); 84 check_dangky = 1; } else IF (key == 'D') { class_y = '0'; id = 0; check_dangky = 1; } ELSE { id_buff[index] = key; index_id++; check_dangky = 0; lcd.print (key); } } } IF (id != 0) getFingerprintEnroll () ; delay (1000); check_dangky = false; class_y = '0'; class_x = '2'; BREAK; } CASE '2': //xoa van tay { id = 0; CHAR id_buff[] = {}; index_id = 0; WHILE (!check_delete) { CHAR key = mykeypad.getKey (); IF (key) { IF (key == '#') { 85 String str_id = String (id_buff); id = str_id.toInt (); check_delete = 1; } else IF (key == 'D') { class_y = '0'; check_delete = 1; id = 0; } ELSE { id_buff[index_id] = key; index_id++; check_delete = 0; lcd.print (key); } } } id_del = id; IF (id != 0) deleteFingerprint (id); id = 0; check_delete = false; class_y = '0'; BREAK; } CASE 'D': { class_y = '0'; class_x = '0'; BREAK; } CASE '4': { hienthi_lcd_clear (0, 5, "MOI VAO") ; gServo.write (0); delay (1000); gServo.write (90); delay (1000); gServo.write ( - 90); delay (1000); 86 class_y = '0'; class_x = '0'; BREAK; } } BREAK; } } } // -FINDGER -uint8_t getFingerprintEnroll1() { INT p = - 1; WHILE (p != FINGERPRINT_OK) { p = finger.getImage (); } p = finger.image2Tz (); RETURN p; id = 9; p = finger.storeModel (id); IF (p == FINGERPRINT_OK) { //Stored; hienthi_lcd_clear (0, 2, "LUU VAN TAY"); hienthi_lcd (1, 2, " THANH CONG"); mySerial1.println (canhbao); Serial.println ("canhbaocvantay :"); Serial.println (canhbao); delay (1000); class_x = '0'; out_fingerprint = true; // check de out delay (1); RETURN - 1; } } // -Enroll -uint8_t getFingerprintEnroll() { INT p = -1; 87 hienthi_lcd_clear (0, 0, "THEM VAN TAY"); hienthi_lcd (1, 3, " VOI ID:"); lcd.print (id); WHILE (p != FINGERPRINT_OK){p = finger.getImage (); } p = finger.image2Tz (1); RETURN p; hienthi_lcd_clear (0, 0, "Remove finger"); delay (2000); p = 0; WHILE (p != FINGERPRINT_NOFINGER) {p = finger.getImage (); } p = -1; hienthi_lcd_clear (0, 0, "Same finger"); WHILE (p != FINGERPRINT_OK) { p = finger.getImage (); BREAK; } p = finger.image2Tz (2); RETURN p; } p = finger.createModel (); IF (p == FINGERPRINT_OK) {} ELSE { RETURN p; } p = finger.storeModel (id); IF (p == FINGERPRINT_OK) {hienthi_lcd_clear (0, 2, "THEM VAN TAY"); hienthi_lcd (1, 2, " THANH CONG"); } else IF (p == FINGERPRINT_PACKETRECIEVEERR) {} else{RETURN p; } // -FINGER - PRINT -uint8_t getFingerprintID () { uint8_t p = finger.getImage (); SWITCH (p) 88 { CASE FINGERPRINT_OK: BREAK; DEFAULT: RETURN p; } p = finger.image2Tz (); SWITCH (p) { CASE FINGERPRINT_OK: BREAK; DEFAULT: RETURN p; } p = finger.fingerFastSearch (); IF (p == FINGERPRINT_OK) {} ELSE { RETURN p; } } INT getFingerprintIDez () { uint8_t p = finger.getImage (); CHAR dataString[50] = {0}; IF (p != FINGERPRINT_OK) { RETURN - 1; canhbao++; mySerial1.println (canhbao); Serial.println ("canhbaocvantay :"); Serial.println (canhbao); } p = finger.image2Tz (); IF (p != FINGERPRINT_OK) { 89 RETURN - 1; canhbao++; mySerial1.println (canhbao); Serial.println ("canhbaocvantay :"); Serial.println (canhbao); } p = finger.fingerFastSearch (); IF (p != FINGERPRINT_OK) { hienthi_lcd_clear (0, 0, "van tay khong"); hienthi_lcd (1, 3, " trung khop"); delay (1000); canhbao++; Serial.println ("canhbaovantay:"); Serial.println (canhbao); mySerial1.println (canhbao); Serial.println ("canhbaocvantay :"); Serial.println (canhbao); delay (20); class_x = '0'; out_fingerprint = true; // check de out delay (1); RETURN - 1; } IF (finger.fingerID != 9) { hienthi_lcd_clear (0, 0, "Xin chao ID :"); lcd.print (finger.fingerID); delay (1000); hienthi_lcd (1, 2, " MOI VAO "); delay (1000); gServo.write (0); delay (1000); //mo cua gServo.write (90); delay (1000); gServo.write ( - 90); delay (1000); hienthi_lcd_clear (0, 0, "Dang tai du lieu "); delay (1); class_x = '0'; // Quay lai menu out_fingerprint = true; // check de out de ay ( ) KO DELAY LÀ B »Š L »–I RETURN finger.fingerID; } ELSE { hienthi_lcd_clear (0, 0, "CANH BAO"); delay (5000); String chophep1 = nhandulieu (); 90 Serial.println ("cho phep :"); Serial.println (chophep1); class_x = '0'; class_y = '3'; out_fingerprint = false; delay (1); } } // -DeleteFinger uint8_t deleteFingerprint (uint8_t id) { uint8_t p = -1; CHAR dataString[50] ={0}; p = finger.deleteModel (id); IF (p == FINGERPRINT_OK) { hienthi_lcd_clear (0, 4, "DA XOA ! ") ; delay (1000); } else IF (p == FINGERPRINT_PACKETRECIEVEERR) { hienthi_lcd_clear (0, 0, "communication error"); delay (2000); RETURN p; } else if (p == FINGERPRINT_BADLOCATION) {RETURN p; } else if (p == FINGERPRINT_FLASHERR) {RETURN p; } else{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); 91 lcd.print (content); } 92 TÀI LIỆU THAM KHẢO [1] Arduino mega 2560: https://www.robotshop.com/media/files/pdf/arduinomega2560datasheet.pdf [2] Arduino uno r3: https://www.fecegypt.com/uploads/dataSheet/1522237550_arduino%20uno%20r 3.pdf Module cảm biến khí ga MQ2: https://www.pololu.com/file/0J309/MQ2.pdf [3] [4] Cảm biến chuyển động PIR HC – SR501: https://www.mpja.com/download/31227sc.pdf [5] Cảm biến nhiệt độ - độ ẩm DHT11: https://image.dfrobot.com/image/data/KIT0003/DHT11%20datasheet.pdf [6] Nguyễn Văn Phúc, Diệp Minh Thiện, “giám sát 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”, Đồ Án Tốt Nghiệp ĐH, trường ĐH Sư Phạm Kỹ Thuật TP.HCM, 2018 [7] Sách hướng dẫn sử dụng “R30X Series Fingerprint Identification Module” Bàn phím ma trận 4x4: https://thegioiic.com/products/ban-phim-4x416-nut [8] [9] Nguyễn Đình Phú, “vi điều khiển PIC 16f887”, trường ĐH Sư Phạm Kỹ Thuật TP.HCM, 08/2016 [10] Giao tiếp UART: http://www.hocavr.com/2018/06/bai-5-giao-tiep- uart.html 93 ... điều khiển, thu thập liệu nhƣ giám sát thiết bị nhà nhóm thực định thực đề tài Giám sát điểu hiển nhà thơng minh ằng giọng nói Nhà thơng đƣợc thiết kế sử dụng adruino mega 2560 cho việc điều khiển. .. hệ thống điều khiển thiết bị điện giám sát nhà sử dụng vi điều khiển arduino mega 2560, vi điều khiển thực việc điều khiển thiết bị bật/tắt điều khiển người dùng thơng qua giọng nói, ứng dụng... - Tên đề tài: Giám sát điều khiển nhà thơng minh giọng nói - Đơn vị quản lý: Bộ mơn Kỹ Thuật Máy Tính - Viễn Thông, Khoa Điện Điện Tử, Trường Đại Học Sư Phạm Kỹ Thuật Tp Hồ Chí Minh - Thời gian

Ngày đăng: 26/12/2021, 17:48

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

  • Đang cập nhật ...

Tài liệu liên quan