Thiết kế và thi công mô hình hệ thống chăm sóc cây trồng

133 7 0
Thiết kế và thi công mô hình hệ thống chăm sóc cây trồng

Đ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 SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CNKT ĐIỆN TỬ VIỄN THÔNG THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG CHĂM SĨC CÂY TRỒNG GVHD: TH.S HUỲNH HOÀNG HÀ SVTH: TRẦN PHÚ HIẾU NGUYỄN ĐAN TRƯỜNG SKL011188 Tp Hồ Chí Minh, tháng 7/2023 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ VÀ THI CƠNG MƠ HÌNH HỆ THỐNG CHĂM SÓC CÂY TRỒNG SVTH: TRẦN PHÚ HIẾU MSSV: 19161010 SVTH: NGUYỄN ĐAN TRƯỜNG MSSV: 19161185 Khóa: 2019 Ngành: Công nghệ Kỹ thuật Điện tử Viễn thông GVHD: Th.S HUỲNH HỒNG HÀ Tp Hồ Chí Minh, tháng 07 năm 2023 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc Tp Hồ Chí Minh , ngày tháng năm 2023 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Trần Phú Hiếu Nguyễn Đan Trường MSSV: 19161010 MSSV: 19161185 Ngành: Công nghệ Kỹ thuật Điện tử Viễn thông Lớp: 19161CLVT1B Giảng viên hướng dẫn: ThS Huỳnh Hoàng Hà ĐT: 0392796200 Ngày nhận đề tài: 12/02/2023 Ngày nộp đề tài: 24/06/2023 Tên đề tài: Thiết kế thi cơng mơ hình hệ thống chăm sóc trồng Các số liệu, tài liệu ban đầu: - Thiết kế mô hinh khay trồng rau nhựa có sử dụng cảm biến, hình OLED để hiển thị thơng số, động bơm nước, vòi phun để thực việc tưới phun sương theo chế độ cài đặt, hệ thống lưới làm máy vòm che nắng, mưa theo chế độ cài đặt Nội dung thực đề tài: Thiết kế thi cơng hệ thống chăm sóc trồng bao gồm app quản lí, phần cứng cho hệ thống Sản phẩm: Hệ thống chăm sóc trồng TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN i LỜI CẢM ƠN Nhóm thực đề tài đồ án tốt nghiệp xin gửi lời cảm ơn sâu sắc, chân thành đến thầy Huỳnh Hồng Hà tận tình bảo, dẫn dắt chúng em trình làm đồ án tốt nghiệp Giúp chúng em có hội vận dụng kiến thức học năm học để hoàn thành tốt đồ án lần Nhóm xin gửi lời cảm ơn chân thành đến thầy cô trường Đại học Sư phạm Kỹ thuật, thầy cô khoa Điện – Điện tử giảng dạy, truyền dẫn kiến thức, kỹ chuyên ngành cho nhóm quãng thời gian học tập trường Để thực đề tài chúng em làm việc chăm chỉ, cố gắng để hồn thành Tuy vậy, có sai sót khó tránh khỏi, nhóm mong nhận đóng góp ý kiến, dẫn từ thầy bạn Tp Hồ Chí Minh, tháng năm 2023 Nhóm sinh viên thực Trần Phú Hiếu – Nguyễn Đan Trường ii TÓM TẮT Đề tài “Thiết kế thi cơng mơ hình hệ thống chăm sóc trồng” sử dụng module thu phát Wifi, Bluetooth ESP32 làm vi điều khiển trung tâm, sử dụng cảm biến đo độ ẩm đất, đo nhiệt độ độ ẩm, cảm biến mưa, cảm biến ánh sáng hiển thị thơng số lên hình OLED, khối điều khiển động sử dụng module relay để điều khiển động bơm nước thực tưới độ ẩm đất mức thấp phun sương hạ nhiệt nhiệt độ mơi trường tăng cao, ngồi module điều khiển động DC giúp điều khiển động DC kéo rèm che mưa trời đổ mưa độ ẩm đất cao, kéo rèm che nắng cường độ ánh sáng vượt ngưỡng thơng số cài đặt Mục đích đề tài giúp người sử dụng khơng có nhiều thời gian thao tác đơn giản, tự động hóa việc chăm sóc, tưới tiêu cho trồng khu vực ban công, sân thượng, giúp tiết kiệm thời gian chăm sóc, chăm bón thơng qua việc điều khiển Smartphone mà đạt hiệu trồng trọt tốt iii MỤC LỤC TRANG PHỤ BÌA TRANG NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i LỜI CẢM ƠN ii TÓM TẮT iii MỤC LỤC .iv DANH MỤC CÁC TỪ VIẾT TẮT viii DANH MỤC CÁC BẢNG BIỂU ix DANH MỤC CÁC HÌNH ẢNH, BIỂU ĐỒ x Chương TỔNG QUAN 1.1 GIỚI THIỆU TÌNH HÌNH NGHIÊN CỨU HIỆN NAY 1.2 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1.3 MỤC TIÊU NGHIÊN CỨU 1.4 NHIỆM VỤ NGHIÊN CỨU 1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 1.6 PHƯƠNG PHÁP NGHIÊN CỨU 1.7 BỐ CỤC ĐỒ ÁN Chương CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU VỀ MƠ HÌNH TRỒNG RAU TRÊN BAN CƠNG, SÂN THƯỢNG NGỒI THỰC TẾ 2.2 GIỚI THIỆU CÁC LINH KIỆN 2.3 CÁC LINH KIỆN CẢM BIẾN ĐẦU VÀO 2.3.1 Cảm biến nhiệt độ - độ ẩm DHT11 2.3.2 Cảm biến độ ẩm đất iv 2.3.3 Cảm biến mưa 10 2.3.4 Cảm biến cường độ ánh sáng BH1750FVI 11 2.3.5 Nguồn Adapter 12V-2A 12 2.4 CÁC LINH KIỆN ĐẦU RA 13 2.4.1 Module Relay 13 2.4.2 Module điều khiển động DC L298N 14 2.4.3 Động DC 16 2.4.4 Bơm nước 12V 17 2.4.5 Màn hình OLED 18 2.4.6 Module cơng tắc hành trình Endstop RAMPS 3D 19 2.5 THIẾT BỊ ĐIỀU KHIỂN TRUNG TÂM 19 2.6 CÁC CHUẨN TRUYỀN DỮ LIỆU 24 2.6.1 Chuẩn giao tiếp I2C 24 2.6.2 Chuẩn giao tiếp WiFi 25 2.6.3 Chuẩn giao tiếp USB 26 2.6.4 Chuẩn giao tiếp ONE-WIRE 26 2.7 PHẦN MỀM LẬP TRÌNH VÀ ỨNG DỤNG ĐIỀU KHIỂN 28 2.7.1 Phần mềm lập trình Arduino IDE 28 2.7.2 Ứng dụng điều khiển hệ thống Blynk V2 33 Chương 45 THIẾT KẾ HỆ THỐNG 45 3.1 YÊU CẦU HỆ THỐNG 45 3.1.1 Yêu cầu chung hệ thống 45 3.1.2 Phương án thiết kế 45 3.2 SƠ ĐỒ KHỐI 46 3.3 THIẾT KẾ CHI TIẾT HỆ THỐNG CHĂM SÓC CÂY TRỒNG 48 v 3.3.1 Sơ đồ nguyên lý 48 3.3.2 Thiết kế khối 49 Chương 66 THI CÔNG HỆ THỐNG 66 4.1 GIỚI THIỆU 66 4.2 THI CÔNG HỆ THỐNG 66 4.2.1 Thi công mạch in 66 4.2.2 Bo mạch thực tế hoàn chỉnh 67 4.3 ĐÓNG GÓI VÀ THI CƠNG MƠ HÌNH 68 4.3.1 Đóng gói bo mạch 68 4.3.2 Thi cơng mơ hình 69 4.4 LẬP TRÌNH HỆ THỐNG 73 4.4.1 Lưu đồ giải thuật hệ thống tưới 73 4.4.2 Lưu đồ giải thuật hệ thống phun sương 76 4.4.3 Lưu đồ giải thuật hệ thống máy vòm 78 4.4.4 Lưu đồ giải thuật toàn hệ thống 81 Chương 87 KẾT QUẢ - NHẬN XÉT - ĐÁNH GIÁ 87 5.1 GIỚI THIỆU 87 5.2 KẾT QUẢ ĐẠT ĐƯỢC 87 5.2 KẾT QUẢ THỰC NGHIỆM 88 5.2.1 Hệ thống tưới 89 5.2.2 Hệ thống phun sương 93 5.2.3 Hệ thống máy vòm 96 5.3 NHẬN XÉT - ĐÁNH GIÁ 101 5.3.1 Nhận xét 101 vi 5.3.2 Đánh giá 101 Chương 102 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 102 1.1 KẾT LUẬN 102 6.2 HƯỚNG PHÁT TRIỂN 102 TÀI LIỆU THAM KHẢO 103 PHỤ LỤC 104 vii DANH MỤC CÁC TỪ VIẾT TẮT Số thứ tự 10 11 12 13 14 15 16 17 18 19 20 Từ viết tắt SPI I2C USB LCD COM NO NC SCL SDA PWM ADC DAC UART SoC ROM SRAM I2S ACK NACK VOM Từ viết đầy đủ Serial Peripheral Interface Inter Integrated Circuit Universal Serial Bus Liquid Crystal Display Common Normally Open Normally Closed Serial Clock Serial Data Pulse Width Modulation Analog to Digital Converter Digital to Analog Converter Universal Asynchronous Receiver/Transmitter System on Chip Read Only Memory Static Random Access Memory Inter IC Sound Acknowledged Not Acknowledged Volt Ohm Miliammeter viii PHỤ LỤC CODE CHƯƠNG TRÌNH ĐIỀU KHIỂN TRÊN ESP32 #define BLYNK_PRINT Serial #include #include #include #include #include #include #include #include //BlynkTimer timer; char auth[] = "nwHABkOxyKLdpwpa3OuCCm-N3CWsCvse"; char ssid[] = "TPH"; char pass[] = "khongbiet"; //do am dat #define analogPin 34 //luong mua #define senrain 13 //relay 104 #define relay1 #define relay2 15 //CTHT #define ctht1 19 #define ctht2 23 int value, analogVal, button, button1, button2, Ref1, Ref2, Ref3, giotat, phuttat, x; int macdinh = 0; WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "pool.ntp.org", 25200, 60000); //DHT11 const int DHTPIN = 5;//Chân Out cảm biến nối chân số Arduino const int DHTTYPE = DHT11; // Khai báo kiểu cảm biến DHT11 DHT dht(DHTPIN, DHTTYPE); //Khai báo thư viện chân cảm biến kiểu cảm biến //motor // Motor A int motor1Pin1 = 27; int motor1Pin2 = 26; 105 int enable1Pin = 14; // Setting PWM properties const int freq = 30000; const int pwmChannel = 0; const int resolution = 8; int dutyCycle = 200; //giao tiep I2C oled vs cb as #define SDA_PIN 21 #define SCL_PIN 22 #define BH1750_ADDRESS 0x23 BH1750 lightMeter; U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE, SCL_PIN, SDA_PIN); // Hardware I2C void setup() { Serial.begin(9600); Blynk.begin(auth, ssid, pass, "blynk.cloud", 80); pinMode(relay1, OUTPUT); 106 pinMode(relay2, OUTPUT); Blynk.syncVirtual(V5); Blynk.syncVirtual(V6); Blynk.syncVirtual(V7); Blynk.syncVirtual(V8); Blynk.syncVirtual(V9); Blynk.syncVirtual(V10); Blynk.syncVirtual(V11); Blynk.syncVirtual(V12); Blynk.syncVirtual(V13); dht.begin(); //Khởi động cảm biến pinMode(analogPin, INPUT); // am dat pinMode(senrain, INPUT); // luong mua timeClient.begin(); // motor // sets the pins as outputs: pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(enable1Pin, OUTPUT); // configure LED PWM functionalitites ledcSetup(pwmChannel, freq, resolution); // attach the channel to the GPIO to be controlled 107 ledcAttachPin(enable1Pin, pwmChannel); //I2C Wire.begin(SDA_PIN, SCL_PIN); u8g2.begin(); u8g2.setContrast(255); u8g2.setFont(u8g2_font_ncenB08_tr); u8g2.clearBuffer(); u8g2.drawStr(0, 24, "Light:"); u8g2.sendBuffer(); lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE); } BLYNK_WRITE(V5) { // điều chỉnh chế độ value = param.asInt(); } BLYNK_WRITE(V6) { // Nut nhan bat tat tuoi cay button = param.asInt(); } BLYNK_WRITE(V7) { // Nut nhan mai vom button2 = param.asInt(); } BLYNK_WRITE(V8) { // Nut nhan bat tat nhiet button1 = param.asInt(); 108 } BLYNK_WRITE(V9) { // Lấy giá trị ngưỡng dodat Ref1 = param.asInt(); } BLYNK_WRITE(V10) { // Lấy giá trị ngưỡng nhietdo Ref2 = param.asInt(); } BLYNK_WRITE(V11) { // Lấy giá trị ngưỡng ánh sáng Ref3 = param.asInt(); } BLYNK_WRITE(V12) { // Lay gia tri hen gio giotat = param.asInt(); } BLYNK_WRITE(V13) { // Lay gia tri hen phut phuttat = param.asInt(); } void loop() { Blynk.run(); timeClient.update(); Serial.println(timeClient.getFormattedTime()); String T = timeClient.getFormattedTime(); 109 // timer.run(); analogVal = analogRead(analogPin); // > 1023 int TBcb = analogVal / 10; int phantramao = map(TBcb, 0, 1023, 0, 100); //Chuyển giá trị Analog thành giá trị % int soilmois = 100 - phantramao; chuyển điện khơ thành ẩm //Tính giá trị phần trăm thực, Blynk.virtualWrite(V1, soilmois); Blynk.virtualWrite(V3, T); //Cảm biến mưa int rain = digitalRead(senrain); //Cơng tắc hành trình int trangthaict1 = digitalRead(ctht1); int trangthaict2 = digitalRead(ctht2); // DHT float doam = dht.readHumidity(); // read hudmid float doC = dht.readTemperature(); // read temp if (isnan(doam) || isnan(doC)) { 110 Serial.println("Khơng có giá trị trả từ cảm biến DHT"); return; } Blynk.virtualWrite(V0, doC); // light float lux = lightMeter.readLightLevel(); Blynk.virtualWrite(V2, lux); u8g2.clearBuffer(); u8g2.drawStr(4, 10, "Light:"); u8g2.setCursor(40, 10); u8g2.print(lux); u8g2.drawStr(4, 20, "temperature:"); u8g2.setCursor(80, 20); u8g2.print(doC); u8g2.drawStr(4, 30, "soil_moisture:"); u8g2.setCursor(90, 30); u8g2.print(soilmois); u8g2.sendBuffer(); if (value == 1) { // tắt hết động bơm digitalWrite(relay1, LOW); 111 digitalWrite(relay2, LOW); // hệ thống tưới if (soilmois > Ref1) { digitalWrite(relay1, LOW); } else { if (rain == 1) { // khong mua digitalWrite(relay1, HIGH); } else { digitalWrite(relay1, LOW); } } // hệ thống hạ nhiệt if (doC > Ref2) { digitalWrite(relay2, HIGH); } else { digitalWrite(relay2, LOW); } 112 // hệ thống mái vịm if (rain == 1) { //khơng mưa // as if (lux > Ref3 && trangthaict2 != 0) //co mua va cua dang mo { // dong mai vom digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); ledcWrite(pwmChannel, dutyCycle); } else if (lux < Ref3 && trangthaict1 != 0) //khong mua va cua dang dong { // mo mai vom digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH); ledcWrite(pwmChannel, dutyCycle + 2); } else { digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); } } else { 113 if (soilmois > Ref1 && trangthaict2 != 0) //co mua va cua dang dong { // dong mai vom digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); ledcWrite(pwmChannel, dutyCycle); } else if (soilmois < Ref1 && trangthaict1 != 0) //khong mua va cua dang mo { // mo mai vom digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH); ledcWrite(pwmChannel, dutyCycle + 2); } else { digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); } } } 114 else { // tắt hết động bơm digitalWrite(relay1, LOW); digitalWrite(relay2, LOW); // công tắc động tưới có hẹn if (button != macdinh) { if (button == 1) { x = ! x; } } if (timeClient.isTimeSet()) { if (giotat == timeClient.getHours() && phuttat == timeClient.getMinutes() && value == 0) { x = 0; } } if (x == 1) { digitalWrite(relay1, HIGH); 115 // Blynk.virtualWrite(V6, "Đang tưới nước"); } else { digitalWrite(relay1, LOW); } //bật tắt hạ nhiệt if (button1 == 1) { digitalWrite(relay2, HIGH); } else { digitalWrite(relay2, LOW); } // đóng mở mái vòm if (button2 == && trangthaict2 != 0) { // dong mai vom digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); ledcWrite(pwmChannel, dutyCycle); } 116 else if (button2 == && trangthaict1 != 0) { // mo mai vom digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH); ledcWrite(pwmChannel, dutyCycle + 2); } else { digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); } } } 117 S K L 0

Ngày đăng: 08/12/2023, 15:18

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan