Tải bản đầy đủ - 0 (trang)
Hình 50. Hoàn thiện các chỉ số về Blynk

Hình 50. Hoàn thiện các chỉ số về Blynk

Tải bản đầy đủ - 0trang

LUẬN VĂN TỐT NGHIỆP



GVHD:TRẦN THANH VŨ



Chương IV. PHỤ LỤC

CHÚ THÍCH CODE

//Các thư viện cần thiết của ESP32 cũng như wifi, hiển thị.

#include

#include "DHTesp.h"

#include

#include

#include

#include

#include

#include

#include

#define BLYNK_PRINT Serial

LiquidCrystal_I2C lcd(0x27, 16, 2);

DHTesp dht;

WiFiClient client;

//Tên và mật khẩu wifi

const char* ssid = "wifi free;

const char* password = "3dh@gtvt";

//Mã kết nối với Blynk

char auth[] = "2bc9c2e8713f4123ae2683a9b473673e";

ĐỒ ÁN TƯỚI TIÊU THÔNG MINH



LUẬN VĂN TỐT NGHIỆP



GVHD:TRẦN THANH VŨ



//Key và kênh hiển thị kênh giám sát ThingSpeak.

const int channelID = 631051;

String writeAPIKey = "Q0VFDF5AHAFJ0U5P";

const char* server = "api.thingspeak.com";

const int postingInterval = 1 * 1000;

//Các chân xuất tín hiệu relay

const int relay1 = 25;

const int relay2 = 26;

const int relay3 = 23;

WiFiUDP ntpUDP;

NTPClient timeClient(ntpUDP);

//Lấy giờ từ wifi và tách chuỗi để sử dụng

String formattedDate;

String dayStamp;

String timeStamp;

char a[5],b[5],c[5];

char a1[20],b1[5],c1[5];

int hour,min;

int str_len=0;}

void setup()

{

ĐỒ ÁN TƯỚI TIÊU THƠNG MINH



LUẬN VĂN TỐT NGHIỆP



//Chân nhận tín hiệu của cảm biến DHT

dht.setup(27);

//Trạng thái ban đầu của các relay.

pinMode (relay1, OUTPUT);

digitalWrite (relay1, HIGH);

pinMode (relay2, OUTPUT);

digitalWrite (relay2, HIGH);

pinMode (relay3, OUTPUT);

digitalWrite (relay3, HIGH);



//Xuất thơng tin ra màn hình hiển thị

lcd.begin();

lcd.backlight();

lcd.clear();

lcd.setCursor(0,0);

lcd.print("DH GTVT TPHCM");

lcd.setCursor(0,1);

lcd.print("LOP DC14");

delay(3000);

lcd.clear();



ĐỒ ÁN TƯỚI TIÊU THÔNG MINH



GVHD:TRẦN THANH VŨ



LUẬN VĂN TỐT NGHIỆP



GVHD:TRẦN THANH VŨ



//Kết nối wifi và thông báo trạng thái ra màn hình hiển thị

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED)

{

delay(1000);

lcd.setCursor(0,0);

lcd.print("Connecting WiFi.");

delay(3000);

}

lcd.clear();

lcd.setCursor(0,0);

lcd.print("Connected Wifi");

delay(1000);

lcd.clear();

//Các lệnh để lấy giờ từ wifi, múi giờ.

timeClient.begin();

timeClient.setTimeOffset(25200);//+GMT 7

timer = timerBegin(0, 80, true);

timerAttachInterrupt(timer, &onTimer, true);

timerAlarmWrite(timer, 1000000, true);

timerAlarmEnable(timer);

ĐỒ ÁN TƯỚI TIÊU THÔNG MINH



LUẬN VĂN TỐT NGHIỆP



GVHD:TRẦN THANH VŨ



//Kết nối với ứng dụng điện thoại Blynk.

{

Blynk.begin(auth, ssid, password);

lcd.clear();

lcd.setCursor(0,0);

lcd.print("ConnectingBlynk");

}

}

void getTimeStamp() {

while(!timeClient.update()) {

timeClient.forceUpdate();

}

formattedDate = timeClient.getFormattedDate();

int splitT = formattedDate.indexOf("T");

dayStamp = formattedDate.substring(0, splitT);

timeStamp = formattedDate.substring(splitT+1,formattedDate.length()1);

}

void time()

{str_len = timeStamp.length() + 1;

ĐỒ ÁN TƯỚI TIÊU THÔNG MINH



LUẬN VĂN TỐT NGHIỆP



GVHD:TRẦN THANH VŨ



timeStamp.toCharArray(a1, str_len);

strncpy(a,a1,2);

strncpy(b,a1+3,2);

hour = atoi(a);

min = atoi(b); }

