#include<WiFi.h>
#include<DHTesp.h>
#include <ThingSpeak.h>
WiFiClient client;
long myChannelNumber = 2652663;
const char * myWriteAPIKey = "8OHCY34S4092SMIM";
int statusCode;
char ssid[]="Wokwi-GUEST";
char pass[]="";
DHTesp SHIP;
TempAndHumidity DATA;
float TEMP,HUMI;
int DIST;
int RED=16;
int ORG=17;
int GRE=19;
int TRI=4;
int ECHO=5;
void setup() {
Serial.begin(115200);
pinMode(TRI, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(RED, OUTPUT);
pinMode(ORG, OUTPUT);
pinMode(GRE, OUTPUT);
SHIP.setup(18,DHTesp::DHT22);
ThingSpeak.begin(client);
WiFi.mode(WIFI_STA);
}
int FIND_DIST(){
digitalWrite(TRI, HIGH);
delay(1000);
digitalWrite(TRI, LOW);
float a=pulseIn(ECHO,HIGH);
return(a*0.034/2);
}
void loop() {
if(WiFi.status() != WL_CONNECTED)
{
Serial.print("Attempting to connect");
while(WiFi.status() != WL_CONNECTED)
{
WiFi.begin(ssid, pass);
Serial.print(".");
delay(5000);
}
Serial.println("\nConnected.");
}
DATA=SHIP.getTempAndHumidity();
TEMP=DATA.temperature;
HUMI=DATA.humidity;
DIST=FIND_DIST();
if((DIST>300)&&(TEMP<30)&&(HUMI>70)){
digitalWrite(GRE,HIGH);
digitalWrite(RED,LOW);
digitalWrite(ORG,LOW);
Serial.println("You are Safe");
Serial.println(DIST);
Serial.println(TEMP);
Serial.println(HUMI);
}
else if((DIST>200)&&(DIST<=300)&&(TEMP>=30)&&(TEMP<70)&&(HUMI>30)&&(HUMI<=70)){
digitalWrite(ORG, HIGH);
digitalWrite(RED,LOW);
digitalWrite(GRE,LOW);
Serial.println("You are Mod Safe");
Serial.println(DIST);
Serial.println(TEMP);
Serial.println(HUMI);
}
else if((DIST<=200)&&(TEMP>=70)&&(HUMI<=30)){
digitalWrite(RED, HIGH);
digitalWrite(GRE,LOW);
digitalWrite(ORG,LOW);
Serial.println("You are unSafe");
Serial.println(DIST);
Serial.println(TEMP);
Serial.println(HUMI);
}
else{
digitalWrite(RED,LOW);
digitalWrite(ORG,LOW);
digitalWrite(GRE,LOW);
Serial.println("You are Danger");
Serial.println(DIST);
Serial.println(TEMP);
Serial.println(HUMI);
}
ThingSpeak.setField(1, DIST);
ThingSpeak.setField(2, TEMP);
ThingSpeak.setField(3, HUMI);
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));
}
}