THIẾT KẾ, CHẾ TẠO MÔ HÌNH GIÁM SÁT VÀ ĐIỀU KHIỂN TƯỚI CÂY TỰ ĐỘNG

80 516 14
THIẾT KẾ, CHẾ TẠO MÔ HÌNH  GIÁM SÁT VÀ ĐIỀU KHIỂN TƯỚI CÂY TỰ ĐỘ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 NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH KHÓA LUẬN TỐT NGHIỆP THIẾT KẾ, CHẾ TẠO MÔ HÌNH GIÁM SÁT VÀ ĐIỀU KHIỂN TƯỚI CÂY TỰ ĐỘNG Họ và tên sinh viên: BÙI VŨ LUÂN Ngành: CƠ ĐIỆN TỬ Niên khóa: 2014-2018 THIẾT KẾ, CHẾ TẠO MÔ HÌNH GIÁM SÁT VÀ ĐIỀU KHIỂN TƯỚI CÂY TỰ ĐỘNG Tác giả Tháng 6 năm 2018 1 BÙI VŨ LUÂN Khóa luận tốt nghiệp được đệ trình đáp ứng yêu cầu cấp bằng Kỹ sư ngành Cơ Điện Tử Giáo viên hướng dẫn: Th.S TRẨN THỊ KIM NGÀ Tháng 06 năm 2018 2 LỜI CẢM ƠN Em xin trân trọng cảm ơn tất cả quý thầy (cô) ở trường Đại học Nông Lâm Thành Phố Hồ Chí Minh và quý Thầy (Cô) trong khoa Cơ Khí - Công Nghệ đã trang bị cho em những kiến thức quý báu cũng như đã giúp đỡ em trong suốt quá trình học tập tại trường Em xin chân thành cảm ơn các thầy (cô) trong bộ môn Cơ Điện Tử - Trường Đại Học Nông Lâm Thành Phố Hồ Chí Minh đã dạy bảo tận tình, trang bị cho em những kiến thức quý báu, bổ ích và tạo điều kiện thuận lợi trong suốt quá trình em học tập và nghiên cứu tại trường Em cũng xin bày tỏ sự biết ơn chân thành và sâu sắc đến cô Trần Thị Kim Ngà, cô đã giành nhiều thời gian tận tình chỉ bảo, hướng dẫn em trong suốt quá trình tìm hiểu, triển khai và nghiên cứu đề tài Cô là người đã định hướng và đưa ra nhiều góp ý quý báu trong quá trình em thực hiện luận văn này Đặc biệt, em xin cảm ơn quý thầy (cô) trong hội đồng đã dành thời gian nhận xét và góp ý để luận văn của em hoàn thiện hơn Em xin gửi lời cảm ơn đến gia đình cũng như bạn bè đã động viên, ủng hộ và luôn tạo cho em mọi điều kiện thuận lợi trong suốt quá trình hoàn thành luận văn Cuối cùng em xin gữi lời chúc sức khỏe và thành đạt tới tất cả các quý thầy (cô) cùng toàn thể gia đình và bạn bè Xin chân thành cảm ơn! TPHCM, ngày tháng 06 năm 2018 Sinh viên thực hiện BÙI VŨ LUÂN 3 TÓM TẮT Đề tài nghiên cứu “Thiết kế, chế tạo mô hình giám sát và điều khiển tưới cây” được thực hiện tại trường Đại Học Nông Lâm Thành Phố Hồ Chí Minh, thời gian từ tháng 2 tới tháng 6 năm 2018 Đề tại được dựa trên những ý tưởng và mô hình có trên thực tế bao gồm các khâu: - Tìm hiểu về các phương pháp giám sát và điều khiển tưới cây tự động Xây dựng mô hình tưới cây tự động Xây dựng thuật toán điều khiển tưới cây theo các chế độ khác nhau Thiết kế mạch điều khiển để giám sát và điều khiển tưới cây tự động Sử dụng cảm biến nhiệt độ, độ ẩm đo nhiệt độ, độ ẩm tại vùng tưới để điều chỉnh lưu lượng cũng như là thời gian tưới hợp lý và cảm biến siêu âm đo mực nước để có thể kiểm soát mực nước trong bồn chứa tránh tình trạng thiếu nước trong quá trình tưới - Hẹn giờ tưới cây thời gian thực thông qua module sim A7 GSM/GPRS/GPS - Điều khiển tưới trực tiếp qua điện thoại - Khảo nghiệm, đánh giá mô hình Ngoài ra, em cũng thiết kế giao diện giao tiếp để người dùng tiện thao tác thông qua web server một cách thân thiện, dễ hiểu và dễ thao tác Do thời gian còn hạn chế, cũng như mức độ rộng lớn của đề tài, nên dù đã cố gắng hết sức nhưng phương án giải quyết bài toán của em chắc chắn không thể tránh khỏi những thiếu sót Chúng em rất mong nhận được sự đóng góp ý kiến của quý thấy cô và bạn bè để đề tài của em càng được hoàn thiện hơn 4 MỤC LỤC 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 5 DANH SÁCH CÁC HÌNH 6 DANH SÁCH CÁC BẢNG 7 Chương 1 MỞ ĐẦU 1.1 Đặt vấn đề Hiện nay trên thế giới việc ứng dụng các công nghệ điều khiển vào trong sản xuất là rất nhiều và cần thiết trong các ngành nghề kể cả trong nông nghiệp Nhờ có ứng dụng các công nghệ điều khiển hiện đại mà năng suất và chất lượng nông sản tăng lên đáng kể So với nước ta hiện nay thì nền nông nghiệp vẫn còn lạc hậu cũng như 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 ngoài những kĩ thuật trồng trọt, chăm sóc thì tưới nước là một trong các khâu quan trọng nhất trong trồng trọt để đảm bảo cây sinh trưởng và phát triển bình thường Tưới đúng và tưới đủ theo yêu cầu nông học của cây trồng sẽ không sinh sâu bệnh, hạn chế thuốc trừ sâu cho sản phẩm an toàn, đạt năng suất hiệu quả cao Mặt khác hiện nay nước ta đang trong giai đoạn công nghiệp hóa hiện đại hóa các thiết bị máy móc tự động được đưa vào phục vụ thay thế cho sức lao động của con người Vì vậy thiết bị tưới đang được nghiên cứu, thiết kế, chế tạo để đưa vào thực tiễn ngày càng nhiều Thiết bị tưới cũng rất đa dạng về 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 nhau phục vụ cho các loại cây khác nhau được chế tạo từ nhiều quốc gia khác nhau 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 của mình Việc thiết kế, chế tạo một hệ thống tưới cây tự động sẽ giúp con người không phải tưới cây, không phải tốn chi phí nhân công tưới nước và có thể giám sát thời gian tưới 1 cách cụ thể nhất Người lao động sẽ không cần quan tâm tới việc tưới cây mà cây vẫn sinh trưởng phát triển tốt hơn nhờ việc tưới phù hợp và chính xác hơn Đồng thời can thiệp vào nền 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 8 Ngoài ra trên những tuyến đường ở khu vực trung tâm thành phố, chúng ta vẫn hay bắt gặp hình ảnh các xe bồn chở nước tưới cây dọc đường gây cản trở, mất an toàn giao thông Do đó đề tài “Thiết kế, chế tạo mô hình giám sát và điều khiển tưới cây tự động” được chọn để giải quyết các vấn đề nêu trên 1.2 Mục tiêu đề tài Vận dụng kiến thức đã học để nghiên cứu và thực hiện: “Thiết kế, chế tạo mô hình giám sát và điều khiển tưới cây” từ đó đưa vào ứng dụng trong thực tiễn Giúp cho việc tươi tiêu cây trồng ở nước ta có những phương án mới và đạt được hiệu quả cao Hệ thống tích hợp module gọi điện sử dụng mạng di động, xử lý dữ liệu Hệ thống sẽ thu nhận các tín hiệu của thiết bị đầu cuối (mobile), để thực hiện các lệnh điều khiển tưới cây và phản hồi lại trạng thái của thiết bị được điều khiển Một số chức năng của hệ thống: - Hẹn thời gian tưới thông qua web server Đọc được giá trị độ ẩm, nhiệt độ của đất thông qua giao diện web Gọi điện để kích hoạt tưới khẩn cấp Module SIM A7 GSM/GPRS/GPS có thể làm việc tại các ví trí có phủ sóng của mạng điện thoại di động đang hoạt động trong nước như Viettel, 1.3 Mobile Phone, Vina Phone Nội dung đề tài Vì thời gian có hạn cũng như mức độ rộng lớn của đề tài nên em chỉ thực hiện nghiên cứu các vấn đề cơ bản như sau: - Tìm hiểu về các phương pháp giám sát và điều khiển tưới cây tự động hiện đang có trên thị trường, từ đó đánh giá những ưu điểm và nhược điểm - của từng loại Tìm hiểu một số loại cảm biến Tìm hiểu modul sim A7 GPRS/GPS/GSM và tập lệnh AT để điều khiển Tìm hiểu về web server Xây dựng mô hình tưới cây tự động Xây dựng thuật toán điều khiển tưới cây theo các chế độ khác nhau Xây dựng mạch điều khiển để giám sát và điều khiển tưới cây tự động Khảo nghiệm, đánh giá mô hình 9 Chương 2 TỔNG QUAN 2.1 Tổng quan về hệ thống tưới cây 2.1.1 Hệ thống tưới là gì? Hệ thống tưới là một công cụ để chuyền tải một lượng nước từ nguồn nước đến các điểm khác nhau trên một phạm vi đất nào đó với mật độ bao phủ đồng đều cao phù hợp cho từng giai đoạn sinh trưởng khác nhau của cây Ngày nay với sự phát triển của xã hội, khoa học công nghệ cụ thể là công nghệ ứng dụng vào nông nghiệp cũng từng bước nâng cao Lao động chân tay dần được thay thế bằng máy móc và hệ thống tưới nước cũng là một trong số đó Hệ thống tưới hay còn gọi là hệ thống tưới tự động là một trong những hệ thống ứng dụng công nghệ tiên tiến nhất hiện nay Trước kia, để có nước canh tác người lao động phải tìm kiếm những nơi có nguồn nước dồi giàu hoặc là phải dùng sức mình vận chuyển từng khối nước tới tưới cho cây trồng thì ngày nay chỉ cần một nút bấm cây đã có nước để hấp thụ Vừa giảm được thời gian, giảm được nhân công lao động lại vừa có thể kiểm soá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 của hệ thống tưới cây Vì vấn đề có thể cung cấp đủ nước đảm bảo độ ẩm cho cây trồng phát triển, cũng như là tiết kiệm thời gian, tiết kiệm chi phí nhân công, tiết kiệm được nguồn nước nên hệ thống tưới cây được ra đời và ngày càng hiện đại hơn: 10  1  2  3  4  5  6  7  8  9  1 0  13  13  Đ h0 5p 00 13 h1 0p 00 13 h1 5p 00 13 h2 0p 00 13 h2 5p 00 13 h3 0p 00 h0 5p 00 13 h0 0p 00 13 h1 5p 00 12 h2 0p 00 13 h2 5p 00 13 h3 0p 00 ú n g  Đ ú n g  Đ ú n g  S a i  13  13  Đ h3 5p 00  13 h4 0p 00  13 h4 5p 00  13 h5 0p 00 h3 5p 00  13 h4 0p 00  13 h4 5p 00  13 h5 0p 00 ú n g  Đ ú n g  Đ ú n g  Đ ú n g            S  1  1  1  1  1 ú t )  1  1  1  1  1 a i  Đ  1  1 ú n g 66  Đ  Hoạt ú n g Đ ú n g Đ ú n g Đ ú n g S a i động tốt      Đ ú n g  1  1  1  1  1  1  1  1  Hoạt động tốt  Hoạt động tốt  Bơm bật trễ 5 giây  Bơm không hoạt động  Hoạt động tốt  Đ  Hoạt ú n g  Đ ú n g  Đ ú n g  Đ ú n g động tốt  Hoạt động tốt  Hoạt động tốt  Hoạt động tốt  Bảng 4.4: Kết quả khảo nghiệm với chế độ hẹn giờ bơm 1   Số lần đúng  Số lần sai  Kết quả  9  1  Tỉ lệ đúng  85%  67  Thực hiện điều khiển bơm 2: Bảng 4.5: Khảo nghiệm 10 lần với chế độ hẹn giờ bơm 2  L  Đặt  Ki  K  Đ  K ầ thờ ểm i ặ i n i tra ể t ể gia th m m k t n ời h t h t bơ gia ả r ờ r m n o a i a tướ th i ực n t g t (gi qu g ì i h ờ/p á h n a ờ hút trì i h n i /gi nh ệ ây) bơ t q g m m r u i tư ạ á a ới n n (gi t g ờ/ r t ph h ì h út/ o n ự giâ ạ h c y) t t q đ ư u ộ ớ á n i t g ( r c p ì ủ h n a ú h t b t ) ơ ư m ớ i  ( p h ú t 68  K i ể m t r a t ì n h t r ạ n g h o ạ t đ ộ n g c ủ a b ơ m  Đánh giá hiện trạng bơm và thời gian sai lệch  1  14  14  Đ h0 0p 00  14 h0 5p 00  14 h1 0p 00  14 h1 5p 00 h0 0p 00  14 h0 5p 00  14 h1 0p 00  14 h1 5p 00 ú n g  Đ ú n g  Đ ú n g  Đ ú n g  5  14  14  Đ  6 h2 0p 00  14 h2 5p 00 h2 0p 00  14 h2 5p 00 ú n g  Đ ú n g  1  14  14  Đ  1 h3 0p 00  14 h3 5p 00  14 h4 0p 00  14 h4 5p 00 h3 0p 00  14 h3 5p 00  14 h4 0p 00  14 h4 5p 00 ú n g  S a i  2  3  4  7  8  9  1 0   Đ ú n g  Đ ú n g  1  1  1  1  1  1  1  1 )  1  1  1  1  Hoạt ú n g  Đ ú n g  Đ ú n g  Đ ú n g động tốt  Hoạt động tốt  Hoạt động tốt  Hoạt động tốt  1  Đ  Hoạt động tốt  1 ú n g  Đ ú n g  Hoạt  Đ  Hoạt ú n g  S a i động tốt  1  1  1  Đ  1 ú n g  Đ ú n g Bảng 4.6: Kết quả khảo nghiệm với chế độ hẹn giờ bơm 2 69  Đ động tốt  Bơm không hoạt động  Hoạt động tốt  Hoạt động tốt   Số lần đúng  Số lần sai  Kết quả  9  1  Tỉ lệ đúng  90%   70    Thực hiện điều khiển bơm trực tiếp bằng chế độ gọi điện Bảng 4 7: Khảo nghiệm 10 lần với chế độ gọi điện Số lần             1 2 3 4 5 6 7 8 9 10  Trạng thái bơm khi gọi điện đến lần 1  Bật  Bật  Bật  Bật  Bật  Bật  Bật  Không bật  Bật  Bật Trạng thái bơm khi gọi điện đến lần 2  Tắt  Tắt  Không tắt  Tắt  Tắt  Tắt  Tắt  Không tắt  Tắt  Tắt  Bảng 4.8: Kết quả khảo nghiệm với chế độ gọi điện   Số lần đúng  Số lần sai  Kết quả  80  2  Tỉ lệ đúng  80%   Kết luận: độ chính xác trung bình của bốn lần thử nghiệm là:  (80%+85%+90%+80%)/4 = 83.75%  Nhận xét:  Từ kết quả cho thấy với chế độ hẹn giờ tưới làm việc có khả năng tương đối cao Tuy nhiên ở một số trường hợp thì máy bơm không hoạt động điều này là do quá trình truyền tải dữ liệu thông qua mạng dữ liệu 2G và quá trình truyền nhận cuộc gọi GSM là 2 phương thức khác nhau do đó nếu sim đang trong quá trình nhận cuộc gọi sẽ không lấy được dữ liệu ngay lúc đó mà phải đợi đến khi cuộc gọi hoành tất thì thông tin mới được tải về Ngược lại, nếu sim đang nhận dữ liệu thì cuộc gọi đến sẽ làm gián đoạn truyền nhận cũng như là gián đoạn việc bật tắt bơm Vấn đề có thể khắc phục nếu ta tiến hành với một thiết bị tách biệt hoặc quản lý hoàn toàn trên giao diện web 71    Chương 5 KẾT LUẬN VÀ KIẾN NGHỊ Kết luận 5.1  Sau quá trình nghiên cứu, thiết kế và chế tạo và vận hành điều khiển tưới cây, đề tài đã thực hiện được một số kết quả: - Hoàn thành tìm hiểu về các phương pháp giám sát và điều khiển tưới cây tự động - Hoàn tất việc thiết kế, xây dựng phần cơ khí mô hình tưới cây tự động - Xây dựng giải thuật điều khiển tự động mô hình tưới với 2 mode tưới là hẹn giờ tưới cây trên web server với giao diện đơn giản, có các thông số về ẩm độ, nhiệt độ để tiện giám sát cho khu vườn nhỏ và gọi điện để trực tiếp điều khiển tưới cây - Xây dựng mạch điều khiển để giám sát và điều khiển tưới cây tự động - Thiết bị có khả năng vận hành theo thông số đã cài đặt - Khảo nghiệm và đánh giá mô hình Kiến nghị 5.2  Để điều khiển hẹn giờ trên web một cách tối ưu hơn cùng với việc nên phát triển giao diện web có thể thiết kế sinh động thêm với nhiều tính năng có thể điều khiển thẳng máy bơm trên web Việc điều khiển trên web ổn định hoặc thêm chức năng thì 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 và GSM để điều khiển k bị gián đoạn khi chuyển từ chế độ này sang chế độ kia  Do hạn chế về thời gian và kinh phí nên thiết bị chỉ dừng lại ở mức độ mô hình giám sát và điều khiển tưới cây Vì thế nên mô hình máy chỉ mang tính chất khảo nghiệm, vân hành , phương thức điều khiển và đánh giá Vì vậy, cần chế tạo sản phẩm hoàn chỉnh với quy mô lớn hơn và sử dụng công nghệ chế tạo hiện đại để mô hình có thể đạt được hiệu quả cũng như năng suất làm việc tối ưu nhất  72  Tài liệu tham khảo  Tài liệu tiếng việt  [1] Nguyễn Ngọc Cần, Kỹ thuật điều khiển tự động, Nhà xuất bản Đại học Quốc Gia Thành Phố Hồ Chí Minh  [2] Phan Quốc Phô - Nguyễn Đức Chính, Giáo trình cảm biến, NXB Khoa học và 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  Tài liệu Internet  [1] Data sheet các linh kiện điện tử - Nguồn internet http://www.alldatasheet.com/  [2] Tìm hiểu lập trình web HTML và CSS trên https://www.w3schools.com/  [3] https://thachpham.com/web-development/html-css/html-va-css-can-ban- danh-cho-cho-moi-nguoi.html   73  Phụ lục  Code điều khiển arduino  #include "SIMFunc.h" (sobom.toInt() == 1 &&  #include "SENSORFunc.h" thoigiantatbom1 == "") ||  #include "RELAYFunc.h" (sobom.toInt() == 3 &&  unsigned long timer = millis(); (thoigiantatbom2 == "" ||  void setup() { thoigiantatbom1 == ""))) {  Serial.begin(115200);  Serial.print("Bat bom: ");  relaybegin();  Serial.print(sobom);  simbegin();  Serial.print("\tTrong: ");  Serial.println(ngaygio());  Serial.print(sophut.toInt());  }  Serial.println("phut");  void loop() {  batbom(sobom.toInt(),  simcheck();  if (millis() - timer > 1000) { sophut.toInt()); }   checkbom();  }  checkbonchua();  if  if (Alarm.indexOf(giophut(1)) (Alarm.indexOf(ngaygio()) != -1) { != -1) {   String sobom = Alarm.substring(Alarm.indexOf( Alarm.substring(Alarm.indexOf( ngaygio()) + 20, giophut(1)) + 10, Alarm.indexOf(ngaygio()) + 21); Alarm.indexOf(giophut(1)) +  11);  String sophut = Alarm.substring(Alarm.indexOf( String sophut = ngaygio()) + 23); Alarm.substring(Alarm.indexOf(  giophut(1)) + 13);  String sobom = if ((sobom.toInt() == 2 && thoigiantatbom2 == "") || if ((sobom.toInt() == 2 && (sobom.toInt() == 1 && thoigiantatbom2 == "") || thoigiantatbom1 == "") || 74 (sobom.toInt() == 3 && if (tmp.indexOf("{BEGIN}") !  (thoigiantatbom2 == "" || = -1 && tmp.indexOf("{END}") thoigiantatbom1 == ""))) { != -1) {  Serial.print("Bat bom: ");  Serial.print(sobom); tmp.substring(tmp.indexOf("{B  Serial.print("\tTrong: "); EGIN}") + 7,  Serial.print(sophut.toInt()); tmp.indexOf("{END}"));  Serial.println("phut");   batbom(sobom.toInt(),  Serial.println(Alarm); }  } sophut.toInt());  void simcheck() { }  Alarm =   }  static String tmp;  timer = millis();  if (SerialAT.available()) {  char c = SerialAT.read();  }  if (c != '\0') {  void getTimer() {  tmp += c; String tmp =  }  if (tmp != "" && c == '\n') { }   String(luongnuoc());  tmp = "get&nctb=" + tmp;  xuly(tmp);  tmp += "&nhietdo=" +  tmp = ""; String(nhietdo());  tmp += "&doam=" + String(doam());   static unsigned long timerd =  tmp += "&bom2=" + tmp += "&bom3=" + if (millis() - timerd > 20000) {  getTimer();  timerd = millis();  String(digitalRead(M3_PIN));  } millis(); String(bom2);   tmp += "&bom1=" + String(bom1);  }  }  } tmp = AT_GetServer(tmp);  void xuly(String tmp) { 75  //Serial.println(tmp);  if (tmp.indexOf(MyNumber) != else if ((tmp.indexOf("+CLIP")  != -1)) SerialAT.println("ATH");  } -1) call_recv();  Chương trình con của relay  #define M1 1 //  Trọng số mô tơ bơm thứ nhất  #define M2 2 if (thoigiantatbom1 != "" && thoigiantatbom2 != "") return; //  String tmp = ""; Trọng số mô tơ bơm thứ hai  if (hour() + (int)(sophut / 60) < 10) tmp += "0";   /* Các chân điều khiển động cơ  60); thông qua mạch kích Relay có LED báo kiểm tra */  #define M1_PIN 4 //  tmp += ":";  if (minute() + sophut - (((int) Chân khởi động mô tơ thứ nhất  #define M2_PIN 5 (sophut / 60)) * 60) < 10) tmp // += "0"; Chân khởi động mô tơ thứ hai  #define M3_PIN 6 tmp += hour() + (int)(sophut /  // tmp += minute() + sophut (((int)(sophut / 60)) * 60); Chân khởi động bơm nước vào  tmp += ":00A"; bồn  if (!bom1 && (bom == 1 || bom  bool bom1 = false, bom2 = false; == 3)) {  String thoigiantatbom1 = "";  Serial.print("Bat bom 1 - ");  String thoigiantatbom2 = "";  Serial.println(tmp);  void relaybegin() {  thoigiantatbom1 = tmp;  pinMode(M1_PIN, OUTPUT);  digitalWrite(M1_PIN, HIGH);  pinMode(M2_PIN, OUTPUT);  bom1 = true;  pinMode(M3_PIN, OUTPUT);  }  if (!bom2 && (bom == 2 || bom  }  void batbom(int bom, int sophut) == 3)) { { 76  Serial.print("Bat bom 2 - ");  Serial.println(tmp);  thoigiantatbom2 = tmp;   digitalWrite(M2_PIN, HIGH);  }  bom2 = true;  String ngaygio() { } else return tmp;  String date = (String)year();  }  date += "-";  void tatbom(int bom) {  if (month() < 10) date += "0";  date += month();  date += "-";  if (bom1 && (bom == 1 || bom  == 3)) {  Serial.println("Tat bom 1");  if (day() < 10) date += "0";  digitalWrite(M1_PIN, LOW);  date += day();  bom1 = false;  date += " " + giophut(false);  thoigiantatbom1 = "";  return date;  }  }  if (bom2 && (bom = 2 || bom  void checkbom() { == 3)) { if (giophut(0) ==   Serial.println("Tat bom 2");  digitalWrite(M2_PIN, LOW);  if (bom1) {  bom2 = false;  tatbom(1);  thoigiantatbom2 = "";  bom1 = false;  thoigiantatbom1) { } }   }  }  String giophut(bool co) {  if (giophut(0) ==  String tmp = "";  if (hour() < 10) tmp = "0";  if (bom2) {  tmp += hour();  tatbom(2);  tmp += ":";  bom2 = false;  if (minute() < 10) tmp += "0";   tmp += minute();   tmp += ":00A";  }  if (co) return "\"" + tmp;  void checkbonchua() { thoigiantatbom2) { 77 } }  if (luongnuoc() > 17) return;  tmp += ":00A";  if (luongnuoc() < 5) {  thoigiantatbom1 = tmp;  digitalWrite(M1_PIN, HIGH); digitalWrite(M3_PIN, 1);   } else if (luongnuoc() < 14) {  bom1 = true;  } else {  thoigiantatbom2 = tmp;  digitalWrite(M2_PIN, HIGH);  bom2 = true; digitalWrite(M3_PIN, 0);  }   }   void call_recv() {  call_stt = 0;  String tmp = "";  if (hour() + (int)(1 / 60) < 10)  SerialAT.println("ATH"); // Tắt máy  waitFor("OK", 5000); } else { tmp += "0";  SerialAT.println("AT+CLIP=1");  tmp += hour() + (int)(1 / 60);  tmp += ":";  if (minute() + 1 - (((int)(1 /  waitFor("OK", 5000);  static bool call_stt = 0;  if (!call_stt) {  call_stt = 1;  String tmp = "";  tmp += ":00A";  if (hour() + (int)(15 / 60) <  thoigiantatbom1 = tmp;  thoigiantatbom2 = tmp; 60)) * 60) < 10) tmp += "0"; tmp += minute() + 1 - (((int)(1  / 60)) * 60); 10) tmp += "0";  tmp += hour() + (int)(15 / 60);  digitalWrite(M1_PIN, LOW);  tmp += ":";  digitalWrite(M2_PIN, LOW);  if (minute() + 15 - (((int)(15 /  60)) * 60) < 10) tmp += "0";  }  } tmp += minute() + 15 - (((int) (15 / 60)) * 60);   Code cho cảm biến:  // Untrasonic sensor  #include 78  #define TRIGGER_PIN 13 //  OneWire Arduino pin tied to trigger pin nhietdo(ONE_WIRE_BUS); on the ultrasonic sensor  #define ECHO_PIN  DallasTemperature 12 // _nhietdo(& nhietdo); Arduino pin tied to echo pin on  int nhietdo() { the ultrasonic sensor   #define MAX_DISTANCE 20 // _nhietdo.requestTemperatures(); Maximum distance we want to if  ping for (in centimeters) (_nhietdo.getTempCByIndex(0) Maximum sensor distance is > 50) return nhietdo(); rated at 400-500cm return   NewPing _nhietdo.getTempCByIndex(0); _luongnuoc(TRIGGER_PIN,  } ECHO_PIN,  // ELSE MAX_DISTANCE);  #define SENSOR_PIN A0  // Chân cảm biến  int luongnuoc() {  return MAX_DISTANCE -   int doam(){ _luongnuoc.ping_cm();  }  pinMode(A0, INPUT);  int value =  // Temperature sensor DS18B20 analogRead(A0);  #include giá trị hiệu điện thế của cảm biến  #include return map(value, 0, 1023, 100,   // Ta sẽ đọc 0);  #define ONE_WIRE_BUS 7  }   Code cho sim A7:  #include  // AT+IPR=9600 befor ussing  #include  String Alarm;  SoftwareSerial SerialAT(10, 11); 79  #define PWR 2 //  } Định nghĩa chân kích hoạt  if (tmp != "" && c == '\n') { module SIM   #define PWR_Try 3 // if (tmp.indexOf("{BEGIN}") != Định nghĩa số lần thử khích hoạt -1) return tmp; lại SIM if (tmp.indexOf("+CTZV:")   #define ERROR_PIN A4 != -1) return tmp; // Chân LED lỗi kết nối if (tmp == subStr + "\r\n")   #define READY_PIN A5 return tmp; // Chân LED kết nối đã thiết lập,  hệ thống vận hành tốt   String server = "luan.ga";   const int port = 80;  }  String MyNumber =  return "ERROR"; } } "962392521"; // Định nghĩa số  } điện thoại có thể dùng cuộc gọi  bool AT_syncTime() { để tắt/mở bơm nước   String username = "admin"; SerialAT.println("AT+CGATT=1  String password = "11221212"; ");  String waitFor(String subStr, int  timeOut) { String tmp = waitFor("OK", 15000);  String tmp;   unsigned long Error_Timer =  millis();  tmp = "";  while (millis() - Error_Timer <  timeOut) { if (tmp == "ERROR") { return false; } else { if (tmp.indexOf("+CTZV:") == -1) return false;  if (SerialAT.available()) {  waitFor("OK", 5000);  char c = SerialAT.read();  tmp =  if (c != '\0') {  tmp += c; tmp.substring(tmp.indexOf("+C TZV:")); 80 ... phương pháp giám sát điều khiển tưới tự động Xây dựng mơ hình tưới tự động Xây dựng thuật toán điều khiển tưới theo chế độ khác Thiết kế mạch điều khiển để giám sát điều khiển tưới tự động Sử dụng... ? ?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. .. khung mơ hình giám sát điều khiển tưới tự động    Hình 4.3: Bản vẽ 2D khung mơ hình 4.3 Thiết kế mạch điều khiển xây dựng thuật toán điều khiển tưới 4.3.1 Thiết kế mạch điều khiển cho mơ hình

