TRƯỜNG ĐẠI HỌC DUY TÂN KHOA ĐIỆN ĐIỆN TỬ VÕ THÀNH ĐẠT THIẾT KẾ VÀ THI CÔNG MÔ HÌNH NHÀ VƯỜN THÔNG MINH SỬ DỤNG KĨ THUẬT IOT KHÓA LUẬN KỸ SƯ CÔNG NGHỆ KỸ THUẬT ĐIỆN ĐIỆN TỬ ĐÀ NẴNG, 2022 TRƯỜNG ĐẠI HỌC.
TRƯỜNG ĐẠI HỌC DUY TÂN KHOA ĐIỆN- ĐIỆN TỬ VÕ THÀNH ĐẠT THIẾT KẾ VÀ THI CƠNG MƠ HÌNH NHÀ VƯỜN THƠNG MINH SỬ DỤNG KĨ THUẬT IOT KHĨA LUẬN KỸ SƯ: CÔNG NGHỆ KỸ THUẬT ĐIỆN-ĐIỆN TỬ ĐÀ NẴNG, 2022 TRƯỜNG ĐẠI HỌC DUY TÂN KHOA ĐIỆN – ĐIỆN TỬ KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC THIẾT KẾ VÀ THI CƠNG MƠ HÌNH NHÀ VƯỜN THƠNG MINH SỬ DỤNG KĨ THUẬT IOT CHUYÊN NGÀNH: ĐIỆN TỰ ĐỘNG GVHD: TS LÊ VĂN ĐẠI SVTH: VÕ THÀNH ĐẠT MSSV: 24211716266 LỚP: Đà Nẵng, 2022 K24EDT2 Đồ án tốt nghiệp LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu Các số liệu, kết nêu Đồ án trung thực chưa cơng bố cơng trình khác NGƯỜI CAM ĐOAN Võ Thành Đạt GVHD: TS Lê Văn Đại SVTH: Võ Thành Đạt Đồ án tốt nghiệp LỜI CẢM ƠN Lời chúng em xin gửi lời cảm ơn sâu sắc đến thầy TS.Lê Văn Đại cương vị giảng viên hướng dẫn đề tài nhiệt tình bảo, hướng dẫn giảng giải vướng mắc làm đồ án tìm hiểu đề tài Cảm ơn thầy chủ nhiệm giảng viên môn cung cấp bổ sung mặt kiến thức , ghóp phần nâng cao vốn hiểu biết nghành học tạo tiền đề để thực đồ án thuận lợi Xin cảm ơn bạn khóa, khoa động viên, khích lệ ủng hộ nhiều mặt ghóp nên thành cơng đồ án hôm Xin chân thành cảm ơn! GVHD: TS Lê Văn Đại SVTH: Võ Thành Đạt Đồ án tốt nghiệp ĐẠI HỌC DUY TÂN KHOA ĐIỆN – ĐIỆN TỬ PHIẾU GIAO ĐỀ TÀI KHÓA LUẬN TỐT NGHIỆP TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH NHÀ VƯỜN THƠNG MINH SỬ DỤNG KĨ THUẬT IOT Họ tên sinh viên/ nhóm sinh viên giao đề tài (sĩ số nhóm: ): Văn Cao Siêu MSSV:24211704915 Lớp: EDT2 Võ Thành Đạt MSSV:24211716266 Lớp: EDT2 Mục tiêu đề tài : - Tìm hiểu Arduino Mega 2560, ESP8266 ứng dụng điều khiển Arduino Mega 2560, ESP8266 để điều khiển hoạt động mô hình; - Tìm hiểu website/ứng dụng Blynk thiết kế giao diện ứng dụng để điều khiển - hệ thống hiển thị thông số môi trường; - Liên kết website/ứng dụng với phần cứng; - Thiết kế thi cơng mơ hình thực nghiệm Nội dung nhiệm vụ : - Tìm hiểu đặc điểm, tính năng, nguyên lý hoạt động module vi xử lý, cảm biến có chức đo cường độ ánh sáng, nhiệt độ độ ẩm khơng khí , độ ẩm đất - Nghiên cứu chức giao thức truyền thông; - Thiết kế thi cơng phần cứng cho mơ hình; - Lập trình hệ thống thiết kế ứng dụng quản lý hệ thống; - Xây dựng hồn thiện mơ hình Kết tối thiểu phải có: - Hiểu rõ đặc điểm, tính Arduino Mega 2560 ESP8266; Thiết kế giao diện quản lý website/ứng dụng Blynk; Thiết kế làm mơ hình thực nghiệm Ngày giao đề tài: 15/09/2022 Sinh viên thực (Ký ghi rõ họ tên) GVHD: TS Lê Văn Đại Ngày nộp báo cáo: 07/12/2022 Đà Nẵng, ngày … tháng … năm ……… Giảng viên hướng dẫn (Ký ghi rõ họ tên) SVTH: Võ Thành Đạt Đồ án tốt nghiệp MỤC LỤC LỜI CAM ĐOAN LỜI NÓI ĐẦU CHƯƠNG TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục tiêu đề tài 1.3 Nội dung thực 1.4 Phương pháp nghiên cứu 1.5 Ý nghĩa thực tế 1.6 Bố cục luận văn CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Công nghệ Internet of Things 2.1.1.Nguồn gốc khái niệm Nguồn gốc 2.1.2 Kiến trúc IoT 2.1.3 Đặc điểm công nghệ IoT 2.1.4 Ưu nhược điểm IoT Ưu điểm: 2.1.5 Mơ hình IoT ứng dụng nông nghiệp 10 2.2 Giới thiệu phần mềm Arduino IDE 11 2.3 Giới thiệu ứng dụng Blynk 12 CHƯƠNG THIẾT KẾ MƠ HÌNH HỆ THỐNG 15 3.1 Tổng quan hệ thống 15 3.2 Sơ đồ khối 16 3.3 Thiết kế chi tiết hệ thống 16 3.3.1 Khối cảm biến 17 3.3.2 khối vận hành 20 3.3.3 Khối hiển thị 27 3.3.4 Khối nguồn 29 3.3.5 Khối xử lý trung tâm 31 3.3.6 Nguồn điện sử dụng 35 CHƯƠNG THI CÔNG HỆ THỐNG 42 4.1 Giới thiệu……………………………………………………………………42 4.2 Lựa chọn trồng cho hệ thống………………………………………… 42 GVHD: TS Lê Văn Đại SVTH: Võ Thành Đạt Đồ án tốt nghiệp 4.3 Kết quả…………………………………………………………………… 44 4.4 nhận xét 48 4.5 Đánh giá 49 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 50 5.1 Kết luận 50 5.2 Hướng phát triển 50 TÀI LIỆU THAM KHẢO PHỤ LỤC GVHD: TS Lê Văn Đại SVTH: Võ Thành Đạt Đồ án tốt nghiệp DANH MỤC HÌNH ẢNH Hình 1.1: Trồng vườn nhà kính Hình 1.2: Mơ hình nhà kính thực tế Hình 2.1: Kiến trúc lớp (A); Kiến trúc lớp (B) Hình 2.2: Mơ hình IoT ứng dụng nơng nghiệp 10 Hình 2.3: Giao diện phần mềm Arduino 11 Hình 2.4: Giới thiệu ứng dụng Blynk 13 Hình 2.5: Các thành phần tảng Blynk 13 Hình 3.1: Tổng quan hệ thống 15 Hình 3.2: Sơ đồ khối hệ thống 16 Hình 3.3: Cảm biến mưa 17 Hình 3.4: Cảm biến nhiệt độ độ ẩm khơng khí DHT11 18 Hình 3.5: Cảm biến độ ẩm đất 19 Hình 3.6: Cảm biến ánh sáng 20 Hình 3.7: Động bơm nước 21 Hình 3.8: Động quạt 12v 22 Hình 3.9: Động 12v 22 Hình 3.10: Đèn LED dây 23 Hình 3.11: Đèn dây tóc 24 Hình 3.12: Cơng tắc hành trình 25 Hình 3.13: Module relay kênh 26 Hình 3.14: Module relay kênh 26 Hình 3.15: Bàn phím mềm 1x4 27 Hình 3.16: Màng hình LCD 28 Hình 3.17: Giao tiếp I2C 29 Hình 3.18: Nguồn tổ ơng 12v 30 Hình 3.19: Mạch hạ áp 31 Hình 3.20: Module ESP32 32 Hình 3.21: CPU ESP32 33 Hình 3.22: Ngoại vi 34 Hình 3.23: Sơ đồ nối chân 37 Hình 3.24: Lưu đồ chương trình module ESP32 38 GVHD: TS Lê Văn Đại SVTH: Võ Thành Đạt Đồ án tốt nghiệp Hình 3.25: Lưu đồ chương trình ESP32 với ứng dụng Blynk 39 Hình 3.26: Lưu đồ lựa chọn chế độ tự động thủ công nút nhấn 40 Hình 3.27: Lưu đồ chế độ tự động 41 Hình 3.28: Lưu đồ chương trình chế độ thủ công 42 Hình 4.1 : Trồng dâu tây nhà kính 43 Hình 4.2: Cây cà chua trồng nhà kính 44 Hình 4.3: Giao diện người dùng 46 Hình 4.4: Giao diện hiển thị LCD 47 Hình 4.5: Mơ hình hồn chỉnh 47 Hình 4.6: Mơ hình hồn chỉnh 48 GVHD: TS Lê Văn Đại SVTH: Võ Thành Đạt Đồ án tốt nghiệp DANH MỤC CÁC TỪ VIẾT TẮT IOT UART I2C I2S GPIO SPI SCL SDA ADC PWM MCU IDE DC AC RAM ROM USB LCD LDR RFID Internet Of Things Universal Asynchronous Receiver / Transmitter Inter-Integrated Circuit Inter-IC Sound General Purpose Input Output Serial Peripheral Interface Serial Clock Line Serial Data Line Analog to Digital Converter Pulse Width Modulation Micro Controller Unit Integrated Development Environment Direct Current Alternating Current Random Access Memory Read-Only Memory Universal Serial Bus Liquid Crystal Display Light-dependent resistor Radio Frequency Identification GVHD: TS Lê Văn Đại SVTH: Võ Thành Đạt Đồ án tốt nghiệp LiquidCrystal_I2C lcd(0x3F, 20, 4); DHT dht(DHTPIN, DHTTYPE); int V03,V012,V013,V014,V015,V016=0; int Chedo,RL1,RL2,RL3,RL4,MAICHE=0; float h ; float t ; bool connected = false; int VT = 0; void setup() { Serial.begin(9600); pinMode(LED,OUTPUT); pinMode(DENSUOI,OUTPUT); pinMode(DENLED,OUTPUT); pinMode(QUAT,OUTPUT); pinMode(PHUNSUONG,OUTPUT); pinMode(REM1,OUTPUT); pinMode(REM2,OUTPUT); pinMode(MUA,INPUT); pinMode(SANG,INPUT); pinMode(NB1,INPUT); pinMode(NB2,INPUT); pinMode(NB3,INPUT); pinMode(NB4,INPUT); lcd.begin(); dht.begin(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("ND:"); lcd.setCursor(10, 0); lcd.print("DA:"); lcd.setCursor(0, 1); lcd.print("CheDo:"); GVHD: TS Lê Văn Đại SVTH: Cao Văn Siêu – Võ Thành Đạt Đồ án tốt nghiệp lcd.setCursor(12, 1); lcd.print("RL1:"); lcd.setCursor(0, 2); lcd.print("RL2:"); lcd.setCursor(10, 2); lcd.print("RL3:"); lcd.setCursor(0, 3); lcd.print("RL4:"); lcd.setCursor(8, 3); lcd.print("MAICHE:"); } void ketnoi() { if(!Blynk.connected() && connected) { Blynk.disconnect(); delay(500); connected = false; digitalWrite(LED,HIGH); Blynk.begin(auth, ssid, pass); } else { connected = true; digitalWrite(LED,LOW); } } void hienthi() { GVHD: TS Lê Văn Đại SVTH: Cao Văn Siêu – Võ Thành Đạt Đồ án tốt nghiệp lcd.setCursor(4, 0); lcd.print(t,1); lcd.setCursor(14, 0); lcd.print(h,1); if(Chedo == 1) { lcd.setCursor(6, 1); lcd.print("REMOTE"); } else { lcd.setCursor(6, 1); lcd.print("LOCAL "); } if(RL1 == 1) { lcd.setCursor(17, 1); lcd.print("ON "); } else { lcd.setCursor(17, 1); lcd.print("OFF"); } if(RL2 == 1) { lcd.setCursor(5, 2); lcd.print("ON "); } GVHD: TS Lê Văn Đại SVTH: Cao Văn Siêu – Võ Thành Đạt Đồ án tốt nghiệp else { lcd.setCursor(5, 2); lcd.print("OFF"); } if(RL3 == 1) { lcd.setCursor(15, 2); lcd.print("ON "); } else { lcd.setCursor(15, 2); lcd.print("OFF"); } if(RL4 == 1) { lcd.setCursor(5, 3); lcd.print("ON "); } else { lcd.setCursor(5, 3); lcd.print("OFF"); } if(MAICHE == 1) { lcd.setCursor(15, 3); lcd.print("OPEN "); } else GVHD: TS Lê Văn Đại SVTH: Cao Văn Siêu – Võ Thành Đạt Đồ án tốt nghiệp { lcd.setCursor(15, 3); lcd.print("CLOSE"); } } WidgetLED Remote(V2); WidgetLED Local(V4); WidgetLED Densuoi(V5); WidgetLED Denled(V6); WidgetLED Quat(V7); WidgetLED Phunsuong(V8); WidgetLED Rem(V9); WidgetLED Mua(V10); WidgetLED Sang(V11); BLYNK_WRITE(V3){V03 = param.asInt(); } BLYNK_WRITE(V12){V012 = param.asInt(); } BLYNK_WRITE(V13){V013 = param.asInt(); } BLYNK_WRITE(V14){V014 = param.asInt(); } BLYNK_WRITE(V15){V015 = param.asInt(); } BLYNK_WRITE(V16){V016 = param.asInt(); } void TT() { if(Chedo ==1) { Remote.on(); Local.off(); } GVHD: TS Lê Văn Đại SVTH: Cao Văn Siêu – Võ Thành Đạt Đồ án tốt nghiệp else { Remote.off(); Local.on(); } if(digitalRead(DENSUOI)==HIGH) { Densuoi.on(); RL1=1; } else { Densuoi.off(); RL1=0; } if(digitalRead(DENLED)==HIGH) { Denled.on(); RL2=1; } else { Denled.off(); RL2=0; } if(digitalRead(QUAT)==HIGH) { RL3=1; Quat.on(); } GVHD: TS Lê Văn Đại SVTH: Cao Văn Siêu – Võ Thành Đạt Đồ án tốt nghiệp else { Quat.off(); RL3=0; } if(digitalRead(PHUNSUONG) == HIGH) { RL4=1; Phunsuong.on(); } else { Phunsuong.off(); RL4=0; } if(digitalRead(CTHT1)==HIGH) { Rem.on(); MAICHE = 1; } if(digitalRead(CTHT2)==HIGH) { Rem.off(); MAICHE = 0; } if(digitalRead(MUA) == LOW) Mua.on(); else Mua.off(); if(digitalRead(SANG)==LOW) GVHD: TS Lê Văn Đại SVTH: Cao Văn Siêu – Võ Thành Đạt Đồ án tốt nghiệp Sang.off(); else Sang.on(); } void CheDoLocal() { if(digitalRead(NB1)==LOW) { VT=VT+1; } if(VT == ) { lcd.setCursor(6, 1); lcd.print(" "); delay(300); } else if ( VT == ) { lcd.setCursor(17, 1); lcd.print(" "); delay(300); } else if( VT ==3) { lcd.setCursor(5, 2); lcd.print(" "); delay(300); } else if(VT == 4) { lcd.setCursor(15, 2); lcd.print(" "); GVHD: TS Lê Văn Đại SVTH: Cao Văn Siêu – Võ Thành Đạt Đồ án tốt nghiệp delay(300); } else if(VT ==5) { lcd.setCursor(5, 3); lcd.print(" "); delay(300); } else if(VT == 6) { lcd.setCursor(15, 3); lcd.print(" "); delay(300); } else if(VT ==7 || (digitalRead(NB4) == LOW) ) { VT = 0; } if((digitalRead(NB2)==LOW || digitalRead(NB3) == LOW ) && VT ==1 ) { while((digitalRead(NB2)==LOW || digitalRead(NB3) == LOW ) && VT ==1 ){} if(Chedo == 1) Chedo=0; else Chedo=1; } if((digitalRead(NB2)==LOW || digitalRead(NB3) == LOW ) && VT ==2 && Chedo == 0) { while((digitalRead(NB2)==LOW || digitalRead(NB3) == LOW ) && VT ==2 GVHD: TS Lê Văn Đại SVTH: Cao Văn Siêu – Võ Thành Đạt Đồ án tốt nghiệp && Chedo == ){} if(digitalRead(DENSUOI)==HIGH) digitalWrite(DENSUOI,LOW); else digitalWrite(DENSUOI,HIGH); } if((digitalRead(NB2)==LOW || digitalRead(NB3) == LOW ) && VT ==3 && Chedo == 0) { while((digitalRead(NB2)==LOW || digitalRead(NB3) == LOW ) && VT ==3 && Chedo == ){} if(digitalRead(DENLED)==HIGH) digitalWrite(DENLED,LOW); else digitalWrite(DENLED,HIGH); } if((digitalRead(NB2)==LOW || digitalRead(NB3) == LOW ) && VT ==4 && Chedo == 0) { while((digitalRead(NB2)==LOW || digitalRead(NB3) == LOW ) && VT ==4 && Chedo == ){} if(digitalRead(QUAT)==HIGH) digitalWrite(QUAT,LOW); else digitalWrite(QUAT,HIGH); } if((digitalRead(NB2)==LOW || digitalRead(NB3) == LOW ) && VT ==5 && Chedo == 0) { while((digitalRead(NB2)==LOW || digitalRead(NB3) == LOW ) && VT ==5 && Chedo == 0){} if(digitalRead(PHUNSUONG)==HIGH) GVHD: TS Lê Văn Đại SVTH: Cao Văn Siêu – Võ Thành Đạt Đồ án tốt nghiệp digitalWrite(PHUNSUONG,LOW); else digitalWrite(PHUNSUONG,HIGH); } if((digitalRead(NB2)==LOW || digitalRead(NB3) == LOW ) && VT ==6 && Chedo == 0) { while((digitalRead(NB2)==LOW || digitalRead(NB3) == LOW ) && VT ==6 && Chedo == 0){} if(V016==1) V016=0; else V016 = 1; } } void loop() { int percent = map(analogRead(DADat), 0, 4095, 100, 0); //Serial.println(percent); hienthi(); ketnoi(); Blynk.run(); TT(); h = dht.readHumidity(); t = dht.readTemperature(); Blynk.virtualWrite(V0,t); Blynk.virtualWrite(V1,h); Blynk.virtualWrite(V17,percent); GVHD: TS Lê Văn Đại SVTH: Cao Văn Siêu – Võ Thành Đạt Đồ án tốt nghiệp CheDoLocal(); while(digitalRead(CTHT1)==LOW && V016 == && Chedo == 0) { delay(200); digitalWrite(REM1,HIGH); digitalWrite(REM2,LOW); } while(digitalRead(CTHT2)==LOW && V016 == && Chedo == 0) { delay(200); digitalWrite(REM1,LOW); digitalWrite(REM2,HIGH); } digitalWrite(REM1,LOW); digitalWrite(REM2,LOW); if(Chedo == 1) { if(V03 == 0) { if(t>30) digitalWrite(QUAT,HIGH); else if(t