ĐỒ Á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 MSSV 1711050267 Lớp 17DTDA2 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Ă.
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 ` ` 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 ` ` 4.6.5 Quạt tản nhiệt .48 4.7 Khối Internet (Blynk) 50 4.7.1 Các thành phần Blynk 50 4.7.2 Lý chọn Blynk 50 4.7.3 Cách thức hoạt động .51 4.8 Khối nguồn 56 4.8.1 Pin lượng mặt trời 56 4.8.2 Ắc quy dự trử lượng 57 4.8.3 Bộ điều khiển sạc pin lượng mặt trời 59 4.8.4 Module hạ áp 61 CHƯƠNG 5: THI CƠNG MƠ HÌNH 64 5.1 Lưu đồ thuật toán hệ thống 64 5.2 Sơ đồ kết nối hệ thống .66 5.3 Kết thi công 69 5.4 Kết luận .73 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .74 6.1 Kết luận .74 6.2 Hướng phát triển đề tài .74 6.3 Ứng dụng 74 TÀI LIỆU THAM KHẢO 75 PHỤ LỤC 76 v ` ` DANH MỤC HÌNH ẢNH Hình 2.1 : Hệ thống tưới nhỏ giọt Hình 2.2 : Mơ hình nơng trại thẳng đứng Hình 2.3 : Hệ thống tưới quýt tự động ông Nguyễn Phú Thạnh Hình 2.4 : Hệ thống tưới tự động kỹ sư Vi Tồn Nghĩa Hình 3.1 : Internet of Things 14 Hình 3.2 : Ứng dụng IoT nông nghiệp 15 Hình 3.3 : Cấu trúc hệ thống IoT 15 Hình 3.4 : Hệ thống truyền liệu bất đồng 19 Hình 3.5 : Chuẩn giao tiếp I2C 21 Hình 3.6 : Giao tiếp I2C với nhiều module 21 Hình 3.7 : Giao thức MQTT 22 Hình 3.8 : Bluetoooth kết nối thiết bị 23 Hình 3.9 : Chuẩn giao tiếp One - Wire 25 Hình 3.10 : Giao tiếp One - Wire 26 Hình 4.1 : Sơ đồ khối hệ thống 27 Hình 4.2 : Sơ đồ khối hệ thống thiết bị thực tế 28 Hình 4.3 : Nodemcu ESP32 29 Hình 4.4 : Sơ đồ chân Nodemcu ESP32 30 Hình 4.5 : Giao diện phần mêm Arduino IDE 31 Hình 4.6 : Cảm biến DTH11 32 Hình 4.7 : Kết nối DTH11 với Nodemcu ESP 32 33 Hình 4.8 : Cảm biến độ ẩm đất 34 Hình 4.9 : Kết nối cảm biến độ ẩm đất với Nodemcu ESP32 35 Hình 4.10 : Cảm biến ánh sáng 36 Hình 4.11: Kết nối cảm biến ánh sáng với Nodemcu ESP32 37 vi ` ` Hình 4.12 : Nút nhấn DS-361 38 Hình 4.13 : Kết nối nút nhấn với Nodemcu ESP32 39 Hình 4.14 : Màn hình LCD 40 Hình 4.15 : Cấu tạo hình LCD 40 Hình 4.16 : Kết nối LCD với Nodemcu ESP32 41 Hình 4.17 : Module LM298 42 Hình 4.18 : Kết nối Nodemcu ESP32 với LM298 43 Hình 4.19 : Relay cấu tạo bên 44 Hình 4.20 : Cơ cấu tác động relay 44 Hình 4.21 : Mạch ngun lí module relay 45 Hình 4.22 : Đèn LED dây 45 Hình 4.23 : Kết nối LED dây với LM298 46 Hình 4.24 : Động bơm R385 – 12V 47 Hình 4.25 : Kết nối bơm với Nodemcu ESP32 48 Hình 4.26 : Quạt tản nhiệt Coolerguys 48 Hình 4.27 : Kết nối quạt với Relay Nodemcu ESP32 49 Hình 4.28 : Biểu tượng Blynk 50 Hình 4.29 : Giao diện Blynk 51 Hình 4.30 : Tạo project 52 Hình 4.31 : Chọn board 53 Hình 4.32 : Blynk gữi mã Auth Token qua gmail 53 Hình 4.33 : Chọn đối tượng Widget Box 54 Hình 4.34 : Chọn cấu hình chân, mức logic 54 Hình 4.35 : Chọn Module sữ dụng 55 Hình 4.36 : Tải thư viện Blynk 55 Hình 4.37 : Giao diện hoàn chỉnh 56 Hình 4.38 : Pin lượng mặt trời 12V – 10W 58 vii ` ` Hình 4.39 : Ắc quy 12V – 5A 58 Hình 4.40 : Bộ điều khiển sạc pin lượng mặt trời 60 Hình 4.41 : Module hạ áp LM2596 62 Hình 4.42 : Sơ đồ nguyên lý mạch hạ áp LM2596 62 Hình 5.1 : Lưu đồ thuật toán hệ thống 65 Hình 5.2 : Sơ đồ kết nối hệ thống 66 Hình 5.3 : Mơ hình thực tế 69 Hình 5.4 : Hiển thị LCD chế độ Auto 70 Hình 5.5 : Hiển thị LCD chế độ thủ công 70 Hình 5.6 : Hiển thị lỗi chưa kết nối wifi internet 71 Hình 5.7 : Quạt hoạt động nhiệt độ cao 71 Hình 5.8 : Hoạt động thực tế app điều khiển 72 Hình 5.9 : Hiển thị điện thoại 72 Hình 5.10: Hoạt động theo giá trị cài đặt 73 viii ` ` DANH MỤC BẢNG Bảng 4.1 : Bảng dịng tiêu thụ mơ hình 58 ix ` ` 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 ...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... với công nghệ chăm sóc trồng vơ độc đáo hệ thống tưới nhỏ giọt, hệ thống tưới phun mưa, hệ thống tưới cảnh quan hệ thống thủy canh trồng khơng dùng đất Hình 2.1: Hệ thống tưới nhỏ giọt [16] Và. .. biến, thi? ??t bị thông minh Internet hệ thống toàn cầu nhiều mạng IP kết nối với liên kết với hệ thống máy tính Cơ sở hạ tầng mạng bao gồm thi? ??t bị định tuyến, trạm kết nối, thi? ??t bị tổng hợp, thi? ??t