void loop() {

getTimeStamp();



//Đọc tín hiệu từ cảm biến và chuyển đổi.

int humi = analogRead(A0);

int doam = map(humi, 4095, 1900, 0, 100);

float nhietdo = dht.getTemperature();

float doamkhongkhi = dht.getHumidity();

int lumen = analogRead(A4);

int anhsang = map(lumen, 4095, 0, 0, 100);

time();



//Update thông số đo được lên màn hình của Blynk

Blynk.virtualWrite(V0, doam);

Blynk.virtualWrite(V1, nhietdo);

Blynk.virtualWrite(V2, anhsang);

ĐỒ ÁN TƯỚI TIÊU THÔNG MINH



LUẬN VĂN TỐT NGHIỆP



GVHD:TRẦN THANH VŨ



if (client.connect(server, 80))

{long rssi = WiFi.RSSI();

body = "field1=";

body += String(anhsang);

body += "&field2=";

body += String(doam);

body += "&field3=";

body += String(nhietdo);

body += "&field4=";

body += String(doamkhongkhi);

client.print("POST /update HTTP/1.1\n");

client.print("Host: api.thingspeak.com\n");

client.print("Connection: close\n");

client.print("X-THINGSPEAKAPIKEY: " + writeAPIKey + "\n");

client.print("Content-Type: application/x-www-form-urlencoded\n");

client.print("Content-Length: ");

client.print(body.length());

client.print("\n\n");

client.print(body);

client.print("\n\n");

}

ĐỒ ÁN TƯỚI TIÊU THÔNG MINH



LUẬN VĂN TỐT NGHIỆP



client.stop();

{Blynk.run(); }

lcd.clear();

lcd.setCursor(0,0);

lcd.print("DA:");

lcd.setCursor(6,0);

lcd.print("%");

lcd.setCursor(8,0);

lcd.print("ND:");

lcd.setCursor(15,0);

lcd.print("C");

lcd.setCursor(0,1);

lcd.print("AS:");

lcd.setCursor(6,1);

lcd.print("%");

lcd.setCursor(3,0);

lcd.print(doam);

lcd.setCursor(11,0);

lcd.print(nhietdo);

lcd.setCursor(3,1);

lcd.print(anhsang);

ĐỒ ÁN TƯỚI TIÊU THÔNG MINH



GVHD:TRẦN THANH VŨ



LUẬN VĂN TỐT NGHIỆP



lcd.setCursor(8,1);

lcd.print(hour);

lcd.setCursor(10,1);

lcd.print(":");

lcd.setCursor(11,1);

lcd.print(min);

delay(1000);



//Cho phép hoạt động từ 6 giờ đến 18 giờ

if (( hour > 6) && ( hour < 18))

{

if (doam < 40)

{digitalWrite (relay1,LOW);}

if (doam > 60)

{digitalWrite (relay1,HIGH);}

if (nhietdo < 20)

{ digitalWrite (relay3, HIGH);}

if (nhietdo > 25)

{digitalWrite (relay3, LOW);}

if (anhsang < 20)

{ digitalWrite (relay2, LOW;}

ĐỒ ÁN TƯỚI TIÊU THÔNG MINH



GVHD:TRẦN THANH VŨ



LUẬN VĂN TỐT NGHIỆP



GVHD:TRẦN THANH VŨ



if(anhsang > 90)

{ digitalWrite (relay2, HIGH);}

}

else

{digitalWrite (relay3, HIGH);

digitalWrite (relay2, HIGH);

digitalWrite (relay1, HIGH); }

}



KẾT QUẢ ĐẠT ĐƯỢC

Sau khi vận hành, hiệu chỉnh.

• Input

- Các thơng số của cảm biến: nhiệt độ, độ ẩm, độ ẩm đất

- Nút nhấn: điều khiển bơm, đèn, quạt

• Output

- Relay điều khiển bơm

- Relay điều khiển đèn

- Relay điều khiển quạt

- Thông tin điều khiển cần hiển thị lên điện thoại

+ bật được bơm

+ bật được đèn

- Hệ thống điều khiển manual

- Dữ liệu cần hiển thị trên LCD

- Dữ liệu cần lưu trữ trên server .

ĐỒ ÁN TƯỚI TIÊU THÔNG MINH



LUẬN VĂN TỐT NGHIỆP



GVHD:TRẦN THANH VŨ



Kết quả cuối cùng của đề tài:

- Xây dựng được mơ hình hoạt động bằng tay

- Xây dựng mơ hình hệ thống online tự động bơm tưới nước, bật đèn, quạt

- Wed server Thingspeak: hiển thị và lưu trữ thông tin

- Ứng dụng Blynk:

+ Đọc và hiển thị toàn bộ dữ liệu từ cảm biến và trạng thái của bơm,đèn

+ Điều khiển từ xa Đèn và Bơm

+ Gửi thông báo hệ thống offline hoặc khi đèn hoặc bơm được bật



KẾT LUẬN

1. Hướng tích cực

Như vậy mục tiêu xây dựng “Hệ thống tưới tiêu thông minh” cơ bản đã hoàn thành

được hầu hết các chức năng:

- Theo dõi, hiển thị điều kiện môi trường trồng.

- Tự động điều khiển thơng minh bơm, đèn, quạt

- Có thể điều khiển thơng qua smart phone.

Đề tài góp phần nhỏ vào hướng lựa chọn và phát triển của mơ hình nông nghiệp

mini tại các khu đô thị hay trong gia đình, góp phần nào đó cung cấp nguồn

lương thực mới tự trồng và chăm sóc đảm bảo an tồn chất lượng thực phẩm.

Khơng những vậy mơ hình còn đưa ra nhằm tiết kiệm kinh tế, thời gian và công

sức.

2. Phát triển

Sau quá trình tìm hiểu, nghiên cứu và xây dựng mơ hình thì mơ hình nhóm do kiến

thức còn hạn hẹp nên còn một số ứng dụng có thể phát triển cho mơ hình hồn

thiện hơn:

- Giám sát q trình sinh trưởng của cây bằng camera.

ĐỒ ÁN TƯỚI TIÊU THÔNG MINH



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Hình 50. Hoàn thiện các chỉ số về Blynk

Tải bản đầy đủ ngay(0 tr)

×