1. Trang chủ
  2. » Luận Văn - Báo Cáo

(Đồ án hcmute) thiết kế mô hình vườn rau thông minh

89 3 0

Đ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 CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THƠNG THIẾT KẾ VÀ MƠ HÌNH VƯỜN RAU THƠNG MINH GVHD: NGUYỄN MẠNH HÙNG SVTH: LÊ ANH TÚ MSSV: 14141563 SKL 0 Tp Hồ Chí Minh, 2018 an 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 2018 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Lê Anh Tú MSSV: 14141563 Ngành: CNKT ĐIỆN TỬ TRUYỀN THÔNG Lớp: 14141DT2 Giảng viên hướng dẫn: ĐT: 01682358440 Ngày nhận đề tài: Ngày nộp đề tài: Tên đề tài: Thiết kế mơ hình vườn rau thơng minh Các số liệu, tài liệu ban đầu: Kiến thức môn Mạch điện, Điện tử bản, Thiết bị điện, Điện tử công suất, IoT,… Nội dung thực đề tài :  Thiết kế hệ thống  Test mạch test-board  Sử dụng Altium để vẽ mạch in, sơ đồ nguyên lí  Thi công mạch thực tế  Viết code, app  Test mạch thi cơng, xây dựng mơ hình  Viết báo cáo thực Sản phẩm: Mơ hình vườn rau thơng minh có khối thu thập liệu cách xa khối xử lí iii an CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên Sinh viên: Lê Anh Tú MSSV: 14141563 Ngành: Công nghệ kỹ thuật điện tử truyền thơng Tên đề tài: Thiết kế mơ hình vườn rau thông minh Họ tên Giáo viên hướng dẫn: Ts: Nguyễn Mạnh Hùng NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm:……………….(Bằng chữ: ) Tp Hồ Chí Minh, ngày tháng năm 2018 Giáo viên hướng dẫn (Ký & ghi rõ họ tên) iv an CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên Sinh viên: Lê Anh Tú MSSV: 14141563 Ngành: Công nghệ kỹ thuật điện tử truyền thơng Tên đề tài: Thiết kế mơ hình vườn rau thông minh Họ tên giáo viên phản biện: …………………………………………………………… NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm:……………….(Bằng chữ: ) Tp Hồ Chí Minh, ngày tháng năm 2017 Giáo viên hướng dẫn (Ký & ghi rõ họ tên) v an LỜI CẢM ƠN Để hoàn thành đề tài nghiên cứu này, lời cho phép sinh viên gửi lời cảm ơn chân thành đến tồn thể q thầy Trường Đại Học Sư Phạm Kỹ Tḥt TP.HCM nói chung thầy Khoa đào tạo Chất lượng cao nói riêng, người tận tình dạy dỗ, trang bị cho sinh viên kiến thức tảng kiến thức chuyên ngành quan trọng, giúp sinh viên có sở lý thuyết vững vàng tạo điều kiện giúp đỡ tốt cho sinh viên trình học tập nghiên cứu Đặc biệt, sinh viên xin chân thành cảm ơn thầy Nguyễn Mạnh Hùng tận tình giúp đỡ, đưa định hướng nghiên cứu hướng giải số vấn đề để sinh viên thực tốt đề tài Trong thời gian làm việc với thầy, sinh viên không ngừng tiếp thu thêm nhiều kiến thức dạy từ thầy, thể thái độ nghiên cứu nghiêm túc, hiệu điều cần thiết trình học tập làm việc sau sinh viên Mặc dù cố gắng hết sức, song điều kiện thời gian kinh nghiệm thực tế sinh viên cịn ít, đề tài khơng thể tránh khỏi thiếu sót Vì vậy, sinh viên mong nhận đóng góp ý kiến quý thầy, cô giáo Xin chân thành cảm ơn! TP.HCM, ngày 10 tháng năm 2018 Sinh viên thực Lê Anh Tú vi an TÓM TẮT Trong sống đại ngày nay, thứ dần trở nên thuận tiện, dễ dàng nhờ vào phát triển công nghệ Tuy nhiên, đại người lại tất bật với nhịp sống đầy bận rộn, hối Cùng với thời gian dành cho cơng việc ngày nhiều Chính vậy mà bữa cơm gia đình dần bị thay loại thức ăn nhanh hay hàng quán thị trường bới đa dạng, phong phú hết tiết kiệm thời gian Tuy nhiên, việc chạy theo lợi ích đồng tiền mà khơng tới hậu phận người làm kinh doanh khiến cho thực phẩm hư, hỏng, không rõ nguồn gốc ngày tràn lan thị trường làm hoang mang cho người tiêu dùng Chính vậy, việc tìm đến sản phẩm tươi, sạch, rõ nguồn gốc xuất sứ nhu cầu tất yếu Đặc biệt, người tiêu dùng muốn có sản phẩm trồng vườn gia đình lại khơng có thời gian chăm sóc quản lí Từ thực trạng nêu trên, sinh viên định thực đề tài “ Thiết kế mơ hình vườn rau thơng minh” với chức sau Thu thập liệu ảnh hưởng tới trồng nhiệt độ, độ ẩm, độ ẩm đất Truyền liệu từ vườn đến khối xử lí trung tâm đặt nhà sóng RF Khối xử lí trung tâm đưa liệu nhận lên App Wifi để người sử dụng kiểm soát gửi tín hiệu điều khiển khối xử lí trung tâm để điều khiển thiết bị chấp hành bơm, đèn,… vii an MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP iii PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN iv PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN v LỜI CẢM ƠN vi TÓM TẮT vii MỤC LỤC viii DANH MỤC HÌNH xi DANH MỤC BẢNG xiii CÁC TỪ VIẾT TẮT xiv Chương TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC Chương CƠ SỞ LÝ THUYẾT 2.1 INTERNET OF THING ( IoT) 2.2 LÝ THUYẾT VỀ TRUYỀN NHẬN DỮ LIỆU 2.2.1 Chuẩn giao tiếp SPI 2.2.2 Chuẩn truyền nhận UART 2.2.3 Chuẩn giao tiếp One-Wire 11 2.2.4 Sóng RF 14 CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ 16 3.1 GIỚI THIỆU 16 3.1.1 Sơ đồ khối chức khối 16 3.1.2 Mô tả hoạt động hệ thống 17 3.2 3.2.1 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 17 Khối cảm biến 17 viii an 3.2.2 Khối xử lý cảm biến 22 3.2.3 Khối xử lý trung tâm 27 3.2.4 Khối nguồn 31 3.2.5 Khối công suất 31 3.2.6 Opto 32 3.2.7 Relay 33 3.3 LƯU ĐỒ GIẢI THUẬT 34 3.3.1 Lưu đồ giải thuật cho Arduino Nano 34 3.3.2 Lưu đồ giải thuật cho NodeMCU 35 3.3.3 Lưu đồ giải thuật App điều khiển 37 3.3.4 Lưu đồ giải thuật chương trình Auto 38 CHƯƠNG THI CÔNG HỆ THỐNG 42 4.1 GIỚI THIỆU 42 4.2 THI CÔNG HỆ THỐNG 42 4.2.1 Thi công mạch thu thập liệu 42 4.2.2 Thi công mạch điều khiển trung tâm 44 4.3 ĐÓNG GĨI VÀ THI CƠNG MƠ HÌNH 45 4.3.1 Đóng gói khối thu thập liệu 45 4.3.2 Thi cơng mơ hình 45 4.4 LẬP TRÌNH HỆ THỐNG 46 4.4.1 Thiết kế app điều khiển 46 4.4.2 Thiết kế Tab 49 4.4.3 Thiết kế Tab 52 Chương KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ 53 5.1 KẾT QUẢ 53 5.5.1 Kết nghiên cứu 53 5.5.2 Kết thi công phần cứng 53 5.5.3 Kết thi công ứng dụng điều khiển 57 5.2 NHẬN XÉT – ĐÁNH GIÁ 59 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 60 6.1 KẾT LUẬN 60 ix an 6.1.1 Ưu điểm 60 6.1.2 Khuyết điểm 60 6.2 HƯỚNG PHÁT TRIỂN 61 TÀI LIỆU THAM KHẢO 62 PHỤ LỤC 63 x an DANH MỤC HÌNH Hình 2.1 Mạng lưới IoT Hình 2.2 Thành phần hệ thống IoT Hình 2.3 Kết nối SPI Hình 2.4 Truyền liệu chuẩn SPI Hình 2.5 Kết nối SPI kiểu song song Hình 2.6 Kết nối SPI kiểu nối tiếp Hình 2.7 Chuẩn giao tiếp 1-Wire 12 Hình 2.8 Thao tác hoạt động chuẩn 1-Wire 13 Hình 3.1 Sơ đồ khối hệ thống 16 Hình 3.2 Cảm biến độ ẩm đất 17 Hình 3.3 Module chuyển đổi 18 Hình 3.4 DHT11 19 Hình 3.5 Quá trình MCU gửi tín hiệu Start chờ DHT xác nhận lại 19 Hình 3.6 Quá trình truyền nhận bit 21 Hình 3.7 Quá trình truyền nhận bit 21 Hình 3.8 Arduino Nano 23 Hình 3.9 Sơ đồ chân Arduino Nano 24 Hình 3.10 Sơ đồ chân NRF 25 Hình 3.11 Giao diện Arduino IDE 27 Hình 3.12 Esp-12 sơ đồ chân 28 Hình 3.13 Esp8266 NodeMCU 30 Hình 3.14 Sơ đồ chân Esp8266 NodeMCU 30 Hình 3.15 Bộ chuyển đổi AC-DC 31 Hình 3.16 Bóng đèn sợi đốt 31 Hình 3.17 Bơm phun sương 32 Hình 3.18 Hình ảnh sơ đồ chân OPTO PC817 33 Hình 3.19 Hình ảnh relay 33 Hình 3.20 Cấu tạo chân relay 34 Hình 3.21 Lưu đồ giải thuật cho Arduino Nano 35 xi an TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Tiếng Việt [1] Ban thời sự, “Hiểu nông nghiệp 4.0”, Vtv3 10/17/2017 [2] Sưu tầm, “Thực trạng rau nay”, Rauxanhcasach.vn 2017 [3] Thế Vũ, “ Nông nghiệp 4.0 hồi cho Việt Nam”, Báo công luận, 2017 Tiếng Anh How to control device use nRF24L01 Wedsite Blynk https://www.blynk.cc Http://learningall.net/dien-tu-nhung/esp8266/gpio-esp8266.h BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 62 PHỤ LỤC PHỤ LỤC Code Cho Arduino //////*Khai báo thư viện*////// #include #include "nRF24L01.h" #include "RF24.h" #include "DHT.h" /*Khai báo chân*/ #define SOIL_MOIST_1_PIN A0 const int DHTPIN = A1; const int DHTTYPE = DHT11; DHT dht(DHTPIN, DHTTYPE); RF24 myRadio (9, 10); byte addresses[][6] = {"1Node"}; float dataTransmitted[2]; int led = 2; void setup() { Serial.begin(115200); dht.begin(); delay(1000); Serial.println(F("RF24/Simple Transmit data Test")); myRadio.begin(); myRadio.setChannel(108); myRadio.setPALevel(RF24_PA_MIN); myRadio.openWritingPipe( addresses[0]); pinMode(led, OUTPUT); delay(1000); } void loop() BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 63 PHỤ LỤC { int soilMoist = getSoilMoist(); float t = dht.readTemperature(); Serial.print("Nhiet do: "); Serial.print(t); Serial.print(" oC "); Serial.println(); Serial.print("Do am dat: "); Serial.print(soilMoist); Serial.print(" %"); Serial.println(); dataTransmitted[0] = t; dataTransmitted[1] = soilMoist; myRadio.write( &dataTransmitted, sizeof(dataTransmitted) ); digitalWrite(led, HIGH); delay(500); digitalWrite(led, LOW); delay(500); } int getSoilMoist() { int i = 0; int anaValue = 0; for (i = 0; i < 10; i++) // { anaValue += analogRead(SOIL_MOIST_1_PIN); //Đọc giá trị cảm biến độ ẩm đất delay(50); // Đợi đọc giá trị ADC } anaValue = anaValue / (i); anaValue = map(anaValue, 1023, 0, 0, 100); //Ít nước:0% ==> Nhiều nước 100% return anaValue; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 64 PHỤ LỤC Code cho NodeMCU #include #include #include #include "nRF24L01.h" #include "RF24.h" #include #define BLYNK_PRINT Serial #define BLYNK_TM 1L // Hienthi #define AUTO_CTRL_TM 1L //Chế độ tư động #define PUMP_PIN D2 //Bom hoat động #define LAMP_PIN D3 //Den hoạt động /***Biến cho Timers***/ long sampleTimingSeconds = 50; // ==> Thời gian đọc cảm biến (s) long startTiming = 0; long elapsedTime = 0; /***Khởi tạo Timers***/ SimpleTimer timer; RF24 myRadio (2, 15); byte addresses[][6] = {"1Node"}; float dataReceived[2]; WiFiClient client; /***Token Blynk Wifi***/ char auth[] = "418e1043dec446c8a7802b0850117ce5"; //Token cua blynk char ssid[] = "PhongTroCaoCap2"; char pass[] = "0941299499"; /***Biến lưu đèn trạng thái***/ WidgetLED LAMP(V0); WidgetLED PUMP(V1); WidgetLED AUTO(V2); /***Biến lưu trạng thái***/ boolean pumpStatus = 0; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 65 PHỤ LỤC boolean lampStatus = 0; boolean autoStatus = 0; boolean addStatus = 0; boolean subStatus = 0; boolean dryStatus = 0; boolean wetStatus = 0; boolean coldStatus = 0; boolean hotStatus = 0; int DRY_HUMI = 70; int WET_HUMI = 80 ; int COLD_TEMP = 25 ; int HOT_TEMP = 41 ; int TIMEPUMP; int bientam; int chay_auto = 500; void setup() { Serial.begin(115200); delay(1000); Serial.println(F("RF24/Simple Receive data Test")); myRadio.begin(); myRadio.setChannel(108); myRadio.setPALevel(RF24_PA_MIN); myRadio.openReadingPipe(1, addresses[0]); myRadio.startListening(); pinMode(PUMP_PIN, OUTPUT); pinMode(LAMP_PIN, OUTPUT); digitalWrite(LAMP_PIN, LOW); digitalWrite(PUMP_PIN, LOW); Blynk.begin(auth, ssid, pass); PUMP.off(); LAMP.off(); AUTO.off(); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 66 PHỤ LỤC startTimers(); // khởi động Timers } void loop() { autoControlPlantation(); timer.run(); Blynk.run(); } void trangthailed() { if (lampStatus == 1){ digitalWrite(LAMP_PIN, LOW); LAMP.off(); } if (pumpStatus == 1){ digitalWrite(PUMP_PIN, LOW); PUMP.off(); } if (lampStatus == 0){ digitalWrite(LAMP_PIN, HIGH); LAMP.on(); } if (pumpStatus == 0){ digitalWrite(PUMP_PIN, HIGH); PUMP.on(); } if (autoStatus == 1){ AUTO.on(); } if (autoStatus == 0){ AUTO.off(); } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 67 PHỤ LỤC void aplyCmd(){ if (autoStatus == 0) { AUTO.off(); trangthailed(); } if (autoStatus == 1) { AUTO.on(); lampStatus = ; pumpStatus = ; trangthailed(); } } void autoControlPlantation() { if ( autoStatus == 1) { if (dataReceived[0] > HOT_TEMP) { Blynk.notify("NDTRBOT: Canh bao ==>> TEMP HOT ==> PUMP ON"); PUMP.on(); digitalWrite(PUMP_PIN, HIGH); for ( bientam = 1; bientam < TIMEPUMP; bientam = bientam + 1) { if ( autoStatus == 0) break; PUMP.on(); digitalWrite(PUMP_PIN, HIGH); delay (1000); } PUMP.off(); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 68 PHỤ LỤC digitalWrite(PUMP_PIN, LOW); } if ( dataReceived[1] < DRY_HUMI ) { Blynk.notify("NDTRBOT: Canh bao ==>> HUMI DRY ==> PUMP ON"); PUMP.on(); digitalWrite(PUMP_PIN, HIGH); for ( bientam = 1; bientam < TIMEPUMP; bientam = bientam + 1) { if ( autoStatus == 0) break; PUMP.on(); digitalWrite(PUMP_PIN, HIGH); delay (1000); } PUMP.off(); digitalWrite(PUMP_PIN, LOW); } if (dataReceived[0] < COLD_TEMP) { Blynk.notify("NDTRBOT: Canh bao ==>> TEMP COLD"); } if (dataReceived[1] > WET_HUMI) { Blynk.notify("NDTRBOT: Canh bao ==>> HUMI WET"); } } delay(chay_auto); } /***Hàm điều khiển nhận tín hiệu từ blynk***/ BLYNK_WRITE(V10) // Điều khiển cold BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 69 PHỤ LỤC { int i = param.asInt(); if (i == 1) { coldStatus = 1; } else { coldStatus = 0; } } BLYNK_WRITE(V11) // Điều khiển hot { int i = param.asInt(); if (i == 1) { hotStatus = 1; } else { hotStatus = 0; } } BLYNK_WRITE(V12) // Điều khiển dry { int i = param.asInt(); if (i == 1) { dryStatus = 1; } else { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 70 PHỤ LỤC dryStatus = 0; } } BLYNK_WRITE(V13) // Điều khiển wet { int i = param.asInt(); if (i == 1) { wetStatus = 1; } else { wetStatus = 0; } } BLYNK_WRITE(V14) // Điều khiển cộng { int i = param.asInt(); if (i == 1) { if ( autoStatus ==0) { addStatus = !addStatus; if ( dryStatus ==1) { DRY_HUMI = DRY_HUMI + 1; } if ( wetStatus ==1) { WET_HUMI = WET_HUMI + 1; } if ( coldStatus ==1) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 71 PHỤ LỤC { COLD_TEMP = COLD_TEMP + 1; } if ( hotStatus ==1) { HOT_TEMP = HOT_TEMP + 1; } } } } BLYNK_WRITE(V15) // Điều khiển trừ { int i = param.asInt(); if (i == 1) { if ( autoStatus ==0) { subStatus = !subStatus; if ( dryStatus == 1) { DRY_HUMI = DRY_HUMI - 1; } if ( wetStatus == 1) { WET_HUMI = WET_HUMI - 1; } if ( coldStatus ==1) { COLD_TEMP = COLD_TEMP - 1; } if ( hotStatus ==1) { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 72 PHỤ LỤC HOT_TEMP = HOT_TEMP - 1; } } } } BLYNK_WRITE(V16) // Điều khiển lamp { int i = param.asInt(); if (i == 1) { lampStatus = !lampStatus; aplyCmd(); } } BLYNK_WRITE(V17) // Điều khiển pump { int i = param.asInt(); if (i == 1) { pumpStatus = !pumpStatus; aplyCmd(); } } BLYNK_WRITE(V18) // Điều khiển auto { int i = param.asInt(); if (i == 1) { autoStatus = 1; } else BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 73 PHỤ LỤC { autoStatus = 0; } aplyCmd(); } BLYNK_WRITE(V21) // Điều khiển time pump { int i = param.asInt(); if ( autoStatus ==0) { TIMEPUMP = i; } } /***Hàm lấy liệu DHT từ NRF Gửi lên đến hiển thị blynk***/ void blynk_hienthi(void) { if (myRadio.available()){ while (myRadio.available()){ myRadio.read( &dataReceived, sizeof(dataReceived) ); } } Serial.print("Temperature: "); Serial.print(dataReceived[0]); Serial.print(" oC "); Serial.println(); Serial.print("Soil_Moist: "); Serial.print(dataReceived[1]); Serial.print(" % "); Serial.println(); // Blynk.virtualWrite(V3, dataReceived[0]); // Độ ẩm với pin V11 Blynk.virtualWrite(V4, dataReceived[1]); //Nhiệt độ với pin V10 Blynk.virtualWrite(V3, dataReceived[0]); // BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 74 PHỤ LỤC Blynk.virtualWrite(V6, COLD_TEMP); Blynk.virtualWrite(V7, HOT_TEMP); Blynk.virtualWrite(V8, DRY_HUMI); Blynk.virtualWrite(V9, WET_HUMI); Blynk.virtualWrite(V19, TIMEPUMP); } /***Khởi động Timers***/ void startTimers(void) { timer.setInterval( AUTO_CTRL_TM * 1000, aplyCmd); timer.setInterval(BLYNK_TM * 1000, blynk_hienthi); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 75 S an K L 0

Ngày đăng: 27/12/2023, 03:30

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w