#include "DHTesp.h"
#include <WiFi.h>
#include <ThingSpeak.h>
char ssid[] = "Wokwi-GUEST";
char pass[] ="";
WiFiClient client;
unsigned long myChannelNumber = 2610240;
const char * myWriteAPIKey = "G33C150WNV3LXHTR";
int statusCode;
int led;
DHTesp sensor;
TempAndHumidity data;
int pin=26;
int trig =13;
int echo =27;
long distance , duriation;
void setup() {
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
sensor.setup(pin,DHTesp::DHT22);
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(trig,OUTPUT);
pinMode(echo, INPUT);
pinMode(25, OUTPUT);
// put your setup code here, to run once:
Serial.println("Hello, ESP32!");
}
void loop() {
connectToCloud();
writeData();
data=sensor.getTempAndHumidity();
Serial.println(String(data.temperature)+"this is Temperature");
Serial.println("");
Serial.println(String(data.humidity)+"this is humidity");
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
duriation = pulseIn(echo,HIGH);
distance = (duriation * 0.034)/2+1;
Serial.println(distance);
// put your main code here, to run repeatedly:
delay(2000);
if (distance<100 && data.temperature>30)
{
digitalWrite(25, HIGH);
ThingSpeak.setField(4,"1");
}
else{
digitalWrite(25, LOW);
ThingSpeak.setField(4,"0");
}
}
void connectToCloud(){
if (WiFi.status() != WL_CONNECTED) {
Serial.print("Attempting to connect");
while(WiFi.status() != WL_CONNECTED) {
WiFi.begin(ssid,pass);
Serial.print(".");
delay(1000);
}
}
Serial.println("\nConnected.");
}
void writeData(){
ThingSpeak.setField(1,distance);
ThingSpeak.setField(2,data.humidity);
ThingSpeak.setField(3,data.temperature);
statusCode = ThingSpeak.writeFields(myChannelNumber,myWriteAPIKey);
if (statusCode == 200)
Serial.println("Channel update succesful.");
else
Serial.println("Problem Writing data. HTTP error code :" +
String(statusCode));
delay(15000);
}