1. Trang chủ
  2. » Luận Văn - Báo Cáo

(Luận văn) giám sát và điều khiển thiết bị trong nhà bằng giọng nói qua internet

99 0 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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CƠNG NGHỆ HẢI PHỊNG - lu an n va to p ie gh tn ĐỒ ÁN TỐT NGHIỆP d oa nl w NGÀNH ĐIỆN TỰ ĐỘNG CÔNG NGHIỆP : Phan Minh Phú oi lm ul nf va an lu Sinh viên Giảng viên hướng dẫn :TS Đoàn Hữu Chức z at nh z m co l gm @ an Lu Hải Phòng – 2022 n va ac th si BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CÔNG NGHỆ HẢI PHÒNG - lu an n va GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ TRONG NHÀ to p ie gh tn BẰNG GIỌNG NÓI QUA INTERNET oa nl w ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY d NGÀNH ĐIỆN TỰ ĐỘNG CÔNG NGHIỆP nf va an lu : Phan Minh Phú oi lm ul Sinh viên thực Giảng viên hướng dẫn: TS Đoàn Hữu Chức z at nh z m co l gm @ Hải Phòng - 2022 an Lu n va ac th si BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG lu an n va NHIỆM VỤ ĐỀ TÀI TỐT NGHIỆP p ie gh tn to d oa nl w lu MSV : 1812102007 Lớp : DC2201 Ngành: Điện tự động công nghiệp nf va an Sinh viên : Phan Minh Phú oi lm ul Tên đề tài : Giám sát điều khiển thiết bị nhà giọng nói qua Internet z at nh z m co l gm @ an Lu n va ac th si NHIỆM VỤ ĐỀ TÀI 1.Nội dung yêu cầu cần giải nhiệm vụ đề tài tốt nghiệp ( lý luận, thực tiễn, số liệu cần tính toán vẽ) lu an n va ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… Các số liệu cần thiết để tính tốn p ie gh tn to ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… 3.Địa điểm thực tập tốt nghiệp d oa nl w lu va an ……………………………………………………………………………………… ul nf ……………………………………………………………………………………… oi lm ……………………………………………………………………………………… z at nh z m co l gm @ an Lu n va SVTH: Phan Minh Phú DC2201 ac th GVHD TS: Đoàn Hữu Chức si CÁC CÁN BỘ HƯỚNG DẪN ĐỀ TÀI TỐT NGHIỆP Người hướng dẫn thứ nhất: Họ tên Đoàn Hữu Chức : Học hàm, học vị : Tiến Sĩ Cơ quan công tác : Trường Đại học Quản lý Cơng nghệ Hải Phịng Nội dung hướng dẫn : Toàn đề tài Người hướng dẫn thứ hai: lu Họ tên : an Cơ quan công tác : n va Học hàm, học vị : to gh tn Nội dung hướng dẫn : p ie Đề tài tốt nghiệp giao ngày …… tháng …… năm 2022 Đã giao nhiệm vụ Đ.T.T.N Cán hướng dẫn Đ.T.T.N nl w Đã nhận nhiệm vụ Đ.T.T.N oa Yêu cầu phải hoàn thành xong trước ngày …… tháng …… năm 2022 d Sinh viên oi lm ul nf va an lu Phan Minh Phú TS Đoàn Hữu Chức z at nh Hải Phòng, ngày …… tháng …… năm 2022 z an Lu TS ĐOÀN HỮU CHỨC m co l gm @ TRƯỞNG KHOA n va SVTH: Phan Minh Phú DC2201 ac th GVHD TS: Đoàn Hữu Chức si Cộng hòa xã hội chủ nghĩa Việt Nam Độc lập - Tự - Hạnh phúc - PHẦN NHẬN XÉT TÓM TẮT CỦA CÁN BỘ HƯỚNG DẪN lu an Đoàn Hữu Chức Đơn vị công tác: Trường Đại học Quản lý Cơng nghệ Hải Phịng Họ tên sinh viên: Phan Minh Phú Chuyên ngành: ĐIỆN TỰ ĐỘNG CÔNG NGHIỆP Nội dung hướng dẫn : Toàn đề tài n va Họ tên giảng viên: tn to Tinh thần thái độ sinh viên trình làm đề tài tốt nghiệp ie gh p nl w oa d Đánh giá chất lượng đồ án/khóa luận ( so với nội dung yêu cầu đề lu va an nhiệm vụ Đ.T.T.N, mặt lý luận, thực tiễn, tính tốn số liệu ) ul nf oi lm z at nh Ý kiến giảng viên hướng dẫn tốt nghiệp Không bảo vệ z Được bảo vệ Điểm hướng dẫn @ gm Hải Phòng, ngày tháng năm 2022 m co l Giảng viên hướng dẫn ( ký ghi rõ họ tên ) an Lu n va SVTH: Phan Minh Phú DC2201 ac th GVHD TS: Đoàn Hữu Chức si Cộng hòa xã hội chủ nghĩa Việt Nam Độc Lập – Tự Do – Hạnh Phúc NHẬN XÉT ĐÁNH GIÁ CỦA NGƯỜI CHẤM PHẢN BIỆN ĐỀ TÀI TỐT NGHIỆP Họ tên giảng viên: Cơ quan công tác: lu an Họ tên sinh viên: n va Chuyên ngành: tn to Đề tài tốt nghiệp: gh p ie Phần nhận xét, đánh giá giảng viên chấm phản biện w oa nl d lu va an Những mặt hạn chế ul nf oi lm Ý kiến giảng viên chấm phản biện z at nh Được bảo vệ Không bảo vệ Điểm hướng dẫn z gm @ Hải Phòng, ngày …… tháng …… năm 2022 m co l Giảng viên chấm phản biện (ký ghi rõ họ tên) an Lu ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si LỜI CẢM ƠN Sau trình tìm hiểu, nghiên cứu thực đồ án tốt nghiệp, 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 khuyên, định hướng cho em thực hoàn thành đề tài Em xin gửi lời cảm ơn đến thầy Đoàn Hữu Chức, giảng viên trường Đại Học Quản lý cơng nghê Hải phịng tận tình giúp đỡ, hướng dẫn tạo điều kiện thuận lợi để em thực tốt đề tài lu an Và em xin gửi lời tri ân đến thầy cô công tác khoa Điện- Điện tử n va trường Đại Học Quản lý công nghệ Hải phịng tận tình dạy dỗ bảo cho em tn to suốt năm qua, tạo cho em sở kiến thức vững vàng để thực đồ án ie gh áp dụng sống sau p Gia đình ln nguồn động lực nguồn cảm hứng để em nỗ lực phấn đấu nl w học tập sống, Chính vậy, em xin gửi lời cảm ơn đến bố mẹ, d oa người giúp đỡ nhiều để em có ngày hơm an lu Và cuối cùng, nhóm Em gửi lời đồng cảm ơn đến bạn bè, người chia nf va sẻ kiến thức kinh nghiệm quý báu thời gian thực đề tài oi lm ul Xin chân thành cảm ơn thầy ! z at nh Người thực đề tài Phan Minh Phú z m co l gm @ an Lu ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si 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 lu dùng Ngồi ra, mơ hình cịn sử dụng arduino uno r3 để đọc liệu từ bàn phím, an n va hiển thị liệu lên LCD điều khiển động servo đóng/mở cửa p ie gh tn to d oa nl w oi lm ul nf va an lu z at nh z m co l gm @ an Lu ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si MỤC LỤC CHƯƠNG TỔNG QUAN 13 1.1 ĐẶT VẤN ĐỀ 14 1.2 MỤC TIÊU 14 1.3 NỘI DUNG THỰC HIỆN 15 1.4 GIỚI HẠN 15 1.5 BỐ CỤC 16 CHƯƠNG CƠ SỞ LÝ THUYẾT 17 lu 2.1 TỔNG QUAN VỀ ARDUINO 17 n va 2.1.2 Phần cứng arduino 18 2.1.3 Arduino mega 2560 18 Arduino uno r3 21 tn to Giới thiệu 17 gh an 2.1.1 2.1.4 ie p 2.1.5 Phần mềm lập trình arduino IDE 23 MODULE CẢM BIẾN KHÍ GA MQ2 25 2.3 MODULE CẢM BIẾN CHUYỂN ĐỘNG PIR HC – SR501 26 2.4 MODULE WIFI ESP8266 NODEMCU 27 2.5 MODULE CẢM BIẾN NHIỆT ĐỘ - ĐỘ ẨM DHT11 29 2.6 QUANG TRỞ 30 2.7 NGUỒN XUNG 12V-5A 30 2.8 BÀN PHÍM MA TRẬN 4X4 31 2.9 MÀN HÌNH LCD 1602 32 d oa nl w 2.2 oi lm ul nf va an lu z at nh LÝ THUYẾT CHUẨN GIAO TIẾP UART 34 2.11 LÝ THUYẾT CHUẨN GIAO TIẾP ONE-WIRE 36 z 2.10 @ l gm CHƯƠNG TÍNH TỐN THIẾT KẾ 39 GIỚI THIỆU 39 3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 40 m co 3.1 Thiết kế sơ đồ khối hệ thống 40 3.2.2 Tính tốn thiết kế mạch 42 an Lu 3.2.1 ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si out_FINGERPRINT = false; break; } case '2': { switch (class_y) { case '3': lu an { n va mySerial1.println (canhbao); Serial.println ("canhbaocvantay :"); to gh tn Serial.println (canhbao); p ie if (key) d oa nf va matkhau[index] = '\0'; an lu { nl if (key == '#') w { { oi lm ul if (String (matkhau) == password_admin) index = 0; delay (1000); z at nh hienthi_lcd_clear (0, 0, "MOI SEP VAO NHA ! ") ; z m co an Lu { l else gm } @ class_y = '0'; ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si hienthi_lcd_clear (0, 0, "HONG DUNG BE OI:"); lcd.setCursor (0, 1); index = 0; } } else if (key == 'D') { class_x = '0'; lu an index = 0; n va } to p ie { gh tn else if (index < 4) w matkhau[index] = key; { z at nh case '0': oi lm } ul break; nf va an } lu } d oa nl index++; lcd.print (" * "); z gm @ hienthi_lcd_clear (0, 0, "1.THEM"); hienthi_lcd (0, 8, "2.XOA"); (500); an Lu while (class_y == '0') m co l hienthi_lcd (1, 0, "3.MOCUA"); hienthi_lcd (1, 8, "D.TROLAI"); delay ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si { char key = mykeypad.getKey (); if (key == '1') { class_y = '1'; hienthi_lcd_clear (0, 0, "Nhap ID Can Them:"); lcd.setCursor (0, 1); } lu an if (key == '2') n va { to gh tn class_y = '2'; hienthi_lcd_clear (0, 0, "Nhap ID Can Xoa:"); p ie lcd.setCursor (0, 1); w } d oa nl if (key == 'D'){class_y = 'D'; } { z at nh case '1': oi lm } ul break; nf va } an lu if (key == '3'){class_y = '4'; } z m co an Lu while (!check_dangky) l index_id = 0; gm char id_buff[] = {}; @ id = 0; ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si { char key = mykeypad.getKey (); if (key) { if (key == '#') { String str_id = String(id_buff); lu an id = str_id.toInt(); n va check_dangky = 1; to gh tn } p ie else if (key == 'D') w { index_id++; z at nh id_buff[index] = key; oi lm { ul else nf va an } lu check_dangky = 1; d oa nl class_y = '0'; id = 0; z m co an Lu } l } gm lcd.print (key); @ check_dangky = 0; ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si } if (id != 0) getFINGERPRINTEnroll () ; delay (1000); check_dangky = false; class_y = '0'; class_x = '2'; break; } case '2': //xoa van tay lu an { n va id = 0; char id_buff[] = {}; to gh tn index_id = 0; p ie while (!check_delete) w { id = str_id.toInt (); z at nh String str_id = String(id_buff); oi lm { ul if (key == '#') nf va an { lu if (key) d oa nl char key = mykeypad.getKey (); z m co an Lu { l else if (key == 'D') gm } @ check_delete = 1; ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si class_y = '0'; check_delete = 1; id = 0; } else { id_buff[index_id] = key; index_id++; check_delete = 0; lu an lcd.print (key); n va } to p ie } gh tn } w id_del = id; d oa nl if (id != 0) deleteFINGERPRINT (id); oi lm case 'D': ul } nf va class_y = '0'; break; an lu id = 0; check_delete = false; class_y = '0'; class_x = '0'; break; z at nh { z m co an Lu hienthi_lcd_clear (0, 5, "MOI VAO") ; l { gm case '4': @ } ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si gServo.write (0); delay (1000); gServo.write (90); delay (1000); gServo.write ( - 90); delay (1000); class_y = '0'; class_x = '0'; break; } } lu an break; n va } to p ie } gh tn } w // -FINDGER while (p != FINGERPRINT_OK) { } z at nh p = finger.getImage (); oi lm ul nf va an int p = - 1; lu { d oa nl uint8_t getFINGERPRINTEnroll1() z m co an Lu { l if (p == FINGERPRINT_OK) gm id = 9; p = finger.storeModel (id); @ p = finger.image2Tz (); return p; ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si //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; } lu an } n va // -Enroll to p ie { gh tn uint8_t getFINGERPRINTEnroll() w int p = -1; an lu lcd.print (id); d oa nl hienthi_lcd_clear (0, 0, "THEM VAN TAY"); hienthi_lcd (1, 3, " VOI ID:"); nf va while (p != FINGERPRINT_OK){p = finger.getImage (); } oi lm ul p = finger.image2Tz (1); return p; hienthi_lcd_clear (0, 0, "Remove finger"); delay (2000); z at nh p = 0; while (p != FINGERPRINT_NOFINGER) {p = finger.getImage (); } z m co an Lu p = finger.getImage (); l { gm while (p != FINGERPRINT_OK) @ p = -1; hienthi_lcd_clear (0, 0, "Same finger"); ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si break; } p = finger.image2Tz (2); return p; p = finger.createModel (); if (p == FINGERPRINT_OK) {} else lu an { n va return p; to gh tn } p ie p = finger.storeModel(id); w if (p == FINGERPRINT_OK) {hienthi_lcd_clear(0, 2, "THEM VAN TAY"); d oa nl hienthi_lcd (1, 2, " THANH CONG"); } nf va else{return p; }} an lu else if (p == FINGERPRINT_PACKETRECIEVEERR) {} uint8_t getFINGERPRINTID () uint8_t p = finger.getImage (); z at nh { oi lm ul // -FINGER - PRint z m co an Lu break; l case FINGERPRINT_OK: gm { @ switch (p) ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si DEFAULT; return p; } p = finger.image2Tz (); switch (p) { case FINGERPRINT_OK: lu an break; n va DEFAULT; to p ie } gh tn return p; w p = finger.fingerFastSearch (); int getFINGERPRINTIDez () z at nh } oi lm } ul return p; nf va an { lu else d oa nl if (p == FINGERPRINT_OK) {} z uint8_t p = finger.getImage (); char dataString[50] = {0}; an Lu { m co if (p != FINGERPRINT_OK) l gm @ { ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si return - 1; canhbao++; mySerial1.println (canhbao); Serial.println ("canhbaocvantay :"); Serial.println (canhbao); } p = finger.image2Tz (); if (p != FINGERPRINT_OK) { return - 1; canhbao++; mySerial1.println (canhbao); lu an Serial.println ("canhbaocvantay :"); Serial.println (canhbao); n va } to gh tn p = finger.fingerFastSearch (); p ie if (p != FINGERPRINT_OK) w { d oa nl hienthi_lcd_clear (0, 0, "van tay khong"); an lu hienthi_lcd (1, 3, " trung khop"); delay (1000); nf va canhbao++; Serial.println ("canhbaovantay:"); Serial.println (canhbao); Serial.println (canhbao); delay (20); oi lm ul mySerial1.println (canhbao); Serial.println ("canhbaocvantay :"); delay (1); z at nh class_x = '0'; out_FINGERPRINT = true; // check de out z m co an Lu { l if (finger.fingerID != 9) gm } @ return - 1; ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si 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 "); lu an delay (1); n va class_x = '0'; // Quay lai menu to gh tn out_FINGERPRINT = true; // check de out p ie delay(1); d nf va an lu { oa else nl } w return finger.fingerID; Serial.println ("cho phep :"); oi lm ul hienthi_lcd_clear (0, 0, "CANH BAO"); delay (5000); String chophep1 = nhandulieu (); delay (1); z at nh Serial.println (chophep1); class_x = '0'; class_y = '3'; out_FINGERPRINT = false; z gm @ } // -DeleteFinger - an Lu uint8_t deleteFINGERPRINT (uint8_t id) m co l } ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si { 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) lu an { n va hienthi_lcd_clear (0, 0, "communication error"); delay (2000); to p ie } gh tn return p; w else if (p == FINGERPRINT_BADLOCATION) {return p; } nf va } an lu else{return p; } d oa nl else if (p == FINGERPRINT_FLASHERR) {return p; } oi lm ul // -LCD -void hienthi_lcd (int hang, int cot, char * content) lcd.setCursor (cot, hang); z at nh { z void hienthi_lcd_clear (int hang, int cot, char * content) an Lu { m co l gm } @ lcd.print (content); ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si lcd.clear (); lcd.setCursor (cot, hang); lcd.print (content); } lu an n va p ie gh tn to d oa nl w oi lm ul nf va an lu z at nh z m co l gm @ an Lu ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si TÀI LIỆU THAM KHẢO lu an n va [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 [3] Module cảm biến khí ga MQ2: https://www.pololu.com/file/0J309/MQ2.pdf [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] Bàn phím ma trận 4x4: https://thegioiic.com/products/ban-phim-4x4-16-nut [7] Nguyễn Đình Phú, “vi điều khiển PIC 16f887”, trường ĐH Sư Phạm Kỹ Thuật TP.HCM, 08/2016 [8] Giao tiếp UART: http://www.hocavr.com/2018/06/bai-5-giao-tiep-uart.html ie gh tn to p [9] Nguyễn Văn Phúc, “Giám sát điều khiển nhà thơng minh giọng nói “, Trường đại học sư phạm kỹ thuật Tp Hồ Chí Minh khoa điện điện tử d oa nl w SK L 00 2154 oi lm ul nf va an lu z at nh z m co l gm @ an Lu ac th SVTH: Phan Minh Phú DC2201 n va GVHD TS: Đoàn Hữu Chức si

Ngày đăng: 13/07/2023, 04:42

Xem thêm:

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

TÀI LIỆU LIÊN QUAN