Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 103 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
103
Dung lượng
3,73 MB
Nội dung
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 THIẾT KẾ VÀ THI CƠNG HỆ THỐNG IOT CHĂM SĨC VƯỜN CÂY DÙNG PIN NĂNG LƯỢNG MẶT TRỜI Ngành: Kỹ thuật Điều khiển & Tự động hóa Giảng viên hướng dẫn: PGS TS Nguyễn Hùng SVTH: Hứa Phước Tài MSSV: 1511050240 Lớp:15DTD01 SVTH: Nguyễn Ngọc Nhật MSSV: 1711050233 Lớp:17DTDA2 SVTH: Nguyễn Anh Đức Lớp:17DTDA2 MSSV: 1711050267 Tp.HCM, ngày 29 tháng 08 năm 2021 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 THIẾT KẾ VÀ THI CÔNG HỆ THỐNG IOT CHĂM SÓC VƯỜN CÂY DÙNG PIN NĂNG LƯỢNG MẶT TRỜI Ngành: Kỹ thuật Điều khiển & Tự động hóa Giảng viên hướng dẫn: PGS TS Nguyễn Hùng SVTH: Hứa Phước Tài MSSV: 1511050240 Lớp:15DTD01 SVTH: Nguyễn Ngọc Nhật MSSV: 1711050233 Lớp:17DTDA2 SVTH: Nguyễn Anh Đức Lớp:17DTDA2 MSSV: 1711050267 Tp.HCM, ngày 29 tháng 08 năm 2021 BM01/QT05/ĐT-KT VIỆN KỸ THUẬT HUTECH PHIẾU ĐĂNG KÝ ĐỀ TÀI ĐỒ ÁN/KHÓA LUẬN TỐT NGHIỆP Hệ: CHÍNH QUY (CQ, LT, B2, VLVH) Họ tên sinh viên/ nhóm sinh viên đăng ký đề tài (sĩ số nhóm: 3): (1) Hứa Phước Tài MSSV: 1511050240 Lớp: 15DTD01 Điện thoại: 0962895395 Email:huathien771@gmail.com (2) Nguyễn Ngọc Nhật MSSV: 1711050233 Lớp: 17DTDA2 Điện thoại: 0362905367 Email: nguyenngocnhat.154@gmail.com (3) Nguyễn Anh Đức MSSV: 1711050267 Lớp: 17DTDA2 Điện thoại: 0856065175 Email:louispanda1999@gmail.com Ngành : Viện kỹ thuật HUTECH Chuyên ngành : Kỹ thuật Điều khiển & Tự động hóa Tên đề tài đăng ký : Thiết kế thi công hệ thống IOT chăm sóc vườn sữ dụng pin lượng mặt trời Sinh viên hiểu rõ yêu cầu đề tài cam kết thực đề tài theo tiến độ hoàn thành thời hạn Giảng viên hướng dẫn TP HCM, ngày 11 tháng 04 năm 2021 (Ký ghi rõ họ tên) Sinh viên đăng ký (Ký ghi rõ họ tên) ` ` LỜI CAM ĐOAN Chúng em xin cam đoan cơng trình nghiên cứu nhóm em hướng dẫn khoa học PGS TS Nguyễn Hùng Các nội dung nghiên cứu, kết đề tài chúng em tự tìm hiểu, phân tích chưa cơng bố hình thức trước Những số liệu hình ảnh phục vụ cho việc phân tích, nhận xét đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Nếu phát có gian lận chúng em xin hoàn toàn chịu trách nhiệm nội dung đồ án TP.HCM, ngày 29 tháng 08 năm 2021 Sinh viên thực i ` ` LỜI CẢM ƠN Quá trình thực đồ án tốt nghiệp giai đoạn quan trọng quãng đời sinh viên Đồ án tốt nghiệp tiền đề nhằm trang bị cho chúng em kĩ nghiên cứu, kiến thức thực tiễn quý báu trước lập nghiệp Trên thực tế khơng có thành cơng mà khơng gắn liền với hỗ trợ giúp đỡ dù hay nhiều, dù trực tiếp hay gián tiếp Trong suốt thời gian từ bắt đầu làm đồ án đến chúng em nhận nhiều quan tâm giúp đỡ quý thầy cô bạn bè Trước hết em xin chân thành cảm ơn Thầy cô Trường Đại học Công nghệ thành phố Hồ Chí Minh, đặc biệt thầy Viện Kỹ Thuật HUTECH tận tình dạy trang bị cho chúng em kiến thức cần thiết suốt thời gian ngồi giảng đường làm nên tảng cho việc thực đồ án tốt nghiệp Xin trân trọng cảm ơn PGS.TS Nguyễn Hùng tận tình hướng dẫn, giúp đỡ, định hướng tư cách làm việc có hiệu cho chúng em Đây góp ý q báu khơng suốt q trình thực đồ án mà cịn hành trang để chúng em bước tiếp trình học tập lập nghiệp tới Do kiến thức chúng em hạn chế gặp số khó khăn định lúc thực đồ án nên khơng tránh khỏi thiếu sót, chúng em mong nhận ý kiến đóng góp quý báu quý thầy cô bạn học để kiến thức chúng em hoàn thiện Chúng em xin chân thành cảm ơn ! ii ` ` MỤC LỤC LỜI CAM ĐOAN I LỜI CẢM ƠN I MỤC LỤC III DANH MỤC HÌNH ẢNH VI DANH MỤC BẢNG IX CHƯƠNG 1: GIỚI THIỆU 1.1 Đặt vấn đề .1 1.2 Mục tiêu nghiên cứu .2 1.3 Nội dung nghiên cứu 1.4 Phương pháp nghiên cứu 1.5 Phạm vi nghiên cứu 1.6 Kết cấu đồ án CHƯƠNG 2: TỔNG QUAN ĐỀ TÀI 2.1 Giới thiệu 2.2 Lịch sử hình thành IOT 2.3 Khảo sát trạng IOT .5 2.4 Tình hình nghiên cứu nước ngồi 2.5 Tình hình nghiên cứu nước 2.6 Tổng quan .9 2.7 Giải pháp .10 CHƯƠNG 3: PHƯƠNG PHÁP GIẢI QUYẾT 11 3.1 Đặc tính xanh nơng nghiệp 11 3.2 Các nhân tố ảnh hưởng đến trồng 11 3.2.1 Ảnh hưởng ánh sáng đến quang hợp .11 3.2.2 Ảnh hưởng nồng độ CO2 .11 3.2.3 Ảnh hưởng nước 12 3.2.4 Ảnh hưởng nhiệt độ .12 3.2.5 Ảnh hưởng nguyên tố khoáng 12 3.3 Tăng suất trồng 12 iii ` ` 3.4 Đặc tính cà chua 13 3.5 Ứng dụng IoT nông nghiệp .14 3.5.1 Giới thiệu 14 3.5.2 Cấu trúc hệ thống ứng dụng công nghệ IoT .15 3.5.3 Yêu cầu hệ thống IoT .16 3.5.4 Đặc trưng hệ thống IoT 17 3.5.5 Ưu nhược điểm IoT .18 3.6 Các chuẩn liệu, chuẩn kết nối 18 3.6.1 Chuẩn giao tiếp UART 18 3.6.2 Chuẩn giao tiếp I2C 20 3.6.3 Giao thức MQTT ( Message Queuing Telemetry Transport) 22 3.6.4 Giao thức truyền liệu Bluetooth .23 3.6.5 Chuẩn giao tiếp One – Wire 25 CHƯƠNG 4: THIẾT KẾ MÔ HÌNH 27 4.1 Thiết kế sơ đồ khối hệ thống 27 4.2 Khối xử lí 29 4.2.1 Nodemcu ESP32 29 4.2.2 Lý chọn Nodemcu ESP32 .31 4.2.3 Phần mềm lập trình Nodemcu ESP32 31 4.3 Khối cảm biến .32 4.3.1 Cảm biến nhiệt độ 32 4.3.2 Cảm biến độ ẩm đất 33 4.3.3 Cảm biến cường độ ánh sáng .36 4.5 Khối điều khiển giám sát .38 4.5.1 Nút nhấn .38 4.5.2 Màn hình LCD 39 4.6 Khối chấp hành 41 4.6.1 Module L298N .42 4.6.2 Relay .43 4.6.3 Đèn LED .45 4.6.4 Động bơm .46 iv ` ` CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 Kết luận Ưu điểm: Xây dựng mơ hình hệ thống Vận hành thử nghiệm thành công với mô hình hệ thống điều khiển thơng minh chăm sóc khu vườn Thiết lập hệ thống điều khiển giám sát hệ thống qua mạng wifi Giám sát hệ thống qua app điện thoại blynk hình LCD Thu thập thơng số nhiệt độ độ ẩm qua cảm biến Khuyết điểm: Hệ thống chưa có nhiều cảm biến để quản lý thông số môi trường CO2, O2 Chưa có camera giám sát Chưa có mái che Chưa có hệ thống báo cố cho người sử dụng 6.2 Hướng phát triển đề tài Thiết kế thông báo sms cho người vận hành có cố Có camera để quan sát hình ảnh thực tế từ xa Hệ thống bón phân phun thuốc trừ sâu tự động Hệ thống cần có phận nhận biết lượng CO2 để điều chỉnh lượng CO2 theo yêu cầu để quang hợp tốt Thiết kế thêm rèm che tự động cho mơ hình 6.3 Ứng dụng Hệ thống ứng dụng hộ gia đình để chăm sóc vườn rau vừa nhỏ Ứng dụng mở rộng với quy mô lớn tưới nước tự động cho vườn ăn trái, vườn rau 74 ` ` TÀI LIỆU THAM KHẢO [1] http://www.thetealab.us/anh-huong-cua-moi-truong-den-cay-trong/ [2] https://tktech.vn/cam-bien/ [3] https://tek4.vn/tong-quan-ve-internet-of-things-iots [4] https://lophocvui.com/iot-internet-of-things/smart-home/openhab/tong-quan-veesp8266/ [5] https://vidieukhien.xyz/2020/02/07/lap-trinh-esp32-voi-arduino-cai-dat-moitruong/ [6] http://luutrudien.vn/long/binh-ac-quy/ac-quy-kin-khi-vrla-agm-long-12v-5ahwp5-12-3495.html [7] https://givasolar.com.vn/model/bo-dieu-khien-sac-nang-luong-mat-troi-yjss10pwm-10a/ [8] https://vuphong.vn/cau-tao-pin-nang-luong-mat-troi/ [9] https://techway.vn/tam-pin-nang-luong-mat-troi-10w-poly/ [10]http://arduino.vn/bai-viet/893-cach-dung-module-dieu-khien-dong-co-l298ncau-h-de-dieu-khien-dong-co-dc [11] https://arduinokit.vn/cai-dat-esp8266-voi-blynk/ [12] https://vngiotlab.github.io/vbluno/vi/mydoc_arduino_tut10_vi.html [13] https://dientu360.com/cam-bien-do-am-dat [14] https://nshopvn.com/product/cam-bien-cuong-do-anh-sang-quang-tro/ [15] https://www.thegioiic.com/products/r385-may-bom-nuoc-12v-1-2l-phut [16] https://maka.vn/blogs/giai-phap-tuoi-nho-giot/he-thong-tuoi-nho-giot-cho-cayla-gi [17] https://cafebiz.vn/nong-trai-thang-dung-giai-phap-luong-thuc-cho-the-gioitrong-tuong-lai-20170505080204204.chn 75 ` ` PHỤ LỤC Code chương trình: #define BLYNK_PRINT Serial #include #include #include #include #include #include #define CBDAT 39 #define CBAS 36 #define DHTPIN 15 #define DHTTYPE DHT11 #define PIN_BOM 27 #define PIN_DEN 14 #define PIN_QUAT 13 #define BT_QUAT 26 #define BT_DEN 25 76 ` ` #define BT_BOM 33 #define BT_MODE 32 char auth[] = "wb193mzNZp1djii10b98FKH1ex-AN-Y7"; char ssid[] = "3 BINH MINH"; char pass[] = "T123321123"; char server[] = "blynk-cloud.com"; // URL for Blynk Cloud Server int port = 8080; int ModeState = 0; int st_bom = LOW; int st_den = LOW; int st_quat = LOW; int st_bt_mode = HIGH; int st_bt_bom = HIGH; int st_bt_den = HIGH; int st_bt_quat = HIGH; int h , t, doamdat, doamdatcai = 50; int cbdat_value, cbdong_value, cbas_value, mkn = 1; 77 ` ` byte ktdegree[8] = {0B01110, 0B01010, 0B01110, 0B00000, 0B00000, 0B00000, 0B00000, 0B00000}; DHT dht(DHTPIN, DHTTYPE); BlynkTimer timer; LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { Serial.begin(9600); pinMode(BT_MODE, INPUT_PULLUP); pinMode(BT_BOM, INPUT_PULLUP); pinMode(BT_DEN, INPUT_PULLUP); pinMode(BT_QUAT, INPUT_PULLUP); pinMode(CBDAT, INPUT); pinMode(CBAS, INPUT); pinMode(PIN_BOM, OUTPUT); pinMode(PIN_DEN, OUTPUT); pinMode(PIN_QUAT, OUTPUT); analogWrite(PIN_BOM, 0); 78 ` ` analogWrite(PIN_DEN, 0); digitalWrite(PIN_QUAT, 0); dht.begin(); lcd.begin (); lcd.backlight(); lcd.createChar(1, ktdegree); lcd.setCursor(0, 0); lcd.print("Vuon IOT"); timer.setInterval(500L, sendSensor); timer.setInterval(100L, checkPhysicalButton); timer.setInterval(5000L, xoalcd); delay(1000); lcd.clear(); } void loop() { if (mkn == 1) { WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { 79 ` ` lcd.setCursor(15, 0); lcd.print("!"); doamdatcai = 50; delay(50); timer.run(); LCD_HT(); CHE_DO(); } Blynk.config(auth, server, port); Blynk.connect(); mkn = 0; } if (WiFi.status() != WL_CONNECTED) mkn = 1; Blynk.run(); timer.run(); LCD_HT(); CHE_DO(); } //////////////////////////////////// void CHE_DO() { if (ModeState == 0) { 80 ` ` lcd.setCursor(14, 1); lcd.print("Ma"); MAN_MODE(); } else { lcd.setCursor(14, 1); lcd.print("Au"); AUTO_MODE(); } } /////////////////////////////////////////////////////////////// void xoalcd() { lcd.clear(); } ////////////////////////////////////////////////////////////// void LCD_HT() { lcd.setCursor(0, 0); lcd.print("T:"); lcd.print(t); lcd.write(1); lcd.print("C"); 81 ` ` lcd.setCursor(8, 0); lcd.print("H:"); lcd.print(h); lcd.print("%"); lcd.setCursor(0, 1); lcd.print("HumG: "); lcd.print(doamdat); lcd.print("%"); } //////////////////////////////////////////////////////////// void MAN_MODE() { if (st_bom == 0) { analogWrite(PIN_BOM, 0); Blynk.virtualWrite(V4, LOW); } else { analogWrite(PIN_BOM, 255); Blynk.virtualWrite(V4, HIGH); } if (st_den == 0) { analogWrite(PIN_DEN, 0); 82 ` ` Blynk.virtualWrite(V5, LOW); } else { analogWrite(PIN_DEN, 255); Blynk.virtualWrite(V5, HIGH); } if (st_quat == 0) { digitalWrite(PIN_QUAT, 0); Blynk.virtualWrite(V6, LOW); } else { digitalWrite(PIN_QUAT, 1); Blynk.virtualWrite(V6, HIGH); } } /////////////////////////////////////////////////////////// void AUTO_MODE() { if ( doamdat < doamdatcai) { analogWrite(PIN_BOM, 255); Blynk.virtualWrite(V4, HIGH); } else { analogWrite(PIN_BOM, 0); Blynk.virtualWrite(V4, LOW); 83 ` ` } cbas_value = analogRead(CBAS); int cbas_value1 = map ( cbas_value , 0, 4095, 0, 255); Serial.println(cbas_value1); analogWrite(PIN_DEN, cbas_value1 ); } void sendSensor() { h = dht.readHumidity(); t = dht.readTemperature(); cbdat_value = analogRead(CBDAT); doamdat = map( cbdat_value, 0, 4095, 100, 0); cbas_value = analogRead(CBAS); Blynk.virtualWrite(V0, h); Blynk.virtualWrite(V1, t); Blynk.virtualWrite(V2, doamdat); } /////////////////////////////////////////////////////////////// void checkPhysicalButton() { if (digitalRead(BT_MODE) == LOW) { 84 ` ` if (st_bt_mode != LOW) { ModeState = !ModeState; Blynk.virtualWrite(V3, ModeState); } st_bt_mode = LOW; } else { st_bt_mode = HIGH; } if (ModeState == 0) { if (digitalRead(BT_BOM) == LOW) { if (st_bt_bom != LOW) { st_bom = !st_bom; Blynk.virtualWrite(V4, st_bom); } st_bt_bom = LOW; } else { st_bt_bom = HIGH; } if (digitalRead(BT_DEN) == LOW) { if (st_bt_den != LOW) { 85 ` ` st_den = !st_den; Blynk.virtualWrite(V5, st_den); } st_bt_den = LOW; } else { st_bt_den = HIGH; } if (digitalRead(BT_QUAT) == LOW) { if (st_bt_quat != LOW) { st_quat = !st_quat; Blynk.virtualWrite(V6, st_quat); } st_bt_quat = LOW; } else { st_bt_quat = HIGH; } } } //////////////////////////////////////////////////////////////// BLYNK_CONNECTED() { Blynk.syncVirtual(V0); 86 ` ` Blynk.syncVirtual(V1); Blynk.syncVirtual(V2); Blynk.syncVirtual(V3); Blynk.syncVirtual(V4); Blynk.syncVirtual(V5); Blynk.syncVirtual(V6); } //////////////////////////////////////////////////////////////// BLYNK_WRITE(V3) { ModeState = param.asInt(); } BLYNK_WRITE(V4) { if (ModeState == 0) st_bom = param.asInt(); } BLYNK_WRITE(V6) { if (ModeState == 0) st_quat = param.asInt(); } BLYNK_WRITE(V5) { if (ModeState == 0) st_den = param.asInt(); 87 ` ` } BLYNK_WRITE(V7) { doamdatcai = param.asInt(); } 88