#include <Arduino.h>
// #define BLYNK_TEMPLATE_ID "TMPL6d_Q8hfeL"
// #define BLYNK_TEMPLATE_NAME "Đồ ÁN TỐT NGHIỆP"
// #define BLYNK_AUTH_TOKEN "gapaVnB-onM_lq_U0YNpYPM51PACyxJd"
#include <WiFi.h>
#include <WiFiClient.h>
// #include <BlynkSimpleEsp32.h>
#include <string.h>
#include <LiquidCrystal_I2C.h>
#include <SimpleDHT.h>
// setup LCD
int lcdColumns = 16;
int lcdRows = 2;
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);
byte customChar[] = {
B01110,
B01010,
B01110,
B00000,
B00000,
B00000,
B00000,
B00000
};// kí hiệu đặt biệt lcd
float t = 0;// BIẾN NHIỆT ĐỘ
float h = 0;// BIẾN ĐỘ ẨM
float set_ndc=32;
float set_ndt=31;
float set_dac=90;
float set_dat=80;
int tt_man=0;
int tt_nn1=0;
// DHT define
int pinDHT22 = 4;// thiết lập chân đọc tín hiệu từ dht22 chân số 4
SimpleDHT22 dht22(pinDHT22);
// Define LED
#define LMQ 16 //Làm Mát QUạt
#define LMN 17 //Làm mát nước
#define LAMP 15 //đèn sưởi
#define MAN 18// man esp
int bt1;// quạt
int bt2;// nước
int bt3;// đèn sưởi
// char auth[] = BLYNK_AUTH_TOKEN;
// char ssid[] = "NhatTrieu_4G";
// char pass[] = "18022002";
void ht_nd()
{
//hiển thị nhiệt độ
lcd.setCursor(0, 0);
lcd.print("NHIET DO");
lcd.print(":");
lcd.print(t);
lcd.write(0);
lcd.print("C");
// hiển thị độ ẩm
lcd.setCursor(0, 1);
lcd.print("DO AM ");
lcd.print(":");
lcd.print(h);
lcd.print(" %");
delay(500);
}
void setup()
{
// initialize LCD
lcd.init();
// turn on LCD backlight
lcd.backlight();
pinMode(LMN, OUTPUT);//khai báo chân
pinMode(LMQ, OUTPUT);//khai báo chân
pinMode(LAMP, OUTPUT);//khai báo chân
pinMode(MAN, INPUT_PULLUP);
Serial.begin(115200);
// Blynk.begin(auth, ssid, pass);
}
void loop()
{
// Blynk.run();
ht_nd();
int err = SimpleDHTErrSuccess;
if ((err = dht22.read2(&t, &h, NULL)) != SimpleDHTErrSuccess) {
Serial.print("Read DHT22 failed, err=");
Serial.print(SimpleDHTErrCode(err));
Serial.print(",");
Serial.println(SimpleDHTErrDuration(err));
ht_nd();
delay(2000);
return;
}
Serial.println("Read DHT22 OK: ");
// Blynk.virtualWrite(V0, t);
// Blynk.virtualWrite(V1, h);
Serial.print("\n");
Serial.print("Humidity: " + String(h) + "%");
Serial.print("\t");
Serial.println("Temperature:" + String(t) + " C");
if(digitalRead(MAN) == 0)
{
ht_nd();
Serial.println("AUTO");
if((t>=set_ndc)&&(h>=set_dac))
{
digitalWrite(LMQ, HIGH);
digitalWrite(LAMP, LOW);
digitalWrite(LMN, LOW);
Serial.println("LMQ : ON LAMP : OFF LMN : OFF");
}
else if((t>=set_ndc)&&(h<set_dat))
{
ht_nd();
digitalWrite(LMQ, HIGH);
digitalWrite(LAMP, LOW);
digitalWrite(LMN, HIGH);
Serial.println("LMQ : ON LAMP : OFF LMN : ON");
}
else if((t<set_ndt)&&(h>=set_dac))
{
ht_nd();
digitalWrite(LMQ, LOW);
digitalWrite(LAMP, HIGH);
digitalWrite(LMN, LOW);
Serial.println("LMQ : OFF LAMP : ON LMN : OFF");
}
else if((t<set_ndt)&&(h<set_dat))
{
ht_nd();
digitalWrite(LMQ, LOW);
digitalWrite(LAMP, HIGH);
digitalWrite(LMN, HIGH);
Serial.println("LMQ : OFF LAMP : ON LMN : ON");
}
}
else{
ht_nd();
Serial.println("MAN");
}
delay(2000);
}
// BLYNK_WRITE(V2) {
// bt1 = param.asInt();
// if(bt1 == 1) {
// if(digitalRead(MAN) == 1) digitalWrite(LMQ, HIGH);
// } else {
// if(digitalRead(MAN) == 1) digitalWrite(LMQ, LOW);
// }
// }
// BLYNK_WRITE(V3) {
// bt2 = param.asInt();
// if(bt2 == 1) {
// if(digitalRead(MAN) == 1) digitalWrite(LAMP, HIGH);
// } else {
// if(digitalRead(MAN) == 1) digitalWrite(LAMP, LOW);
// }
// }
// BLYNK_WRITE(V4) {
// bt3 = param.asInt();
// if(bt3 == 1) {
// if(digitalRead(MAN) == 1) digitalWrite(LMN, HIGH);
// } else {
// if(digitalRead(MAN) == 1) digitalWrite(LMN, LOW);
// }
// }