#include<DHTesp.h>
#include<WiFi.h>
#include<ThingSpeak.h>
DHTesp dhtSensor;
TempAndHumidity data;
char ssid[]="Wokwi-GUEST";
char pass[]="";
WiFiClient client;
unsigned long myChannelNumber = 2628743;
const char* WriteKey = "APHNVOMNXFR39CXY";
int statusCode;
const int trigger = 13;
const int echo = 14;
const int dhtpin = 27;
const int green = 18;
const int red = 19;
const int blue = 17;
const int buzzer = 25;
int buzzerValue = 0;
float dur;
float dis;
void setup() {
Serial.begin(115200);
dhtSensor.setup(dhtpin,DHTesp::DHT22);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
pinMode(green, OUTPUT);
pinMode(red, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(buzzer, OUTPUT);
delay(50000);
}
float getDistance()
{
digitalWrite(trigger, LOW);
delayMicroseconds(2);
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
dur = pulseIn(echo,HIGH);
return{dur*0.034/2};
}
void getWifi()
{
if(WiFi.status() != WL_CONNECTED)
{
Serial.println("Attempting to connect...");
while(WiFi.status() != WL_CONNECTED)
{
WiFi.begin(ssid,pass);
Serial.print(".");
delay(50000);
}
}
Serial.println("Connected...");
}
void loop() {
getWifi();
data = dhtSensor.getTempAndHumidity();
dis = getDistance();
//Temperature Settings
if(data.temperature<=12)
digitalWrite(green, HIGH);
else
digitalWrite(green, LOW);
//Humidity Settings
if(data.humidity<=25)
digitalWrite(blue, HIGH);
else
digitalWrite(blue, LOW);
//Distance Settings
if(dis < 100)
{
digitalWrite(red, HIGH);
tone(buzzer,1200);
buzzerValue = 1;
}
else
{
digitalWrite(red, LOW);
noTone(buzzer);
buzzerValue = 0;
}
//Storing
ThingSpeak.setField(1,data.temperature);
ThingSpeak.setField(2,data.humidity);
ThingSpeak.setField(3,dis);
ThingSpeak.setField(4,buzzerValue);
delay(30000);
}