Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
1,77 MB
Nội dung
ĐẠI HỌC BÌNH DƯƠNG KHOA CƠNG NGHỆ THƠNG TIN, ROBOT VÀ TRÍ TUỆ NHÂN TẠO ĐỒ ÁN TỐT NGHIỆP Bình Dương, tháng năm 2023 ĐẠI HỌC BÌNH DƯƠNG KHOA CƠNG NGHỆ THƠNG TIN, ROBOT VÀ TRÍ TUỆ NHÂN TẠO ĐỀ TÀI XÂY DỰNG HỆ THỐNG TƯỚI THÔNG MINH Sinh viên thực hiện: Phạm Văn Quân - 18050094 Giảng viên hướng dẫn: Bùi Văn Chuyên Bình Dương, tháng năm 2023 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN GIẢNG VIÊN HƯỚNG DẪN (Ký ghi rõ họ tên) i NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN CÁN BỘ PHẢN BIỆN (Ký ghi rõ họ tên) ii CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÌNH DƯƠNG ĐỀ CƯƠNG CHI TIẾT Tên đề tài: Xây dựng hệ thống tưới thông minh Giảng viên hướng dẫn: Bùi Văn Chuyên Thời gian thực hiện: Từ ngày 06 tháng 11 năm 2022 đến ngày 06 tháng 01 năm 2023 Sinh viên thực hiện: Phạm Văn Quân - 18050094 Nội dung đề tài: Lý chọn đề tài: - Nông nghiệp ngành kinh tế quan trọng Việt Nam Việt Nam nước nông nghiệp vấn đề chăm sóc trồng người nơng dân q nhiều thời gian cơng sức cho việc chăm sóc trồng bón phân, tưới tiêu, kiểm sốt độ ẩm đất… nên người nơng dân cần có hệ thống tưới tiêu tự động để giúp giải vấn đề từ em định chọn đề tài “Xây dựng hệ thống tưới thông minh” ❖ Phạm vi đề tài: Xây dựng hoàn thiện hệ thống tưới thông minh ❖ Mục tiêu đề tài: - Xây dựng hệ thống tưới thông minh điều khiển qua ứng dụng thiết bị di động giúp người nông dân giảm thiểu sức lao động việc chăm sóc, tưới tiêu bón phân trồng từ giúp tăng suất trồng mang lại hiệu kinh tế - Mơ hình tự động hóa việc chỉnh lượng nước cho phù hợp với loại trồng - Thống kê liệu từ cảm biến lên web - Giám sát điều khiển hệ thống trồng thông qua app giúp ổn định điều kiện sống trồng ❖ Phương pháp thực hiện: • Sử dụng phần mềm visual studio code, PlatformIO IDE, Blynk • Ngơn ngữ lập trình C#, C++, Python ❖ Kết mong đợi: Đảm bảo hoàn thành yêu cầu mục tiêu đề iii MỤC LỤC NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN i NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN ii ĐỀ CƯƠNG CHI TIẾT iii LỜI MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 1.1 Giới thiệu tổng quan IOT 1.2 Mục tiêu ý tưởng đề tài 1.3 Sơ đồ khối hệ thống nguyên lý hoạt động hệ thống 1.3.1 sơ đồ khối: 1.3.2 Nguyên lý hoạt động: 1.4 Lựa chọn phần cứng cho hệ thống: CHƯƠNG 2: THIẾT KẾ HỆ THỐNG IOT 2.1 lập bảng liệu 2.2 Lưu đồ thuật toán (Flowchart) 11 2.3 Thiết kế ứng dụng điện thoại thông minh 11 2.3.1 Giới thiệu Blynk 11 2.3.2 Cấu hình nút chức 13 2.3.3 Giao diện hoàn chỉnh 17 2.4 Viết code chương trình điều khiển Phần kết nối khai báo biến 18 2.5 Đưa liệu cảm biến lên webserver 20 2.6 Giao tiếp giọng nói với hệ thống sử dụng ngơn ngữ lập trình Python 21 CHƯƠNG 3: KIỂM TRA HOẠT ĐỘNG CỦA HỆ THỐNG 24 3.1 Tình Huống 24 3.2 Tình 25 3.3 Đánh giá hoạt động hệ thống 26 CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 28 4.1 Kết đạt 28 4.2 Đề xuất hướng phát triển 28 Tài liệu tham khảo 29 Phụ lục 30 iv DANH MỤC HÌNH ẢNH Hình ảnh 1: NodeMCU Hình ảnh 2: Cảm biến độ ẩm đất Hình ảnh 3:L298N Hình ảnh 4:Máy bơm 5v Hình ảnh 5: Sơ đồ kết nối 10 Hình ảnh 6: Mạch điện thực tế 10 Hình ảnh 7: Lưu đồ thuật toán 11 Hình ảnh 8: Chức datastreams (V0) 13 Hình ảnh 9:Chức datastreams (V1) 13 Hình ảnh 10:Chức datastreams (V2) 14 Hình ảnh 11: Chức datastreams (V3) 14 Hình ảnh 12: Chức datastreams (V6) 15 Hình ảnh 13: Chức datastreams (V7) 15 Hình ảnh 14: Chức datastreams (V8) 16 Hình ảnh 15: Giao diện ứng dụng hồn chỉnh 17 Hình ảnh 16: Kiểm tra kết nối NodeMCU Blynk app 24 Hình ảnh 17: Hoạt động cảm biến chức hiển thị Blynk App 25 Hình ảnh 18: Demo hệ thống 27 v LỜI MỞ ĐẦU Nền nơng nghiệp nước ta có bước phát triển chưa có nhiều ứng dụng khoa học kỹ thuật áp dụng vào thực tế Rất nhiều quy trình kỹ thuật trồng trọt, chăm sóc tiến hành cách chủ quan, không đảm bảo u cầu Có thể nói nơng học, ngồi kỹ thuật trồng trọt, chăm sóc tưới nước tăng thời gian quang hợp 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 chịu 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 Hệ thống tưới nước thông minh kết hợp theo dõi từ xa thông qua điện thoại hệ thống thiết bị phụ trợ tốt đáp ứng theo nhu cầu sinh trưởng trồng, ứng dụng rộng nước phát triển Hệ thống tưới nước thông minh kết hợp theo dõi từ xa hình thức tưới nước hợp lý, tiết kiệm sức lao động chi phí nhân cơng, vốn phát triển nhiều nước giới Tuy nhiên, Việt Nam vài ba năm trở lại đây, việc tận dụng hệ thống trở thành xu hướng Hệ thống tưới nước trở nên phổ biến với người nông dân nơng thơn với q trình đại hóa, cơng nghiệp hóa nơng thơn chưa dám mạnh dạng đưa vào sử dụng chi phí cao Nắm bắt nhu cầu cấp thiết mong muốn góp chút cơng sức làm giảm bớt gánh nặng cho người làm nơng, nhóm định chọn: “Xây dựng hệ thống tưới thông minh dựa độ ẩm đất theo dõi từ xa thông qua điện thoại” CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 1.1 Giới thiệu tổng quan IOT Thuật ngữ Internet of things (viết tắt IoT) hiểu cách đơn giản mạng lưới vạn vật kết nối với thông qua Internet Chúng bao gồm đồ vật, người cung cấp định danh riêng tất có khả truyền tải hay trao đổi thơng tin hay liệu qua mạng mà không cần đến tương tác trực tiếp người với người, hay người với máy tính IoT phát triển từ hội tụ công nghệ không dây, công nghệ vi điện tử quan trọng có mặt Internet Nói đơn giản IoT tập hợp thiết bị có khả kết nối thứ lại với với Internet với giới bên ngồi để thực cơng việc Có thể nói IoT có mặt hầu hết lĩnh vực đời sống từ văn hóa, du lịch, giáo dục, y học, truyền thông,…Tất lĩnh vực ứng dụng từ thành tựu IoT Như trước muốn thông tin liên lạc với khơng cịn cách khác viết thư truyền thư thông qua người giao nhận Cịn thơng qua thiết bị thơng minh, chúng kết nối với thông qua hệ thống wifi, 3G hay ứng dụng riêng hãng Chưa đầy 10s gửi tin nhắn đến người hay nhiều người khác Bên cạnh cịn có nhiều ứng dụng khác như: • Quản lý môi trường • Quản lý hệ thống máy móc • Hệ thống mua sắm trực tuyến • Hệ thống kiểm sốt an ninh • Nhà thơng minh • Ứng dụng quản lý toàn thiết bị cá nhân thông qua việc động 1.2 Mục tiêu ý tưởng đề tài Về lý thuyết: Đọc giá trị độ ẩm đất từ chân A0 NodeMcu hiển thị Blynk chức Value Display (V1) chuyển giai đo phần trăm (%) Cho phép tùy chỉnh chế độ Auto/Manual thông qua chức Styled button (V2) 2.5 Đưa liệu cảm biến lên webserver Máy chủ Web (web server) kết hợp Phần cứng Phần mềm, chịu trách nhiệm trì, tìm nạp cung cấp trang Thơng tin trang web văn dạng tài liệu HTML, hình ảnh, video, ứng dụng, liên kết,… Trình duyệt web máy tính xách tay điện thoại di động bạn ứng dụng web cho máy khách (web client), kết nối với máy chủ chứa liệu Kiểu giao tiếp gọi Mơ hình Máy khách - Máy chủ (client – server) Web server: Khi bạn gõ địa (www.google.com) bạn có biết kết trả lấy từ đâu khơng? Đó từ Web Server (máy web) Web server phần mềm/phần cứng máy chủ có nhiệm vụ lưu trữ phân phát nội dung trang web thông qua giao thức HTTP số giao thức liên quan khác HTTP: HTTP viết tắt Hypertext Transfer Protocol (Giao thức truyền thông siêu văn bản) giao thức dựa văn sử dụng để giao tiếp máy khách (client) máy chủ (server) Có nhiều phương thức HTTP, có hai phương thức sử dụng rộng rãi GET POST ▪ Chúng ta Lập trình webserver ESP8266 dùng HTTP-GET Bước 1: Gọi thư viện thiết lập wifi Web server #include #include 20 Bước 2: Khởi tạo đối tượng SERVER port 80 (mặc định web server) ESP8266WebServer server(80) Bước 3: Gọi hàm thực truy vấn trang chủ phương thức GET server.on("/", handleRoot); Bước 4: Viết trương trình hương trình trả cho truy vấn void handleRoot() { server.send(200, "text/plain", "Hello world"); } Bước 5: Gọi phương thức vòng lặp để đọc truy vấn từ client server.handleClient(); 2.6 Giao tiếp giọng nói với hệ thống sử dụng ngơn ngữ lập trình Python ▪ Chúng ta sử dụng API có sẵn Nhận dạng giọng nói Python Một số gói Python wit apiai cung cấp nhiều thứ nhận dạng giọng nói Tuy nhiên, đây, sử dụng SpeechRecognition, dễ sử dụng Mã cứng mã hóa khóa API mặc định cho API Google Web Speech ▪ Điều kiện tiên để nhận dạng giọng nói Python Cài đặt thư viện: Bạn sử dụng pip để cài đặt pip install SpeechRecognition pip install PyAudio ▪ Đọc tệp âm Python Lớp nhận dạng Đầu tiên, tạo thể lớp Recognizer r=sr.Recognizer() Với Recognizer, chúng tơi có phương thức cho API- Recog_ing_bing () – Microsoft Bing Speech 21 - Recog_google () – API giọng nói web Google - Recog_google_cloud () – Google Cloud Speech - công nhận_houndify () – Houndify - accept_ibm () – IBM Speech to Text - recognize_sphinx- CMU Sphinx - công nhận_wit () – Wit.ai ▪ Thu thập liệu với record () Chúng tơi u cầu trình quản lý ngữ cảnh mở tệp đọc nội dung nó, sau ghi lại vào phiên AudioData demo=sr.AudioFile('demo.wav') with demo as source: audio=r.record(source) ▪ Đọc đoạn âm Khi bạn muốn đọc phần tệp âm mình, bạn sử dụng bù đối số cho biết vị trí bắt đầu (tính giây) thời lượng cho biết thời lượng nghe with demo as source: audio=r.record(source,offset=4,duration=3) r.recognize_google(audio) ▪ Xử lý tiếng ồn Được rồi, đối mặt với Sẽ ln có tiếng ồn, bạn sử dụng thiết bị chuyên nghiệp để ghi lại âm Vì vậy, tốt học cách đối phó với Phương thức Adjust_for_ambient_noise () đọc giây luồng tệp để hiệu chỉnh trình nhận dạng theo mức tiếng ồn âm Điều thường sử dụng phần âm khơng có chép lời with demo as source: 22 r.adjust_for_ambient_noise(source,duration=0.51) audio=r.record(source,offset=2.5,duration=3) r.recognize_google(audio) ▪ Lớp Micrô Giống Trình nhận dạng cho tệp âm thanh, cần Micrơ cho liệu giọng nói thời gian thực with mic as source: r.adjust_for_ambient_noise(source) audio=r.listen(source) r.recognize_google(audio) 23 CHƯƠNG 3: KIỂM TRA HOẠT ĐỘNG CỦA HỆ THỐNG 3.1 Tình Huống Kiểm tra kết nối sever NodeMCU Blynk App có hoạt động tốt khơng Tránh trường hợp kết nối hệ thống không thông báo độ ẩm đất Chúng ta theo dõi tình hình độ ẩm để điều khiển ngưỡng tắt mở bơm nước gây ảnh hưởng xấu đến trồng Mất kết nối Blynk Nodemcu Hình ảnh 16: Kiểm tra kết nối NodeMCU Blynk app Lỗi Blynk app NodeMCU không giao tiếp với số nguyên nhân sau: - Lỗi kết nối mạng, wifi - Do NodeMCU bị nguồn cổng USB bị lỏng 24 - Do chưa cắm cổng USB NodeMCU vào nguồn - Do khơng tìm sever băng thơng để kết nối 3.2 Tình ▪ Kiểm tra độ nhạy cảm biến độ ẩm đất Theo thời gian đầu cảm biến bị ăn mịn khơng cịn xác nên cần theo dõi thường xuyên đưa biện pháp xử lý thích hợp tránh trường hợp cảm biến bị sai lệch ảnh hưởng xấu đến trồng Cảm biến trục trặc dẫn đến không hiển thị độ ẩm đất, chức app Blynk không cập nhật giá trị Hình ảnh 17: Hoạt động cảm biến chức hiển thị Blynk App ▪ Lỗi nguyên nhân sau: 25 - Do cảm biến sử dụng lâu năm bị ăn mịn hư hại dẫn đến việc khơng cịn cập nhật xác giá trị độ ẩm Cần thay cảm biến - Do lỗi kết nối NodeMCU Blynk app dẫn đến việc chuyển giá trị độ ẩm thu từ chân NodeMCU lên Blynk app 3.3 Đánh giá hoạt động hệ thống Hệ thống tưới phun mưa sử dụng nhiều nông nghiệp với trồng cần nhiều nước tưới cho tán Ngồi phương pháp cịn áp dụng cho việc tưới bãi cỏ, tán cảnh địa điểm công cộng, khu nghỉ dưỡng với thiết kế đảm bảo tính mỹ quan Hệ thống áp dụng cho vườn chè, khu vực trồng hoa, vườn rau lớn Việt Nam Với thiết kế đại, hệ thống phun mưa giúp nơng dân tiết kiệm chi phí đầu tư, sức lao động, nguồn nước vào mùa khơ Được tưới nước tồn bề mặt, trồng phát triển tốt từ rễ lên đến bề mặt lá, tăng hiệu sản xuất nông nghiệp, chất lượng nơng sản tốt Hệ thống bọn thiết kế áp dụng tốt phịng thí nghiệm mơ hình trồng rau nhà Ưu điểm hệ thống nhỏ gọn giá thành rẻ tiện dụng cho mơ hình trồng rau nhỏ vừa, dễ chỉnh sửa phương thức phát triển thành dự án lớn phát triển nông nghiệp Tuy nhiên, để mở rộng cho dự án lớn cần phải cải tiến hệ thống nhiều mặt kỹ thuật cảm biến 26 Hình ảnh 18: Demo hệ thống 27 CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 4.1 Kết đạt Sau thời gian tìm hiểu, tham khảo tài liệu từ nhiều nguồn khác nhau, giúp đỡ giảng viên mơn bạn bè, nhóm em hoàn thành đề tài: “xây dựng hệ thống tưới tự động dựa độ ẩm đất theo dõi từ xa thông qua điện thoại di động” ▪ Nhìn chung đề tài nhóm em có ưu điểm: Mạch có cấu tạo hoạt động đơn giản khơng phức tạp tính xác khả áp dụng thực tế cao, giảm bớt công sức người việc chăm sóc vườn Mạch thiết kế với module có biến trở, ta dễ dàng điều chỉnh tùy thuộc vào yêu cầu trường hợp cụ thể Các thiết bị dễ mua thị trường, giá thành rẻ Dễ lắp ráp người tập làm mạch điện tử Có thể mở rộng phát triển dễ dàng Đề tài trình bày nguyên lý hệ thống tưới nước tự động theo dõi từ xa, từ phát triển đề tài thành hệ thống vườn thông minh phù hợp với nhu cầu xã hội 4.2 Đề xuất hướng phát triển Với đề tài có đủ thời gian nghiên cứu mở rộng ngồi việc sử dụng cảm biến độ ẩm cịn sử dụng thêm loại cảm biến khác như: cảm biến độ ẩm, cảm biến nhiệt độ ,cảm biến tốc độ động để điều chỉnh lượng nước tưới tiết kiệm hiệu quả, cảm biến đo độ pH để đo độ pH nước tưới, kịp thời xử lý nước bị nhiễm phèn 28 Tài liệu tham khảo https://srituhobby.com/iot-based-weather-monitoring-system-usingnodemcu-and-blynk/ https://www.youtube.com/watch?v=huWn4Sx99hQ&list=PLoEJbRsHsRfy wL7Ky0alOJgCyttYIPB1w&index=11&ab_channel=SriTuHobby https://www.youtube.com/watch?v=Al66TZPt7iM&list=PLDyGjFOgHSG3 q32yUSm5lFPaQcL0lw7-S&index=7&ab_channel=TEK4VN http://arduino.vn/bai-viet/531-dieu-khien-lcd-bang-arduino-uno http://arduino.vn/bai-viet/91-doc-nhiet-do-do-am-va-xuat-ra-man-hinh-lcd http://arduino.vn/bai-viet/917-cam-bien-dat-va-nhung-ung-dung-hay-cuano https://esp8266.vn/ http://iot47.com/iot-bai-5-tao-webserver-voi-esp8266-va-lap-trinh-choesp8266-bang-arduino-ide/ 29 Phụ lục Code khai báo, điều khiển #include #include #define BLYNK_PRINT Serial #define BLYNK_TEMPLATE_ID "TMPLsxm9JUBB" #define BLYNK_DEVICE_NAME "smart" #define BLYNK_AUTH_TOKEN "u-xfEDNbMJHhvivD09pxnrmdwgpTPTGP" #include #include #include char auth[] = "u-xfEDNbMJHhvivD09pxnrmdwgpTPTGP"; char ssid[] = "AE TEAM IT"; char pass[] = "Teams@2022"; LiquidCrystal_I2C lcd(0x27,16,2); DHT dht(D3, DHT11); //(sensor pin,sensor type) BlynkTimer timer; ESP8266WebServer server(80); //Motor PINs #define ENA D7 #define IN1 D6 #define IN2 D5 #define trig D4 #define echo D8 bool batbom = 0; int Speed; int depth =20; float nhietdo; 30 float doam; int doam_bomtuoi=0; int doam_tatbomtuoi=0; //khai báo chế độ tưới boolean chedo_hoatdong=1; unsigned long times=millis(); Code xuất chân tín hiệu, kiểm tra kết nối wifi pinMode(ENA, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); Serial.begin(9600); delay(10); // dht.begin(); // Ket noi toi mang WiFi Serial.println(); Serial.print("Ket noi toi mang "); Serial.println(ssid); WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("Da ket noi WiFi"); // Khoi dong server server.begin(); Serial.println("Khoi dong Server"); // In dia chi IP Serial.println(WiFi.localIP()); lcd.init(); 31 lcd.backlight(); dht.begin(); Blynk.begin(auth, ssid, pass); // Setup a function to be called every second timer.setInterval(10L, weather); Code giao tiếp blynk app NodeMCU BLYNK_WRITE(V8){ chedo_hoatdong = param.asInt(); // Serial.println("Chế độ hoạt động: " + String(chedo_hoatdong)); } BLYNK_WRITE(V6) { batbom = param.asInt(); } BLYNK_WRITE(V7) { Speed = param.asInt(); } BLYNK_WRITE(V9){ doam_bomtuoi = param.asInt(); // Serial.println("Độ ẩm bơm tưới: " + String(doam_bomtuoi)); } BLYNK_WRITE(V10){ doam_tatbomtuoi = param.asInt(); // Serial.println("Độ ẩm tắt bơm tưới: " + String(doam_tatbomtuoi)); } Code xuất tín hiệu lên chức hiển thị Blynk.virtualWrite(V0, nhietdo); //V0 is for Temperaturell Blynk.virtualWrite(V1, doam); //V1 is for Humidity Blynk.virtualWrite(V2, r); //V2 is for Rainfall Blynk.virtualWrite(V3, phantramthuc); 32 Code lệnh điều khiển chương trình void smartcar() { int r = digitalRead(D0); int value = analogRead(A0); int phantram = map(value,0,1023,0,100); int phantramthuc =100 - phantram; // Serial.println(value); // chế độ trực tiếp if(chedo_hoatdong==1){ if (batbom == 1) { Batbom(); // Serial.println("batbom"); } else if (batbom == ) { Stop(); // Serial.println("Stop"); } } // chế độ tự động if(chedo_hoatdong==0){ if (phantramthuc >doam_tatbomtuoi or r ==0){ Stop(); // Serial.println("Tắt bơm tưới!"); } else{ if( phantramthuc < doam_bomtuoi){ Batbom(); // Serial.println("Bật bơm tưới!"); 33 } } } times=millis(); // Serial.println(chedo_hoatdong); } 34