BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP T T T NG N Đ N T T Đ ỆN TR NG N N ỐNG TR Ngành T T Đ ỆN T TR N T NG Giảng viên hướng dẫn Th h ng i h nh Sinh viên thực hiện MSSV Lớp Tr n Tr c Lu n 1711010070 17DDTA1 Nguyễn Ho ng Đ ng T m 1711010012 17DDTA1 TP Hồ Chí Minh, tháng 9, n m 2021 iii Ụ Ụ Phiếu đ ng ký đề t i đồ án khóa luận tốt nghiệp Phiếu giao nhiệm vụ thực hiện đồ án tốt nghiệp Trang LỜI MỞ Đ U 1 1 Tính cấp thiết của đề t i 1 2 T nh h nh nghiên cứu 1 3.
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CƠNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP T T T NG Đ ỆN TR NG N T Ngành: N Đ NT N T Đ ỆN T Giảng viên hướng dẫn Th ỐNG TR TR h ng NT NG i h nh Sinh viên thực hiện: MSSV: Lớp: Tr n Tr c Lu n 1711010070 17DDTA1 Nguyễn Ho ng Đ ng T m 1711010012 17DDTA1 TP Hồ Chí Minh, tháng 9, n m 2021 T Ụ Ụ Phiếu đ ng ký đề t i đồ án khóa luận tốt nghiệp Phiếu giao nhiệm vụ thực đồ án tốt nghiệp Trang LỜI MỞ Đ U .1 Tính cấp thiết đề t i T nh h nh nghiên cứu Mục đích nghiên cứu .2 Nhiệm vụ nghiên cứu Ph Các kết đạt đ ợc đề t i .3 Kết cấu đồ án KLTN .3 ng pháp nghiên cứu .2 CHƯƠNG GIỚI THIỆU 1.1 Giới thiệu điều khiển thiết bị điện từ xa .4 1.2 Internet of Things 1.2.1 Giới thiệu chung Internet of Things 1.2.2 ng dụng IoT 1.2.3 Đ c điểm công nghệ IoT 1.3 Giới thiệu mạng WiFi 1.4 Giới thiệu Website, Webserver v PHT .6 1.4.1 Giới thiệu Website .6 1.4.2 Máy chủ Web (Webserver) .7 1.4.3 Giới thiệu PHT 1.5 Các chu n truyền liệu .7 1.5.1 Giao tiếp UART iii 1.5.2 Giao tiếp I2C 1.5.2.1 Cách thức hoạt động I2C 1.5.2.2 Các b ớc truyền liệu I2C 10 1.5.2.3 Ưu điểm 10 1.5.2.4 Nh ợc điểm 10 1.5.3 Giao thức truyền 11 1.5.3.1 Tính n ng, đ c điểm bật 11 1.5.3.2 Ưu điểm 12 1.5.3.3 Nh ợc điểm 13 1.5.3.4 ng dụng MQTT .13 CHƯƠNG TỔNG QUAN GIẢI PHÁP 15 2.1 Tổng quan điều khiển thiết bị điện nhà 15 2.1.1 ối cảnh v nhu c u sử dụng điều khiển thiết bị điện nhà 15 2.1.2 Các mô h nh điều khiển thiết bị điện đ ợc áp dụng 17 2.1.2.1 Giải pháp điều khiển thiết bị điện nh giới .17 2.1.2.2 Giải pháp điều khiển thiết bị điện nh Việt Nam 19 2.2 Lựa chọn h ớng thiết kế .20 CHƯƠNG PHƯƠNG PHÁP GIẢI QUYẾT 23 3.1 S đồ kết cấu điều khiển thiết bị điện nh v chức n ng 23 3.1.1 S đồ kết cấu 23 3.1.2 Chức n ng .24 3.2 S đồ nguyên lý hoạt động 25 3.2.1 Hệ thống điện tử 25 3.2.1.1 Khối cảm biến 25 iv 3.2.1.2 Khối xử lý 26 3.2.1.3 Khối chấp h nh 26 CHƯƠNG QUY TRÌNH THIẾT KẾ 27 4.1 S đồ khối v chức n ng khối 27 4.1.1 S đồ khối .27 4.1.2 Chức n ng khối 27 4.1.2.1 Khối nguồn .27 4.1.2.2 Khối xử lý 28 4.1.2.3 Khối thu phát WiFi 28 4.1.2.4 Khối nhập liệu 29 4.1.2.5 Khối cảm biến 29 4.1.2.6 Khối hiển thị 30 4.1.2.7 Khối thiết bị 31 4.1.2.8 Khối cảnh báo 31 4.1.2.9 Khối điều khiển từ xa .31 4.2 L u đồ giải thuật v giải thích l u đồ giải thuật 32 4.2.1 L u đồ giải thuật 32 4.2.2 Các l u đồ giải thuật phụ 33 4.2.3 Giải thích l u đồ giải thuật 39 4.3 S đồ nguyên lý hệ thống 41 4.4 Nguyên lý hoạt động hệ thống giám sát 42 4.4.1 Hệ thống báo cháy hoạt động dựa cảm biến DHT11 42 4.4.2 Hệ thống báo r rỉ khí gas .42 4.4.3 Hệ thống cảnh báo x m nhập 42 v 4.5 Tổng quan thiết bị sử dụng hệ thống c cấu chấp h nh 43 4.5.1 Động c servo SG90 .43 4.5.1.1 S đồ ch n 43 4.5.1.2 Các thơng số 43 4.5.1.3 Nguyên t c hoạt động 43 4.5.1.4 ng dụng hệ thống .43 4.5.2 V ờn v ngoại vi 44 4.5.2.1 Chức n ng 44 4.3.3.1 ộ xử lý .44 4.5.2.2 C cấu chấp h nh 44 4.5.2.3 S đồ nguyên lý .44 4.5.3 Ph ng khách 44 4.5.3.1 Chức N ng .44 4.5.3.2 ộ xử lý 45 4.5.3.3 C cấu chấp h nh 45 4.5.3.4 C cấu bảo mật, giám sát .45 4.5.3.5 S đồ nguyên lý .46 4.5.4 Gara để xe .46 4.5.4.1 Chức n ng 46 4.5.4.2 ộ xử lý 46 4.5.4.3 C cấu chấp h nh 46 4.5.4.4 S đồ nguyên lý .47 4.5.5 Ph ng ngủ .47 4.5.5.1 Chức n ng 47 vi 4.5.5.2 ộ xử lý 47 4.5.5.3 C cấu chấp h nh 47 4.5.5.4 C cấu bảo mật,giám sát 48 4.5.5.5 S đồ nguyên lý .48 4.5.6 Ph ng giải trí 48 4.5.6.1 Chức n ng 48 4.5.6.2 ộ xử lý 48 4.5.6.3 C cấu chấp h nh 49 4.5.6.4 S đồ nguyên lý .49 4.5.7 Ph ng bếp .49 4.5.7.1 Chức n ng 49 4.5.7.2 ộ xử lí 50 4.5.7.3 C cấu chấp h nh 50 4.5.7.4 C cấu giám sát, cảnh báo 50 4.5.7.5 S đồ nguyên lý .50 CHƯƠNG THI CÔNG 51 5.1 Mô h nh thực tế .51 5.2 Giao diện giám sát v điều khiển 52 5.3 Kết điều khiển số thiết bị 53 5.3.1 Mở cửa tr ớc nh mật kh u v v n tay 53 5.3.2 Mở cửa gara xe .54 5.3.3 Cảnh báo x m nhập từ ph ng bếp 55 CHƯƠNG ĐÁNH GIÁ KẾT QUẢ VÀ KẾT LU N 56 6.1 Kết đạt đ ợc 56 vii 6.2 H ớng phát triển cho hệ thống 57 TÀI LIỆU THAM KHẢO 58 PHỤ LỤC 59 7.1 Giới thiệu linh kiện .59 7.1.1 Giới thiệu chung Arduino 59 7.1.2 Arduino Mega 2560 60 7.1.2.1 Cấu tr c chung .61 7.1.2.2 Đ c điểm 62 7.1.2.3 Khối nguồn .63 7.1.2.4 Các chân cấp nguồn .63 7.1.2.5 Bộ nhớ 63 7.1.2.6 Thông số kỹ thuật 63 7.1.2.7 Một số ứng dụng Arduino .64 7.1.3 Module WiFi ESP866 node MCU 65 7.1.3.1 S đồ ch n module ESP8266 65 7.1.3.2 Các tính n ng 67 7.1.3.3 Thông số kỹ thuật 67 7.1.3.4 Một số ứng dụng c ESP8266 67 7.1.4 Module hạ áp buck 5A XL 4015 67 7.1.4.1 Thông số kỹ thuật 68 7.1.4.2 ng dụng Module uck 69 7.1.5 Cảm biến v n tay 69 7.1.5.1 Thông số kỹ thuật 69 7.1.5.2 ng dụng cảm biến v n tay .70 viii 7.1.5.3 S đồ ch n 71 7.1.5.4 Để giao tiếp UART ta c n sử dụng ch n 71 7.1.5.5 Để giao tiếp US ta c n sử dụng ch n 71 n phím 3x4 72 7.1.6 Thông số kỹ thuật 72 7.1.6.1 7.1.7 Cảm biến chuyển động 74 7.1.7.1 Thông số kỹ thuật 74 7.1.7.2 Nguyên t c hoạt động Module 75 7.1.7.3 ng dụng Module 76 7.1.8 Cảm biến hồng ngoại 76 7.1.8.1 Thông số kĩ thuật 76 7.1.8.2 Nguyên t c hoạt động 77 7.1.8.3 Ưu điểm 78 7.1.8.4 Nh ợc điểm 78 7.1.8.5 ng dụng cảm biến hồng ngoại 79 7.1.9 Cảm biến nhiệt độ, độ m DHT11 79 7.1.9.1 Thông số kỹ thuật 79 7.1.9.2 Cách điều khiển 79 7.1.9.3 Các ứng dụng cảm biến 80 7.1.10 Cảm biến khí gas .80 7.1.10.1 Thông số kỹ thuật 81 7.1.10.2 Nguyên lý hoạt động Module 81 7.1.10.3 7.1.11 ng dụng Module 82 Cảm biến m a 83 ix 7.1.11.1 Thông số kỹ thuật 83 7.1.11.2 Chế độ kết nối .83 7.1.11.3 Mạch cảm biến m a gồm phận .84 7.1.11.4 7.1.12 ng dụng cảm biến m a 85 Cảm biến ánh sáng quang trở 85 7.1.12.1 Thông số kỹ thuật 85 7.1.12.2 Nguyên lý hoạt động quang trở 86 7.1.13 LCD I2C 86 7.1.13.1 Thông số kỹ thuật 86 7.1.13.2 Nguyên t c hoạt động 87 7.1.13.3 Ưu điểm 87 7.1.14 Lcd 20x04 88 7.1.14.1 Thông số kĩ thuật 88 7.1.14.2 S đồ ch n 89 7.1.15 Transistor TIP41C .90 7.1.15.1 Thông số kỹ thuật 90 7.1.15.2 Đ c tính transistor l 7.1.15.3 7.1.16 ng cực TIP41C 91 ng dụng transistor 92 Diode 1N4007 92 7.1.16.1 Thông số kĩ thuật 93 7.1.16.2 7.1.17 ng dụng diode 1N4007 93 Transistor C1815 .94 7.1.17.1 Thông số kỹ thuật 94 7.1.17.2 Thay v t ng đ ng 94 x 7.1.17.3 7.1.18 ng dụng 95 C i chíp 5V .95 7.1.18.1 Thông số kỹ thuật 95 7.2 Code hoạt động v điều khiển thiết bị 96 7.3 Code hoạt động điều khiển web 114 Từ viết tắt ICSP : In Circuit serial TWI : Two-Wire Serial Intereafce TCP : Transmission Control Protocol UDP : User Datagram Protocol SPI : Serial Peripheral Bus DFU : Device Firmware Update AVR : Automatic Voltage Regulator LPG : Liquified Petroleum Gas HTML : Hypertext Markup Language WIFI : Wireless Fidelity USB : Universal Serial Bus I2C : Inter-Integrated Circuit LCD : Liquid Crystal Display PIR : Passive infrared sensor HSE : High Speed Ethernet WWW : World Wide Web URL : Uniform Resource Locator CSS : Cascading Style Sheets IoT : Internet of Things xi //Serial.print(res1);Serial.print(" "); Serial.println(res2); } } if(res1==subcribe1&&res2==1) {mode=4;lcd.clear();} enter_password(); if (sw==10) sum=0; if (sw==12) { đ ng mật kh u if (sum==pass1) { mode=4; lcd.clear(); } else { lcd.setCursor(5,1); lcd.print("sai!! "); delay(1000); sum=0; errButton++; nhập sai l n if (errButton>3) { mode=5; lcd.clear(); } } } } } 106 while (mode==4) đ nng v n tay đ nng mật kh u { lcd.setCursor(0,0); lcd.print("Dang mo Cua "); svKhach.write(40); delay(5000); lcd.setCursor(0,1); lcd.print("Dang khoa Cua "); svKhach.write(112); delay(1000); digitalWrite(fanKhach,1); quạt ph ng khách bật digitalWrite(ledKhach,0); đèn ph ng khách bật svNgu.write(80);svBep.write(80);svGiaitri.write(80); delay(1000); mode=1; gmode=3;lcd.clear(); goto ThucHien; } while (mode==5) nhap sai -> gửi tin nh n lên web { if (errButton>3) { lcd.setCursor(0,0); lcd.print(" Sai mat khau!!!"); lcd.setCursor(0,1); lcd.print(" Canh bao ."); beep(10); Serial2.print("DT_pk_cb: Co dot nhap");delay(2000); Serial2.print("DT_pk_cb: -"); mode=2; lcd.clear(); } 107 } } /*** ***/ Thực hiện: while(gmode==3){ hiển thị LCD lcd.setCursor(0,0);lcd.print("PKhach:t=");lcd.print(readTempKhach()); lcd.write(1);lcd.print("C h=");lcd.print(readHumidKhach());lcd.print("%"); lcd.setCursor(0,1);lcd.print("PNgu: t=");lcd.print(readTempNgu()); lcd.write(1);lcd.print("C h=");lcd.print(readHumidNgu());lcd.print("% "); //lcd.print("v=");lcd.print(y2);lcd.print("% "); lcd.setCursor(0,2);lcd.print("PBep:t=");lcd.print(readTempBep()); lcd.write(1); lcd.print("C h=");lcd.print(readHumidBep());lcd.print("% "); lcd.setCursor(0,3);lcd.print("PGtri: t=");lcd.print(readTempGiaitri()); lcd.write(1);lcd.print("C h=");lcd.print(readHumidGiaitri());lcd.print("% "); hiển thị lên web sprintf(buffer_Khach,"DT_pk_ts:Ndo=%dC DoAm=%d\n", readTempKhach(), readHumidKhach()); Serial2.print(buffer_Khach); sprintf(buffer_Ngu,"DT_pn_ts: Ndo=%dC DoAm=%d v=%d\n", readTempNgu(), readHumidNgu(),y2); Serial2.print(buffer_Ngu); sprintf(buffer_Giaitri,"DT_xp_ts: Ndo=%dC DoAm=%d\n", readTempGiaitri(), readHumidGiaitri()); Serial2.print(buffer_Giaitri); 108 sprintf(buffer_Bep,"DT_pb_ts: Ndo=%dC DoAm=%d\n",readTempBep(), readHumidBep()); Serial2.print(buffer_Bep); đọc giá trị từ ESp v xử lý / nhận tín hiệu điều khiển từ web if(Serial2.available()) { String res=Serial2.readStringUntil('\n'); //Serial.println(res); int index=res.indexOf("[DT_"); if(index!=-1) { res1=res.substring(index+0,index+7); res2=res.substring(index+8).toInt(); Serial.print(res1);Serial.print(" "); Serial.println(res2); } } if(res1==subcribe1&&res2==1){ mở cửa tr ớc svKhach.write(50);delay(1000); } else if(res1==subcribe1&&res2==0){ svKhach.write(110);delay(1000); } else if(res1==subcribe2&&res2==1){ //gara svGara.write(50);delay(1000); digitalWrite(ledGara,0); k=3; } else if(res1==subcribe2&&res2==0){ 109 svGara.write(112);delay(1000); digitalWrite(ledGara,1); k=3; } else if(res1==subcribe3&&res2==1){ giải trí svGiaitri.write(0);delay(1000); digitalWrite(ledGiaitri,1); } else if(res1==subcribe3&&res2==0){ svGiaitri.write(80);delay(1000); digitalWrite(ledGiaitri,0); } else if(res1==subcribe4&&res2==1){ mở cổng svVuon.write(50);delay(1000); } else if(res1==subcribe4&&res2==0){ svVuon.write(110);delay(1000); } //PNgu else if(res1==subcribe5) goc1=res2; điều khiển servo else if(res1==subcribe6) y1=res2; điều khiển đèn if(k==1&&count==1){ svGara.write(50);delay(1000); digitalWrite(ledGara,0); k=3; } else if(k==0&&count==2){ svGara.write(112);delay(1000); 110 digitalWrite(ledGara,1); k=3; } if(readLightSense()1000) goc1=0; cảnh báo nhiệt độ ph ng t ng mức if(readTempKhach()>=35){ beep(10); Serial2.print("DT_pk_cb: Qua muc nhiet\n"); delay(1000); } if(dr(pir_Bep)==0){ beep(10); Serial2.print("DT_pb_cb: Co dot nhap\n"); delay(1000); } nhiệt độ ph ng bếp t ng mức if(readTempBep()>=35){ beep(10); Serial2.print("DT_pb_cb: Qua muc nhiet\n"); delay(1000); //Serial.print("DT_pb_cb: Qua muc nhiet\n"); } khí gas ph ng bếp t ng mức if(ar(Gas_Bep)>=700){ beep(10); Serial2.print("DT_pb_cb: Qua muc gas\n"); delay(1000); 111 } if(readTempNgu()>=35) x1=230; else x1=180; if(readTempGiaitri()>=35) x2=230; else x2=180; ph ng bếp if(dr(rain_Bep)==0) {svBep.write(0); else {svBep.write(80);} if(ar(pir_Wc)>400) { digitalWrite(ledWc,0); digitalWrite(fanWc,1); } else { digitalWrite(ledWc,1); digitalWrite(fanWc,0); } y2=map(x1,150,255,0,100); digitalWrite(buzz,0); Serial2.print("DT_pb_cb: -\n"); Serial2.print("DT_pk_cb: -\n"); svNgu.write(goc1); analogWrite(fanNgu,x1); analogWrite(ledNgu,y1); analogWrite(fanGiaitri,x2); delay(200); 112 trời có m a } } ISR (TIMER1_OVF_vect) { if(dr(button_Gara)==0){ delay(30); if(dr(button_Gara)==0) { count++; if(count==1) k=1; nhấn l n else if(count==2) k=0; nhấn l n else if(count>2) count=0; //Serial.print(count);Serial.print(" ");Serial.println(k); while(dr(button_Gara)==0); } } TCNT1 =40535; } 113 7.3 h t đ ng điề n t ên Hệ thống giám sát v điều khiển thiết bị myTable { background-color:#ffffee; border-collapse:collapse; } myTable th { background-color:#c080ff; color:white; font-size: 20px; } myTable td, myTable th { padding:15px; border:1px solid #000; text-align: center; font-size: 18px; font-weight: bold; } b{width: 80px;height: 30px;font-size: 16px;color: #FFF;backgroundcolor:#4caf50;border-radius: 10px;} t{width: 80px;height: 30px;font-size: 16px;color: #FFF;background- 114 color:#f44336;border-radius: 10px;} var max,at_OK; function makeid() { var text = ""; var possible= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567 89"; for (var i = 0; i < 5; i++) text += possible.charAt(Math.floor(Math.random() * possible.length)); return text; } // Create a client instance var client = new Paho.MQTT.Client("broker.hivemq.com", 8000, makeid()); // set callback handlers client.onConnectionLost = onConnectionLost; client.onMessageArrived = onMessageArrived; var options = { useSSL: false, 115 userName: "", password: "", onSuccess:onConnect, onFailure:doFail } console.log("Connecting to broker.hivemq.com:8000"); // connect the client client.connect(options); function doFail(e){ console.log(e); } function onConnect() kiện kết nối th nh cơng { console.log("Connect OK"); client.subscribe( DT_pk_ts ); đ ng kí kênh client.subscribe("DT_pk_cb"); client.subscribe("DT_ga_cb"); client.subscribe("DT_pn_ts"); client.subscribe("DT_xp_ts"); client.subscribe("DT_pb_ts"); client.subscribe("DT_pb_cb"); client.subscribe("DT_vn_cb"); } // called when the client loses its connection 116 function onConnectionLost(responseObject) { if (responseObject.errorCode !== 0) { console.log(responseObject.errorMessage); } } // called when a message arrives function onMessageArrived(message) { console.log(message.destinationName + ":" +message.payloadString); document.getElementById(message.destinationName).innerHTML= message.payloadString; } function public (topic,data) { message = new Paho.MQTT.Message(data); message.destinationName = topic; client.send(message); } HỆ THỐNG GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT Ị 117 VỊ TRÍ < th> TH NG SỐ < th> CẢNH ÁO < th> THAO TÁC Phòng khách Mở< button>