#include <DHTesp.h>
#include <WiFi.h>
#include <ThingSpeak.h>
WiFiClient client;
long myChannelNumber = 2665305;
const char * myWriteAPIKey = "Q06W0MQU6MS4YBTG";
int statusCode;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int trigger=0;
int echo=2;
DHTesp venmathi;
TempAndHumidity data;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
venmathi.setup(18, DHTesp::DHT22);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(17, OUTPUT);
pinMode(16, OUTPUT);
pinMode(5, OUTPUT);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
venmathi.setup(15, DHTesp::DHT22);
}
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.print("Attempting to connect");
while(WiFi.status() != WL_CONNECTED)
{
WiFi.begin(ssid, pass);
Serial.print(".");
delay(5000);
}
Serial.println("\nConnected.");
}
int distance=finding_distance();
Serial.println(distance);
data = venmathi.getTempAndHumidity();
float temp=data.temperature;
float humi=data.humidity;
Serial.println(data.temperature);
Serial.println(data.humidity);
if(distance>=300 && temp<=30 && humi>=70){
digitalWrite(5, HIGH);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
Serial.println("You are safe");
}
else if((distance<300)&&(distance>200) && (temp<70)&&(temp>30) && (humi<70)&&(humi>30)){
digitalWrite(16, HIGH);
digitalWrite(5, LOW);
digitalWrite(17, LOW);
Serial.println("You are unsafe");
}
else if(distance<=200 && temp>=70 && humi<=30){
digitalWrite(17, HIGH);
digitalWrite(16, LOW);
digitalWrite(5, LOW);
Serial.println("You are in danger");
}
else{
digitalWrite(5, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
Serial.println("Invalid");
}
ThingSpeak.setField(1, distance);
ThingSpeak.setField(2, data.temperature);
ThingSpeak.setField(3, data.humidity);
statusCode = ThingSpeak.writeFields(myChannelNumber,myWriteAPIKey);
if(statusCode == 200) {
Serial.println("Channel update successful.");
}
else {
Serial.println("Problem Writing data. HTTP error code :" +
String(statusCode));
}
delay(1000);
}