ĐỒ án môn học xây dựng mô hình tưới cây tự đông theo độ ẩm đất

55 64 0
ĐỒ án môn học xây dựng mô hình tưới cây tự đông theo độ ẩm đất

Đ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

TRƯỜNG ĐẠI HỌC NHA TRANG ĐỒ ÁN MÔN HỌC Giáo viên hướng dẫn: Nhữ Khải Hồn Mơn học : Kỹ Thuật Vi Xử Lý Tên sinh viên: Phan Xuân Tỵ - Trần Minh Thành Lớp: Điện – Điện Tử 20CDT1 Khánh Hòa, Tháng Năm 2022 LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành đến thầy Nhữ Khải Hồn – giảng viên mơn “Kỹ Thuật Vi Xử Lý” Khoa Điện – Điện Tử trang bị cho em kiến thức, kỹ cần có để hồn thành đề tài nghiên cứu Vì lý Bluetooth khơng thể truyền xa nên em xin sử dụng hình thức gửi data giám sát server mà module SIM 800A có sẵn Đồng thời truy cập đâu thiết bị Ngoài ra, em thiết kế giao diện giao tiếp để người dùng tiện thao tác thông qua web server cách thân thiện, dễ hiểu dễ thao tác Do thời gian hạn chế, mức độ rộng lớn đề tài, nên dù cố gắng phương án giải tốn em chắn khơng thể tránh khỏi thiếu sót Em mong nhận đóng góp ý kiến q thầy bạn bè để đề tài em hoàn thiện Em xin chân thành cảm ơn! TÓM TẮT Đề tài nghiên cứu “Xây dựng mơ hình tưới tự đông theo độ ẩm đất.” thực trường Đại Học Nha Trang Đề thực theo yêu cầu sau : - Tổng quan đề tài - Cơ sở lý thuyết Arduino, module SIM900A mini, cảm biến độ ẩm đất - Mơ hình mạch nguyên lý, giải thuật code điều khiển - Thi cơng mơ hình hệ thống tưới tự động theo độ ẩm đất theo yêu cầu : - Tự ổn định độ ẩm đất - Điều khiển giám sát hệ thống thông qua bluetooth - Đánh giá kết đạt kiến nghị DANH SÁCH CÁC CHỮ VIẾT TẮT PLC: Programmable logic controller AT: Attention GSM: Global System for Mobile Communications GPRS: General Packet Radio Service GPS: Global Positioning System SMS: Short Message Service CR: Carriage return LF: Line Feed MT: Mobile Terminal TE: Terminal Equipment HTTP: Hypertext Transfer Protocol HTML: HyperText Markup Language IP: Internet Protocol CSS: Cascading Style Sheets URL: Uniform Resource Locator PHP: Hypertext Preprocessor CMS: Content management system IDE: Integrated Development Environment PVC: Polyvinyl clorua Chương MỞ ĐẦU 1.1 Đặt vấn đề Hiện giới việc ứng dụng công nghệ điều khiển vào sản xuất nhiều cần thiết ngành nghề kể nơng nghiệp Nhờ có ứng dụng cơng nghệ điều khiển đại mà suất chất lượng nông sản tăng lên đáng kể So với nước ta nơng nghiệp cịn lạc hậu chưa có nhiều ứng dụng khoa học kĩ thuật áp dụng vào thực tế Trong nông nghiệp ngồi kĩ thuật trồng trọt, chăm sóc tưới nước khâu quan trọng trồng trọt để đảm bảo sinh trưởng phát triển bình thường Tưới tưới đủ theo yêu cầu nông học trồng không sinh sâu bệnh, hạn chế thuốc trừ sâu cho sản phẩm an toàn, đạt suất hiệu cao Mặt khác nước ta giai đoạn cơng nghiệp hóa đại hóa thiết bị máy móc tự động đưa vào phục vụ thay cho sức lao động người Vì thiết bị tưới nghiên cứu, thiết kế, chế tạo để đưa vào thực tiễn ngày nhiều Thiết bị tưới đa dạng chủng loại (vòi phun mưa, phun sương, vịi nhỏ giọt bù áp, vịi khơng bù áp, ) có thơng số khác phục vụ cho loại khác chế tạo từ nhiều quốc gia khác tiêu biểu như: Israel, Mỹ, Trung Quốc, Rất tiện cho người sử dụng lựa chọn phù hợp với nhu cầu sử dụng Việc thiết kế, chế tạo hệ thống tưới tự động giúp người tưới cây, tốn chi phí nhân cơng tưới nước giám sát thời gian tưới cách cụ thể Người lao động không cần quan tâm tới việc tưới mà sinh trưởng phát triển tốt nhờ việc tưới phù hợp xác Đồng thời can thiệp vào nông nghiệp nước ta hạn chế phụ thuộc vào điều kiện khí hậu tự nhiên Ngồi tuyến đường khu vực trung tâm thành phố, hay bắt gặp hình ảnh xe bồn chở nước tưới dọc đường gây cản trở, an tồn giao thơng Do đề tài “Thiết kế, chế tạo mơ hình giám sát điều khiển tưới tự động” chọn để giải vấn đề nêu 1.2 Mục tiêu đề tài Vận dụng kiến thức học để nghiên cứu thực hiện: “Thiết kế, chế tạo mơ hình giám sát điều khiển tưới cây” từ đưa vào ứng dụng thực tiễn Giúp cho việc tươi tiêu trồng nước ta có phương án đạt hiệu cao Hệ thống tích hợp module gọi điện/SMS sử dụng mạng di động, xử lý liệu Hệ thống thu nhận tín hiệu thiết bị đầu cuối (mobile), để thực lệnh điều khiển tưới phản hồi lại trạng thái thiết bị điều khiển Module SIM 800A GSM/GPRS/GPS làm việc ví trí có phủ sóng mạng điện thoại di động hoạt động nước Viettel, Mobile Phone, Vina Phone 1.3 Nội dung đề tài Vì thời gian có hạn mức độ rộng lớn đề tài nên em thực nghiên cứu vấn đề sau: - Cơ sở lý thuyết Arduino, module SIM900A mini, cảm biến độ ẩm đất Mơ hình mạch nguyên lý, giải thuật code điều khiển Thi cơng mơ hình hệ thống tưới tự động theo độ ẩm đất theo yêu cầu : Tự ổn định độ ẩm đất Điều khiển giám sát hệ thống thông qua bluetooth/Server Đánh giá kết đạt kiến nghị Chương TỔNG QUAN 2.1 Tổng quan hệ thống tưới 2.1.1 Hệ thống tưới gì? Hệ thống tưới cơng cụ để chuyền tải lượng nước từ nguồn nước đến điểm khác phạm vi đất với mật độ bao phủ đồng cao phù hợp cho giai đoạn sinh trưởng khác Ngày với phát triển xã hội, khoa học công nghệ cụ thể công nghệ ứng dụng vào nông nghiệp bước nâng cao Lao động chân tay dần thay máy móc hệ thống tưới nước số Hệ thống tưới hay gọi hệ thống tưới tự động hệ thống ứng dụng công nghệ tiên tiến Trước kia, để có nước canh tác người lao động phải tìm kiếm nơi có nguồn nước dồi giàu phải dùng sức vận chuyển khối nước tới tưới cho trồng ngày cần nút bấm có nước để hấp thụ Vừa giảm thời gian, giảm nhân công lao động lại vừa kiểm sốt tiết kiệm cho nguồn nước tránh khỏi việc hao phí nước 2.1.2 Lịch sử phát triển hệ thống tưới Vì vấn đề cung cấp đủ nước đảm bảo độ ẩm cho trồng phát triển, tiết kiệm thời gian, tiết kiệm chi phí nhân cơng, tiết kiệm nguồn nước nên hệ thống tưới đời ngày đại hơn: Tưới thủ công sức người Tưới thủ cơng có hỗ trợ máy móc Điều khiển tưới từ xa Tưới tự động Robot tưới Hình 2.1: Lịch sử phát triển trình tưới 2.1.3 Các phương pháp tưới áp dụng nay: Tưới khơng đơn giản hình thức tưới bình thường nghĩ mà biện pháp chủ yếu để sử dụng nước hợp lý, thích hợp cho loại trồng, nhằm tăng suất lao động tăng suất cho trồng Trong số hệ thống tưới phổ biến, bật lên ba hệ thống tưới tự động tưới phun sương, tưới phun mưa tưới nhỏ giọt Đặc điểm riêng hệ thống sau: 2.1.3.1 Hệ thống tưới phun sương Hệ thống tưới phun sương hệ thống tưới nước chịu áp suất máy bơm tăng áp khiến dòng nước phun có dạng hạt nhỏ, khuất tán nhanh vào khơng khí Vì đặc tính nên tưới phun sương chịu ảnh hưởng lớn gió, nên thường lắp đặt nhà kính, nơi không chịu ảnh hưởng mạnh yếu tố khí hậu Tưới phun sương thường lắp khu vườn ươm giống, vườn hoa nhà kính, trồng rau hữu cơ, rau thủy canh, trồng hoa, tưới cảnh quan,… Ngồi tưới phun sương cịn lắp trang trại, nhà xưởng, quán café, giúp cho không gian xung quanh mát mẻ dễ chịu Khi bốc nhanh sương hấp thu nhiệt làm giảm nhiệt độ mơi trường xung quanh từ – 70C Hình 2.2: Hệ thống tưới phun sương  Ưu điểm: - Cho phép khả kết hợp phân hóa học, thuốc khử trùng hịa tan vào nước để rãi lên mặt vườn cách hiệu - Kích thước hạt nhỏ, mịn nên an toàn hoa trồng, không gây hại cho - Tiết kiệm nước tối ưu Thỏa mãn yêu cầu sinh lý trồng: khơng nước mà cịn dinh dưỡng bảo vệ lớp đất có rễ hoạt động - Chống nóng, chống lạnh, điều hịa vi khí hậu, không gây tượng sương muối giúp điều hịa khí hậu tốt hẳn Phù hợp với nhiều địa hình  Nhược điểm: - Địi hỏi người sử dụng phải có hiểu biết định kỹ thuật quản lý để vận hành 2.1.3.2 - Chi phí đầu tư lớn - Nguồn nước phải đảm bảo - Chịu ảnh hưởng lớn gió nhiệt độ Hệ thống tưới phun mưa Đây phương pháp tưới phát triển rộng rãi vòng 40 năm Nguyên tắc hệ thống tưới nước dùng máy bơm, ống dẫn nước vòi phun để tạo tia nước bắn xung quanh nhờ đầu phun tạo mưa, phun trực tiếp lên bề mặt Hệ thống giúp người nông dân tưới nhanh hơn, hiệu hơn, nâng cao hiệu kinh tế Hệ thống áp dụng phổ biến phù hợp với nhiều mơ hình canh tác từ hoa màu ăn quả, cơng nghiệp Hình 2.3: Hệ thống tưới phun mưa 10 Sau sever ok tiến hành chỉnh lại code cho chức SMS cảnh báo độ ẩm Sơ đồ thuật toán : 32 Điều Chỉnh lại code theo sơ đồ : / Date and time functions using a DS3231 RTC connected via I2C and Wire lib #include "RTClib.h" #define TINY_GSM_MODEM_SIM800 RTC_DS3231 rtc; #include "AHT20.h" AHT20 AHT; 33 #include #include #include #include "ThingsBoard.h" / Your GPRS credentials / Leave empty, if missing user or pass const char apn[] = "internet"; const char user[] = ""; const char pass[] = ""; / See https://thingsboard.io/docs/getting-started-guides/helloworld/ / to understand how to obtain an access token #define TOKEN "j9jxH3be4ThAODL62UEv" // ACCESS TOKEN from Dashboard #define THINGSBOARD_SERVER "demo.thingsboard.io" // link from Dashboard #define THINGSBOARD_PORT 80 #define CB_do_am A0 // Baud rate for debug serial #define SERIAL_DEBUG_BAUD 115200 // Serial port for GSM shield SoftwareSerial serialGsm(7, 8); // RX, TX pins for communicating with modem #ifdef DUMP_AT_COMMANDS #include StreamDebugger debugger(serialGsm, Serial); TinyGsm modem(debugger); #else / Initialize GSM modem TinyGsm modem(serialGsm); #endif / Initialize GSM client TinyGsmClient client(modem); / Initialize ThingsBoard instance ThingsBoardHttp tb(client, TOKEN, THINGSBOARD_SERVER, THINGSBOARD_PORT); 34 / Set to true, if modem is connected bool modemConnected = false; char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; int gio, phut, thoigian; int h_pre = 0, do_am_dat, do_am_nguong = 100; float humi, temp; String RxBuff = ""; // Khai bao bo dem nhan du lieu int Index_Rxdata = -1; // vi tri cua chuoi nhan duoc const String myphone = "03******";// nhập số điện thoại người sử dụng //const int PWR_KEY = 4; const int status_led = 13; void Gsm_Init(); // Cau hinh Module Sim800C void Gsm_MakeCall(String phone); // Ham goi dien void Gsm_MakeSMS(String phone, String content); // Ham nhan tin void tinhieu_cambien(); void setup() { Serial.begin(9600); Serial.setTimeout(100); AHT.begin(); if (! rtc.begin()) { Serial.println("Couldn't find RTC"); while (1); } if (rtc.lostPower()) { Serial.println("RTC lost power, let's set the time!"); / When time needs to be set on a new device, or after a power loss, the / following line sets the RTC to the date & time this sketch was compiled rtc.adjust(DateTime(F( DATE ), F( TIME ))); / This line sets the RTC with an explicit date & time, for example to set / January 21, 2014 at 3am you would call: / rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); 35 } / When time needs to be re-set on a previously configured device, the / following line sets the RTC to the date & time this sketch was compiled / rtc.adjust(DateTime(F( DATE ), F( TIME ))); / This line sets the RTC with an explicit date & time, for example to set / January 21, 2014 at 3am you would call: / rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); pinMode(status_led, OUTPUT); //Khai bao ngo chan dieu khien relay digitalWrite(status_led, LOW); //Khoi tao trang thai ngo ban dau pinMode(4, OUTPUT); //pinMode(5, OUTPUT); //pinMode(6, OUTPUT); digitalWrite(4, LOW); //digitalWrite(5, HIGH); //digitalWrite(6, HIGH); //pinMode(2, INPUT_PULLUP); //D4 is output, connect LED on board //attachInterrupt(0, tinhieu_cambien, FALLING); GSM_Init(); //GSM_MakeCall(myphone); //GSM_MakeSMS(myphone,"I'm a test"); } void loop() { delay(1000); int ret = AHT.getSensor(&humi, &temp); if (ret) // GET DATA OK { float nhiet_do = (temp); float huminity = 100.0 * (temp); } else // GET DATA FAIL { 36 Serial.println("GET DATA FROM ATH20 FAIL"); } if (!modemConnected) { Serial.print(F("Waiting for network ")); if (!modem.waitForNetwork()) { Serial.println(" fail"); delay(10000); return; } Serial.println(" OK"); Serial.print(F("Connecting to ")); Serial.print(apn); if (!modem.gprsConnect(apn, user, pass)) { Serial.println(" fail"); delay(10000); return; } modemConnected = true; Serial.println(" OK"); } / Uploads new telemetry to ThingsBoard using HTTP / See https://thingsboard.io/docs/reference/http-api/#telemetry-upload-api / for more details Serial.println("Sending temperature data "); tb.sendTelemetryFloat("temperature", nhiet_do ); Serial.println("Sending humidity data "); tb.sendTelemetryFloat("humidity", huminity ); DateTime now = rtc.now(); int h = now.hour(); int p = now.minute(); 37 /Serial.println(h); /Serial.println(p); Serial.println(gio); /Serial.println(phut); // check độ ẩm đất sau gửi thông tin cho người sử dụng if ((h == (h_pre + 1)) | h == 0) // h thay đổi or 0h { do_am_dat = analogRead(CB_do_am); h_pre = h; //lưu giá trị h if (do_am_dat = (gio * 60 + phut)) & ((h * 60 + p) = 128) { RxBuff = ""; } } int i; Index_Rxdata = RxBuff.indexOf("BATDEN"); // Tim vi tri cua chuoi "sw1on" bo dem nhan RxBuff if (Index_Rxdata >= 0) // Neu { Index_Rxdata = -1; // RxBuff = ""; // Xoa bo dem digitalWrite(4, HIGH); // Dong Relay de bat den // Bat bong den if (digitalRead(4)) { String content_sms; content_sms = "Den da duoc Bat"; GSM_MakeSMS(myphone, content_sms); } } Index_Rxdata = RxBuff.indexOf("TIMER"); // Tim vi tri cua chuoi "sw1on" bo dem nhan RxBuff if (Index_Rxdata >= 0) // Neu tim thay "LAMP_ON" RxBuff 39 { String h = RxBuff.substring(RxBuff.indexOf("R") + 1, RxBuff.indexOf("H")); String p = RxBuff.substring(RxBuff.indexOf("H") + 1, RxBuff.indexOf("P")); String d = RxBuff.substring(RxBuff.indexOf("P") + 1); gio = h.toInt(); phut = p.toInt(); thoigian = d.toInt(); String str = "Den se bat vao luc:" + String(gio) + String('h') + String(phut) + String('p') + " " + String(thoigian) + " phut" ; // //Serial.println(str); Index_Rxdata = -1; // RxBuff = ""; // Xoa bo dem String content_sms; content_sms = str; GSM_MakeSMS(myphone, content_sms); } Index_Rxdata = RxBuff.indexOf("SETDOAM"); // Tim vi tri cua chuoi "sw1on" bo dem nhan RxBuff if (Index_Rxdata >= 0) // Neu tim thay "LAMP_ON" RxBuff { String do_am = RxBuff.substring(RxBuff.indexOf("SETDOAM") + 1); do_am_dat = do_am.toInt(); String str = "set am dat:" + String(do_am_dat) + " /1024" ;//set độ ẩm đặt theo thang đo ADC max =1024 // //Serial.println(str); Index_Rxdata = -1; // RxBuff = ""; // Xoa bo dem String content_sms; content_sms = str; GSM_MakeSMS(myphone, content_sms); } 40 Index_Rxdata = RxBuff.indexOf("TATDEN"); // Tim vi tri cua chuoi "sw1on" bo dem nhan RxBuff if (Index_Rxdata >= 0) // Neu tim thay "LAMP_ON" RxBuff { Index_Rxdata = -1; // RxBuff = ""; // Xoa bo dem digitalWrite(4, LOW); // Dong Relay de bat den // Bat bong den if (!digitalRead(4)) { String content_sms; content_sms = "Den da duoc Tat"; GSM_MakeSMS(myphone, content_sms); } } Index_Rxdata = RxBuff.indexOf("KIEMTRA"); // Gui tin nhan bao trang thai cua cac relay dieu khien if (Index_Rxdata >= 0) { String content_sms; if (digitalRead(4)) { content_sms = "Den dang Bat"; GSM_MakeSMS(myphone, content_sms); } else { content_sms = "Den dang Tat"; GSM_MakeSMS(myphone, content_sms); } } RxBuff = ""; } // -Cau hinh module GSM -void GSM_Power_On() { digitalWrite(4, HIGH); delay(1500); digitalWrite(4, LOW); // Du chan PWR_KEY len cao it nhat 1s // o day ta de 1,5s // Du chan PWR_KEY xuong thap 41 delay(100); // cac ban xem Hardware designed sim800C de hieu ro hon } void GSM_Init() { Serial.println("ATE0"); // Tat che phan hoi (Echo mode) delay(2000); Serial.println("AT+IPR=9600"); // Dat toc truyen nhan du lieu 9600 bps delay(2000); Serial.println("AT+CMGF=1"); // Chon che TEXT Mode delay(2000); Serial.println("AT+CLIP=1"); // Hien thi thong tin nguoi goi den delay(2000); Serial.println("AT+CNMI=2,2"); // Hien thi truc tiep noi dung tin nhan delay(2000); } void GSM_MakeCall(String phone) { Serial.println("ATD" + phone + ";"); delay(10000); Serial.println("ATH"); // Goi dien // Sau 10s // Ngat cuoc goi delay(2000); } void GSM_MakeSMS(String phone, String content) { Serial.println("AT+CMGS=\"" + phone + "\""); // Lenh gui tin nhan delay(3000); // Cho ky tu '>' phan hoi ve Serial.print(content); // Gui noi dung Serial.print((char)26); // Gui Ctrl+Z hay 26 de ket thuc noi dung tin nhan va gui tin di delay(5000); // delay 5s } Viết App ứng dụng tự gửi tin nhắn đến SIM 800A 42 Vì lý mã AT rườm rà khó nhớ Nên Em xin phép viết app nhỏ để thực việt gửi tin nhắn đến SIM800 http://ai2.appinventor.mit.edu/ Nội dung giao diện block thể bên Phần giao diện app 43 Phần Block app cần gửi câu lệnh mà arduino muốn nhận 25 Chương KẾT LUẬN VÀ KIẾN NGHỊ Sau trình nghiên cứu, thiết kế chế tạo vận hành điều khiển tưới cây, đề tài thực số kết quả: - Hồn thành tìm hiểu phương pháp giám sát điều khiển tưới tự động - Hoàn tất việc thiết kế, xây dựng phần khí mơ hình tưới tự động - Xây dựng giải thuật điều khiển tự động mơ hình tưới với mode tưới hẹn tưới web server với giao diện đơn giản, có thơng số ẩm độ, nhiệt độ để tiện giám sát cho khu vườn nhỏ gọi điện để trực tiếp điều khiển tưới - Xây dựng mạch điều khiển để giám sát điều khiển tưới tự động - Thiết bị có khả vận hành theo thơng số cài đặt - Khảo nghiệm đánh giá mô hình 5.2 Kiến nghị Để điều khiển hẹn web cách tối ưu với việc nên phát triển giao diện web thiết kế sinh động thêm với nhiều tính điều khiển thẳng máy bơm web Việc điều khiển web ổn định thêm chức phải phụ thuộc vào tốc độ truyền dự liệu từ sim lên server Khắc phục việc mạng 2G GSM để điều khiển k bị gián đoạn chuyển từ chế độ sang chế độ Do hạn chế thời gian kinh phí nên thiết bị dừng lại mức độ mơ hình giám sát điều khiển tưới Vì nên mơ hình máy mang tính chất khảo nghiệm, vân hành , phương thức điều khiển đánh giá Vì vậy, cần chế tạo sản phẩm hồn chỉnh với quy mơ lớn sử dụng cơng nghệ chế tạo mơ hình đạt hiệu suất làm việc tối ưu 25 Tài liệu tham khảo  Tài liệu tiếng việt [2] Nguyễn Ngọc Cần, Kỹ thuật điều khiển tự động, Nhà xuất Đại học Quốc Gia Thành Phố Hồ Chí Minh [3] Phan Quốc Phơ - Nguyễn Đức Chính, Giáo trình cảm biến, NXB Khoa học kỹ thuật – 2000  Tài liệu tiếng Anh [1] SIM800-Series_AT-Command-Manual_V1.09.pdf [2] Arduino Cookbook – Michael Margolis [3] AT Command Reference and Applications User’s Guid 26 ... SIM900A mini, cảm biến độ ẩm đất Mơ hình mạch ngun lý, giải thuật code điều khiển Thi cơng mơ hình hệ thống tưới tự động theo độ ẩm đất theo yêu cầu : Tự ổn định độ ẩm đất Điều khiển giám sát... code điều khiển - Thi cơng mơ hình hệ thống tưới tự động theo độ ẩm đất theo yêu cầu : - Tự ổn định độ ẩm đất - Điều khiển giám sát hệ thống thông qua bluetooth - Đánh giá kết đạt kiến nghị DANH... 2-5.5VDC Phạm vi đo (độ ẩm) : 0-100% RH Phạm vi đo (nhiệt độ) : -40 ~ + 85 ° C Độ ẩm xác độ ẩm: ± 2% RH (25 ° C) Độ xác nhiệt độ: ± 0.3 ° C Độ phân giải: Nhiệt độ: 0.01 ° C Độ ẩm: 0.024% RH Giao

Ngày đăng: 10/12/2022, 07:09