Ngày đăng: 26/09/2019, 20:41

Từ khóa liên quan

Mục lục

  • LỜI CẢM ƠN

  • TÓM TẮT

  • MỤC LỤC

  • DANH SÁCH CÁC CHỮ VIẾT TẮT

  • DANH SÁCH CÁC HÌNH

  • DANH SÁCH CÁC BẢNG

  • Chương 1

  • MỞ ĐẦU

    • 1.1 Đặt vấn đề

    • 1.2 Mục tiêu đề tài

    • 1.3 Nội dung đề tài

    • Chương 2

    • TỔNG QUAN

      • 2.1 Tổng quan về hệ thống tưới cây

        • 2.1.1 Hệ thống tưới là gì?

        • 2.1.2 Lịch sử phát triển của hệ thống tưới cây.

        • 2.1.3 Các phương pháp tưới được áp dụng hiện nay:

          • 2.1.3.1 Hệ thống tưới phun sương

          • 2.1.3.2 Hệ thống tưới phun mưa

          • 2.1.3.3 Hệ thống tưới nhỏ giọt

          • 2.1.4 Một số công trình nghiên cứu trước

          • 2.2 Tổng quan tập lệnh AT trong đề tài

            • 2.1.1 Tập lệnh AT

            • 2.2.2 Các thuật ngữ

            • 2.2.3 Cú pháp lệnh AT

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

Tài liệu liên quan