1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế mô hình tưới rau thông minh

144 9 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

Thông tin cơ bản

Tiêu đề Thiết Kế Mô Hình Tưới Rau Thông Minh
Tác giả Lê Võ Trường Giang, Trần Trọng Tài
Người hướng dẫn PGS. TS. Nguyễn Thanh Hải
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Điện Tử Truyền Thông
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2018
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 144
Dung lượng 3,49 MB

Nội dung

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Ế MƠ HÌNH TƯỚI RAU THƠNG MINH GVHD: NGUYỄN THANH HẢI SVTH: LÊ VÕ TRƯỜNG GIANG MSSV: 13141479 SVTH: TRẦN TRỌNG TÀI MSSV: 14141580 SKL006534 Tp Hồ Chí Minh, tháng 07/2018 TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ́ KHOA ĐÀO TAỌ CHÂT LƢƠNGG̣ CAO ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ MƠ HÌNH TƢỚI RAU THÔNG MINH SVTH: LÊ VÕ TRƢỜNG GIANG MSSV: 13141479 SVTH: TRẦN TRỌNG TÀI MSSV: 14141580 NGÀNH: CNKT ĐIỆN TỬ - TRUYỀN THÔNG GVHD: PGS TS NGUYỄN THANH HẢI Thành phố Hồ Chí Minh, 16 tháng năm 2018 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 16 tháng năm 2018 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Lê Võ Trƣờng Giang Trần Trọng Tài Ngành: Điện tử công nghiệp Giảng viên hƣớng dẫn: PGS TS Nguyễn Thanh Hải Ngày nhâṇ đề tài: MSSV: 13141479 MSSV: 14141580 Lớp: ĐT: Ngày nộp đề tài: Tên đề tài: Thiết Kế Mơ Hình Tƣới Rau Thơng Minh Các số liệu, tài liệu ban đầu: Nội dung thƣcc̣ hiêṇ đềtài: Sản phẩm: TRƢỞNG NGÀNH GIẢNG VIÊN HƢỚNG DẪN i CỘNG HOÀ 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ê Võ Trƣờng Giang Trần Trọng Tài Ngành: Điện tử công nghiệp Tên đề tài: Thiết Kế Mô Hình Tƣới Rau Thơng Minh Họ tên Giáo viên hƣớng dẫn: PGS TS Nguyễn Thanh Hải 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 16 tháng năm 2018 Giáo viên hƣớng dẫn ii CỘNG HOÀ 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ê Võ Trƣờng Giang Trần Trọng Tài MSSV: 13141479 MSSV: 14141580 Ngành: Điện tử công nghiệp Tên đề tài: Thiết Kế Mơ Hình Tƣới Rau Thơng Minh Họ tên Giáo viên hƣớng dẫn: PGS TS Nguyễn Thanh Hải 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 16 tháng năm 2018 Giáo viên phản biện iii LỜI CẢM ƠN Lời xin gửi lời cảm ơn tới gia đình nguồn động viên to lớn vật chất tinh thần, bên cạnh ủng hộ, tạo điều kiện thuận lợi để hồn thành đồ án Xin gửi lời cảm ơn chân thành tới thầy Nguyễn Thanh Hải ln ngƣời thầy tận tình dạy bảo, hƣớng dẫn, phân tích, giúp chúng em hồn thiện đồ án trọn vẹn Cảm ơn thầy cô khoa Điện-Điện tử cung cấp kiến thức tảng sở năm học ngơi trƣờng thân u Bên cạnh đó, xin gửi lời chúc sức khỏe, thành công tới bạn lớp hỗ trợ nhiều cách trình thực đồ án Xin chân thành cảm ơn! Nhóm thực đề tài iv TĨM TẮT Nơng nghiệp ngành kinh tế quan trọng gắn bó với ngƣời Việt Nam từ lâu Ngày nay, nhờ áp dụng khoa học kĩ thuật vào trồng trọt, chăn nuôi mà nông nghiệp gặt hái đƣợc thành tựu to lớn Cùng với cách mạng thiết bị mạng kết nối khơng dây tồn cầu nên thiết bị trồng trọt, chăn nuôi đƣợc phát triển theo ứng dụng công nghệ tiên tiến Trong thực trạng kinh tế bất chấp tính mạng ngƣời dùng, nghỉ đến lợi nhuận cá nhân mà loại thực phẩm bẩn khơng rõ nguồn gốc có mặc nơi gây ảnh hƣởng nghiêm trọng đến sức khỏe ngƣời tiêu dùng Nhìn thấy nhu cầu ngƣời tiêu dùng muốn sử dụng thực phẩm sạch, nguồn gốc rõ ràng để đảm bảo cho bửa ăn hàng ngày gia đình ngon an tồn nên mơ hình trồng rau sử dụng cơng nghệ IoT đƣợc chúng em chọn để tìm hiểu nghiên cứu Dựa vào nhu cầu đƣợc để cập nên để tài " Mơ hình tƣới rau thơng minh" chúng em thực chức nhƣ sau : đo nhiệt độ độ ẩm , phát chuyển động, đƣa liệu lên mạng, điều khiển động bơm nƣớc, điều khiển van xả v MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i ́ PHIÊU NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN ii ́ PHIÊU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iii LỜI CẢM ƠN iv TÓM TẮT v MỤC LỤC vi 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 BIỂU ĐỒ VÀ HÌNH ẢNH x Chƣơng TỔNG QUAN 1.1 TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU 1.2 MỤC ĐÍCH VÀ GIỚI HẠN ĐỀ TÀI 1.3 NỘI DUNG THỰC HIỆN Chƣơng CƠ SỞ LÝ THUYẾT 2.1 MỘT SỐ MƠ HÌNH TƢỚI RAU PHỔ BIẾN 2.1.1 Mơ hình tƣới ngập xả cạn 2.1.2 Trồng rau mơ hình aquaponics (trồng rau kết hợp ni cá) 2.2 INTERNET OF THINGS 2.3 NHỮNG CHUẨN TRUYỀN DỮ LIỆU 2.3.1 Chuẩn giao tiếp I2C 2.3.2 Chuẩn giao tiếp UART 2.4 TÌM HIỂU MQTT 2.4.1 Giới thiệu MQTT 2.4.2 Mơ hình MQTT Chƣơng TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 3.1 GIỚI THIỆU 3.1.1 Sơ đồ khối chức khối 3.1.2 Mô tả hoạt động hệ thống 3.2 THIẾT KẾ CÁC THÀNH PHẦN CỦA HỆ THỐNG 10 3.2.1 Khối cảm biến 10 vi 3.2.2 Khối nguồn 15 3.2.3 Khối hiển thị 17 3.2.4 Khối xử lý trung tâm 18 3.2.5 Khối giao tiếp Wifi 22 3.2.6 Khối công suất 25 3.2.7 Opto PC817 26 3.2.8 Transistor BJT C1815 27 3.3 LƢU ĐỒ GIẢI THUẬT 28 3.3.1 Lƣu đồ chƣơng trình 28 3.3.2 Lƣu đồ trang web ThingSpeak 31 3.3.3 Lƣu đồ trang web MQTT 31 3.3.4 Lƣu đồ mạch truyền NRF2401 32 3.4 SƠ ĐỒ MẠCH NGUYÊN LÝ 32 Chƣơng THI CÔNG HỆ THỐNG 36 4.1 THI CÔNG PHẦN MỀM 36 4.1.1 Cập nhật nhiệt độ, độ ẩm lên ThingSpeak 36 4.1.2 Điều khiển thiết bị thông qua web MQTT 38 4.2 THI CÔNG PHẦN CỨNG 41 Chƣơng KẾT QUẢ 46 5.1 THI CÔNG MẠCH THỰC TẾ 46 5.2 HỘP ĐIỀU KHIỂN VÀ MẠCH NGUỒN XUNG 54 5.3 GIAO DIỆN WEB 55 5.3.1 Giao diện ThingSpeak 55 5.3.2 Giao diện MQTT 56 Chƣơng KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 58 6.1 KẾT LUẬN 58 6.2 HƢỚNG PHÁT TRIỂN 58 TÀI LIỆU THAM KHẢO 59 PHỤ LỤC 60 vii DANH MỤC CÁC TỪ VIẾT TẮT M C U : I o T : L C D : U A R T : M Q T T : P C B : P I R : p H : Microprocessor Control Unit Internet of Things Liquid Crystal Display Universal Asynchronous Receiver – Transmitter Message Queuing Telemetry Transport Printed Circuit Board Passive InfraRed potentia hydrogenii digitalWrite(van1, LOW); tg_tuoi_t_tam1=0; chuyen_van1=4; } } if(mode_v4==1) { digitalWrite(van4, LOW); tg_tuoi_t_tam1=tg_tuoi_t1; chuyen_van1=4; } } if((tg_tuoi_t_tam1==tg_tuoi_t1)&&(chuyen_van1==4))///////////////////////////////van { if((mode_v5==0)&&(mode_v2==1)&&(mode_v1==1)&&(mode_v3==1)&&(mo de_v4==1)) { digitalWrite(van5, HIGH); delay(2000); digitalWrite(dongco, HIGH); tg_tuoi_t_tam1=0; chuyen_van1=5; } else { if(mode_v5==0) { digitalWrite(van5, HIGH); delay(2000); digitalWrite(van4, LOW); digitalWrite(van3, LOW); digitalWrite(van2, LOW); digitalWrite(van1, LOW); tg_tuoi_t_tam1=0; chuyen_van1=5; } } if(mode_v5==1) { digitalWrite(van5, LOW); tg_tuoi_t_tam1=tg_tuoi_t1; chuyen_van1=5; 108 } } if((tg_tuoi_t_tam1==tg_tuoi_t1)&&(chuyen_van1==5))///////////////tat dong co { digitalWrite(dongco, LOW); delay(2000); digitalWrite(van5, LOW); digitalWrite(van4, LOW); digitalWrite(van3, LOW); digitalWrite(van2, LOW); digitalWrite(van1, LOW); tg_tuoi_t_tam1=0; chuyen_van1=0; tuoi_trua1=0; } } /////////////////////////////////////////////////// if((gio_c1==tm.Hour)&&(phut_c1==tm.Minute)&&(mode_c1==0)) /////////thoi gian tuoi buoi chieu { tuoi_chieu1=1; } if(tuoi_chieu1==1) { if(tm.Second==59) { tg_tuoi_c_tam1++; delay(1100); } if(chuyen_van1==0)////////////////////////////////////////////////// van { if(mode_v1==0) { digitalWrite(van1, HIGH); delay(2000); digitalWrite(dongco, HIGH); chuyen_van1=1; } else { digitalWrite(van1, LOW); tg_tuoi_c_tam1=tg_tuoi_c1; chuyen_van1=1; } } 109 if((tg_tuoi_c_tam1==tg_tuoi_c1)&&(chuyen_van1==1))//////////////////// van { if((mode_v2==0)&&(mode_v1==1)) { digitalWrite(van2, HIGH); delay(2000); digitalWrite(dongco, HIGH); tg_tuoi_c_tam1=0; chuyen_van1=2; } if((mode_v2==0)&&(mode_v1==0)) { digitalWrite(van2, HIGH); delay(2000); digitalWrite(van1, LOW); tg_tuoi_c_tam1=0; chuyen_van1=2; } if(mode_v2==1) { digitalWrite(van2, LOW); tg_tuoi_c_tam1=tg_tuoi_c1; chuyen_van1=2; } } if((tg_tuoi_c_tam1==tg_tuoi_c1)&&(chuyen_van1==2))//////////////////// van { if((mode_v3==0)&&(mode_v2==1)&&(mode_v1==1)) { digitalWrite(van3, HIGH); delay(2000); digitalWrite(dongco, HIGH); tg_tuoi_c_tam1=0; chuyen_van1=3; } else { if(mode_v3==0) { digitalWrite(van3, HIGH); delay(2000); digitalWrite(van2, LOW); digitalWrite(van1, LOW); 110 tg_tuoi_c_tam1=0; chuyen_van1=3; } } if(mode_v3==1) { digitalWrite(van3, LOW); tg_tuoi_c_tam1=tg_tuoi_c1; chuyen_van1=3; } } if((tg_tuoi_c_tam1==tg_tuoi_c1)&&(chuyen_van1==3))/////////////////////// van4 { if((mode_v4==0)&&(mode_v2==1)&&(mode_v1==1)&&(mode_v3==1)) { digitalWrite(van4, HIGH); delay(2000); digitalWrite(dongco, HIGH); tg_tuoi_c_tam1=0; chuyen_van1=4; } else { if(mode_v4==0) { digitalWrite(van4, HIGH); delay(2000); digitalWrite(van3, LOW); digitalWrite(van2, LOW); digitalWrite(van1, LOW); tg_tuoi_c_tam1=0; chuyen_van1=4; } } if(mode_v4==1) { digitalWrite(van4, LOW); tg_tuoi_c_tam1=tg_tuoi_c1; chuyen_van1=4; } } if((tg_tuoi_c_tam1==tg_tuoi_c1)&&(chuyen_van1==4))//////////////////////////////van { 111 if((mode_v5==0)&&(mode_v2==1)&&(mode_v1==1)&&(mode_v3==1)&&(mo de_v4==1)) { digitalWrite(van5, HIGH); delay(2000); digitalWrite(dongco, HIGH); tg_tuoi_c_tam1=0; chuyen_van1=5; } else { if(mode_v5==0)//&&(mode_v4==0)) { digitalWrite(van5, HIGH); delay(2000); digitalWrite(van4, LOW); digitalWrite(van3, LOW); digitalWrite(van2, LOW); digitalWrite(van1, LOW); tg_tuoi_c_tam1=0; chuyen_van1=5; } } if(mode_v5==1) { digitalWrite(van5, LOW); tg_tuoi_c_tam1=tg_tuoi_c1; chuyen_van1=5; } } if((tg_tuoi_c_tam1==tg_tuoi_c1)&&(chuyen_van1///////////////////tat dong co { digitalWrite(dongco, LOW); delay(2000); digitalWrite(van5, LOW); digitalWrite(van4, LOW); digitalWrite(van3, LOW); digitalWrite(van2, LOW); digitalWrite(van1, LOW); tg_tuoi_c_tam1=0; chuyen_van1=0; tuoi_chieu1=0; } 112 } } } /////////////////////////////////////////////////// void setup() { pinMode(nutnhan1, INPUT); pinMode(nutnhan2, INPUT); pinMode(nutnhan3, INPUT); pinMode(nutnhan4, INPUT); pinMode(nutnhan5, INPUT); pinMode(cb_Pin, OUTPUT); pinMode(dongco, OUTPUT); pinMode(van1, OUTPUT); pinMode(van2, OUTPUT); pinMode(van3, OUTPUT); pinMode(van4, OUTPUT); pinMode(van5, OUTPUT); digitalWrite(cb_Pin, LOW); digitalWrite(dongco, LOW); digitalWrite(van1, LOW); digitalWrite(van2, LOW); digitalWrite(van3, LOW); digitalWrite(van4, LOW); digitalWrite(van5, LOW); /////////////////////////////////////////////////// lcd.init(); radio.begin(); radio.setDataRate(RF24_1MBPS); radio.openReadingPipe(1, pipe); lcd.backlight(); /////////////////////////////////////////////////// mode=0; h=0; gio_s =EEPROM.read(0); phut_s =EEPROM.read(1); gio_t =EEPROM.read(2); phut_t =EEPROM.read(3); gio_c =EEPROM.read(4); phut_c =EEPROM.read(5); mode_s =EEPROM.read(6); mode_t =EEPROM.read(7); mode_c =EEPROM.read(8); tg_tuoi_s =EEPROM.read(9); 113 tg_tuoi_t =EEPROM.read(10); tg_tuoi_c =EEPROM.read(11); gio_s1 =EEPROM.read(12); phut_s1 =EEPROM.read(13); gio_t1 =EEPROM.read(14); phut_t1 =EEPROM.read(15); gio_c1 =EEPROM.read(16); phut_c1 =EEPROM.read(17); mode_s1 =EEPROM.read(18); mode_t1 =EEPROM.read(19); mode_c1 =EEPROM.read(20); tg_tuoi_s1 =EEPROM.read(21); tg_tuoi_t1 =EEPROM.read(22); tg_tuoi_c1 =EEPROM.read(23); mode_v1 =EEPROM.read(24); mode_v2 =EEPROM.read(25); mode_v3 =EEPROM.read(26); mode_v4 =EEPROM.read(27); mode_v5 =EEPROM.read(28); } /////////////////////////////////////////////////// void loop() { button1(); button2(); button3(); button4(); button5(); hienthi(); pir(); dieukhien_1(); dieukhien_2(); if(h==0) digitalWrite(cb_Pin, LOW); if(h==1) digitalWrite(cb_Pin, HIGH); } Code truyền nRF2401, ESP8266 v1 DHT11 #include #include #include #include "RF24.h" /////////////////////////////////////////////////////// const uint64_t pipe = 0xE8E8F0F0E1LL; // địa để phát RF24 radio(9,10); //thay 10 thành 53 với mega byte msg[3]; 114 /////////////////////////////////////////////////////// const int DHTPIN = 2; //Đọc liệu từ DHT11 chân mạch Arduino const int DHTTYPE = DHT11; //Khai báo loại cảm biến, có loại DHT11 DHT22 DHT dht(DHTPIN, DHTTYPE); SoftwareSerial esp8266Module(6,5); //Rx tx String network = "anhchang4mat"; // Tên WiFi Kết Nối String password = "ngusaocho"; // PassWord WiFi #define IP "184.106.153.149" // Địa Chỉ IP thingspeak.com "GET String GET = https://api.thingspeak.com/update?key=RWNB11ACKUSLY5NE"; // Cú Pháp Gởi Dữ Liệu Lên ThingSpeak int led = 13; // Định Nghĩa Chân Kết Nối Với LED String GET1 ="GET https://api.thingspeak.com/channels/235157/fields/1/last\r\n"; / Cú Pháp Lấy Dữ Liệu ThingSpeak void setup() { dht.begin(); radio.begin(); Serial.begin(9600); esp8266Module.begin(9600); pinMode(led, OUTPUT); Serial.println("Welcome To IoT Course"); Serial.println(" huongdanmachdien.com"); setupEsp8266(); radio.setAutoAck(1); radio.setRetries(1,1); radio.setDataRate(RF24_1MBPS); // Tốc độ truyền radio.setPALevel(RF24_PA_MAX); // Dung lƣợng tối đa radio.setChannel(11); // Đặt kênh radio.openWritingPipe(pipe); // mở kênh //Serial.begin(9600); } void loop(){ int h = dht.readHumidity(); //Đọc độ ẩm int t = dht.readTemperature(); //Đọc nhiệt độ updatedata(t,h); nhandulieu(); msg[0]= t; msg[1]= h; radio.write(&msg, sizeof(msg)); delay(50); } 115 void setupEsp8266() { int ok=0; { Serial.println("Reseting Esp8266"); esp8266Module.println("AT+RST"); if (esp8266Module.find("OK")) { Serial.println("Reset OK"); Serial.println("Changing EspMode "); Mode(); delay(5000); connectToWiFi(); delay(1000); ok=1; } else { Serial.println("OK not found"); ok=0; } } while(!ok); } void Mode() { int ok=0; do{ esp8266Module.println("AT+CWMODE=3"); while(esp8266Module.available()){ String line = esp8266Module.readString(); //Serial.println(line); if (line.indexOf("OK")!= -1) { Serial.println("Mode Changed"); ok=1; } else if(line.indexOf("no change")!= -1){ Serial.println("Esp8266 in mode 3"); ok=1; } else { Serial.println("Error while changing mode"); 116 ok=0; } } } while(!ok); } bool connectToWiFi() { int ok=0; do{ Serial.println("Connecting WiFi "); String cmd = "AT+CWJAP=\""; cmd += network; cmd += "\",\""; cmd += password; cmd += "\""; esp8266Module.println(cmd); delay(5000); if (esp8266Module.find("OK")) { Serial.println("Connected WiFi"); ok=1; } else { Serial.println("Could not connect to WiFi"); ok=0; } } while(!ok); } void updatedata(float voltage1,float voltage2) { String cmd = "AT+CIPSTART=\"TCP\",\""; cmd += IP; cmd += "\",80\r\n"; esp8266Module.println(cmd); delay(2000); if(esp8266Module.find("Error")){ Serial.println("ERROR while SENDING"); return; } cmd = GET + "&field1=" + (String)voltage1 + "&field2=" + (String)voltage2 + "\r\n"; 117 esp8266Module.print("AT+CIPSEND="); esp8266Module.println(cmd.length()); delay(1000); if(esp8266Module.find(">")) { esp8266Module.println(cmd); if (esp8266Module.find("SEND OK")) { Serial.println("SEND OK"); } } esp8266Module.println("AT+CIPCLOSE"); if(esp8266Module.find("OK")) { Serial.println("Connection closed"); } } void nhandulieu() { String cmd = "AT+CIPSTART=\"TCP\",\""; cmd += IP; cmd += "\",80"; esp8266Module.println(cmd); if(esp8266Module.find("Error")){ Serial.println("ERROR while SENDING"); return; } cmd = "GET https://api.thingspeak.com/channels/235157/fields/1/last\r\n"; esp8266Module.print("AT+CIPSEND="); esp8266Module.println(cmd.length()); delay(1000); if(esp8266Module.find(">")) { esp8266Module.print(cmd); String line = esp8266Module.readString(); Serial.println(line); if(line.indexOf("+IPD,1:1")!=-1) { digitalWrite(led, HIGH); } else if(line.indexOf("+IPD,1:0")!=-1) { digitalWrite(led, LOW); } 118 } esp8266Module.println("AT+CIPCLOSE"); if(esp8266Module.find("OK")) { Serial.println("Connection closed"); } } Code Node MCU #include #include void nhandl(char * tp, byte * nd, unsigned int length) { String topic(tp); String noidung= String((char*)nd); noidung.remove(length); Serial.println(topic); Serial.println(noidung); if(topic=="VUON_5/RLE") { if(noidung=="1") digitalWrite(12,LOW); digitalWrite(15,LOW); if(noidung=="0") digitalWrite(12,HIGH); digitalWrite(15,HIGH); } if(topic=="VUON_4/RLD") { if(noidung=="1") digitalWrite(13,LOW); digitalWrite(15,LOW); if(noidung=="0") digitalWrite(13,HIGH); digitalWrite(15,HIGH); } if(topic=="VUON_3/RLC") { if(noidung=="1") digitalWrite(14,LOW); digitalWrite(15,LOW); if(noidung=="0") digitalWrite(14,HIGH); 119 digitalWrite(15,HIGH); } if(topic=="VUON_1/RLA") { if(noidung=="1") digitalWrite(16,LOW); digitalWrite(15,LOW); if(noidung=="0") digitalWrite(16,HIGH); digitalWrite(15,HIGH); } if(topic=="VUON_2/RLB") { if(noidung=="1") digitalWrite(5,LOW); digitalWrite(15,LOW); if(noidung=="0") digitalWrite(5,HIGH); digitalWrite(15,HIGH); } if(topic=="BOM_1/RLF") { if(noidung=="1") digitalWrite(15,LOW); if(noidung=="0") digitalWrite(15,HIGH); } } WiFiClient c; PubSubClient MQTT("m10.cloudmqtt.com", 13260, nhandl, c); void setup() { Serial.begin(115200); WiFi.begin("Pham Tuan","28021982@"); while (1) { delay(500); if (WiFi.status() == WL_CONNECTED) break; } Serial.println("Da vao duoc internet"); while (1) { delay(500); if (MQTT.connect("ESP", "qlhtavkx", "3AInsmYApjvu")) 120 break; } Serial.println("Da vao duoc MQTT"); MQTT.publish("test", "gui du lieu thu"); MQTT.subscribe("VUON_1/RLA"); MQTT.subscribe("VUON_2/RLB"); MQTT.subscribe("VUON_3/RLC"); MQTT.subscribe("VUON_4/RLD"); MQTT.subscribe("VUON_5/RLE"); MQTT.subscribe("BOM_1/RLF"); pinMode(12,OUTPUT); pinMode(13,OUTPUT); pinMode(14,OUTPUT); pinMode(16,OUTPUT); pinMode(5,OUTPUT); pinMode(15,OUTPUT); digitalWrite(12,LOW); digitalWrite(13,LOW); digitalWrite(14,LOW); digitalWrite(16,LOW); digitalWrite(5,LOW); digitalWrite(15,LOW); } void loop() { MQTT.loop(); MQTT.publish("BOM/RLF", String(!digitalRead(15)).c_str()); MQTT.publish("VUON1/RLA", String(!digitalRead(16)).c_str()); MQTT.publish("VUON2/RLB", String(!digitalRead(5)).c_str()); MQTT.publish("VUON3/RLC", String(!digitalRead(14)).c_str()); MQTT.publish("VUON4/RLD", String(!digitalRead(12)).c_str()); MQTT.publish("VUON5/RLE", String(!digitalRead(13)).c_str()); } 121 ... việc tƣới rau cấp bách để tăng suất đảm bảo chất lƣợng [4] Vì vậy, với vấn đề cấp bách nhóm thực đề tài ? ?Thiết Kế Mơ Hình Tƣới Rau Thơng Minh? ?? Mơ hình tƣới rau thơng minh gồm khu vƣờn rau, diện... VÀ HÌNH ẢNH Hình 2.1: Mơ hình tƣới ngập xả cạn Hình 2.2: Mơ hình trồng rau aquaponics Hình 2.3: Sơ đồ khối hệ thống IoT Hình 2.4: Cách thức hoạt động MQTT Hình. .. điều khiển thông qua Relay 12VDC .52 Hình 5.18: Kết nối cảm biến DS1307 với mạch 53 Hình 5.19: Kết nối cảm biến PIR với mạch 53 Hình 5.20: Kết nối LCD 20X4 với mạch 54 Hình 5.21:

Ngày đăng: 25/12/2021, 23:15

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w