#include <DHTesp.h>
#include <WiFi.h>
#include<ThingSpeak.h>
char ssid[]="Wokwi-GUEST";
char pass[]="";
WiFiClient client ;
long myChannelNumber = 2658610;
const char * myWriteAPIKey="QC4ZWC4AQV7FC3LP";
int statusCode;
int trigger=12;
int echo=13;
int ledred=19;
int ledorange=18;
int ledgreen=5;
DHTesp deeshi;
TempAndHumidity data;
void setup(){
Serial.begin(115200);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(ledred, OUTPUT);//red
pinMode(ledorange, OUTPUT);//orange)
pinMode(ledgreen, OUTPUT);
deeshi.setup(21,DHTesp::DHT22);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
//green
}
int finding_distance(){
digitalWrite(trigger, HIGH);
delay(100);
digitalWrite(trigger, LOW);
float a=pulseIn(echo,HIGH);
return(a*0.034/2);
}
void loop() {
if(WiFi.status()!=WL_CONNECTED)
{
Serial.println("Attempting to connect");
while(WiFi.status()!=WL_CONNECTED)
{
WiFi.begin(ssid,pass);
Serial.println(".");
delay(2000);
}
Serial.println("\nconnected.");
}
int distance=finding_distance();
data =deeshi.getTempAndHumidity();
int temp=data.temperature;
int hum=data.humidity;
Serial.println("Distance :" + String(distance ));
Serial.println("Humidity :" +String(hum));
Serial.println("Temperature :" +String(temp));
Serial.println("-------------------------");
delay(1000);
if(distance>300&&temp<30&& hum>70){
digitalWrite(ledred,LOW);
digitalWrite(ledorange,LOW);
digitalWrite(ledgreen,HIGH);
Serial.println("you are safe");
}
else if((distance<300 && distance>200)&&(temp>30&&temp<70)&&(hum>30&&hum<70)){
digitalWrite(ledred, LOW);
digitalWrite(ledgreen, LOW);
digitalWrite(ledorange,HIGH);
Serial.println("you are unsafe");
}
else {
digitalWrite(ledgreen, LOW);
digitalWrite(ledorange, LOW);
digitalWrite(ledred, HIGH);
Serial.println("you are in danger");
}
Serial.println("-------------------------");
delay(100);
{
ThingSpeak.setField(1,distance );
ThingSpeak.setField(2, data.humidity);
ThingSpeak.setField(3,data.temperature );
statusCode = ThingSpeak.writeFields(myChannelNumber,myWriteAPIKey);
if(statusCode == 200) { //successful writing code
Serial.println("Channel update successful.");
}
else {
Serial.println("Problem Writing data. HTTP error code :" +
String(statusCode));
}
delay(10);
}
}