#define led1 13
#define led2 12
#define led3 14
int svmode;
int ledmode;
int datamode;
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
#include "DHTesp.h"
const int DHT_PIN = 15;
DHTesp dhtSensor;
void setup() {
 Serial.begin(115200);
 dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
 LCD.init();
 LCD.begin(16,2);
 LCD.setCursor(4,0);
 LCD.print("Weerapon");
 LCD.setCursor(4,1);
 LCD.print("Sangtong");
 delay(3000);
 LCD.clear();
 pinMode(led1,OUTPUT);
 pinMode(led2,OUTPUT);
 pinMode(led3,OUTPUT);
}
void DHT22(){
 float SV0=-24.0;
 float SV1=20.0;
 float SV2=40.0;
 float SV3=60.0;
 TempAndHumidity  data = dhtSensor.getTempAndHumidity();
 float t = data.temperature;
 float h = data.humidity;
 Serial.println("Temp: "+String(t)+"°C");
 Serial.println("Humidity: "+String(h)+"%");
 Serial.println("---");
 delay(1000);
 LCD.setCursor(0,0);
 LCD.println("DATA="+String(datamode));
 LCD.println("SV>="+String(svmode));
 LCD.setCursor(0,1);
 LCD.println("T="+String(t));
 LCD.println("LED="+String(ledmode));
 if(t >= SV3){
  datamode=3;
  svmode=SV3;
  ledmode=3;
  digitalWrite(led1,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,HIGH);
  delay(500); 
  digitalWrite(led1,LOW);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  delay(500);
}
 else if(t>=SV2){
  datamode=2;
  svmode=SV2;
  ledmode=2;
  digitalWrite(led1,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,LOW);
  delay(500); 
  digitalWrite(led1,LOW);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  delay(500);
}
 else if(t>=SV1){
  datamode=1;
  svmode=SV1;    
  ledmode=1;
  digitalWrite(led1,HIGH);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  delay(500); 
  digitalWrite(led1,LOW);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  delay(500);
}
  else{
  datamode=0;
  svmode=SV0;
  ledmode=0;
  digitalWrite(led1,LOW);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
}
}
void loop() {
  DHT22();
}