#include <DHTesp.h>
int green=27;
int red=25;
int orange=14;
int trigger=5;
int echo=17;
DHTesp madhu;
TempAndHumidity data;
void setup(){
Serial.begin(115200);
pinMode(green, OUTPUT);
pinMode(red,OUTPUT);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(orange, OUTPUT);
madhu.setup(18,DHTesp::DHT22);
}
int find_distance(){
digitalWrite(trigger, HIGH);
delay(100);
digitalWrite(trigger , LOW);
float a=pulseIn(echo,HIGH);
return(a*0.034/2);
}
void loop()
{
int temp;
int humi;
data=madhu.getTempAndHumidity();
delay(2000);
temp=int (data.temperature );
humi=int(data.humidity );
int temperatureRange;
if(temp<30){
temperatureRange=1;
}else if((temp>=30)&&(temp<=70)){
temperatureRange=2;
}
else if(temp>70){
temperatureRange=3;
}
int humidityRange;
if (humi>70){
humidityRange=10;
}
else if((humi>=30)&&(humi<=70)){
humidityRange=30;
}
else if(humi<30){
humidityRange=30;
}
int distance=find_distance();
int distanceRange;
if(distance>300){
distanceRange=100;
}
else if((distance>=200)&&(distance<=300)){
distanceRange=200;
}
else if(distance<200){
distanceRange=300;
}
int total=temperatureRange+humidityRange+distanceRange;
switch(total){
case 111:
digitalWrite(green, HIGH);
digitalWrite(red, LOW);
digitalWrite(orange, LOW);
Serial.println("you are in safe");
break;
case 222:
digitalWrite(red, LOW);
digitalWrite(green, LOW);
digitalWrite(orange, HIGH);
Serial.println("your in unsafe ");
break;
case 333:
digitalWrite(orange, LOW);
digitalWrite(orange, LOW);
digitalWrite(red, HIGH);
Serial.println("your in danger");
break;
default:
digitalWrite(red, LOW);
digitalWrite(orange, LOW);
digitalWrite(green, LOW);
delay(3000);
}
Serial.println("humi"+String(data.humidity ));
Serial.println("Temp"+String(data.temperature ));
Serial.println(distance );
delay(2000);
}