#include <DHTesp.h>
#include <ThingSpeak.h>
#include <WiFi.h>
WiFiClient client;
long myChannelNumber = 2629449;
const char * myWriteAPIKey = "ODTUJCHZDN90P12S";
int statusCode;
char ssid[]="Wokwi-GUEST";
char pass[]="";
DHTesp dht;
TempAndHumidity data;
int distance();
int r = 25;
int o = 26;
int g = 27;
int trig = 17;
int echo = 16;
int buzzer = 4;
void setup() {
ThingSpeak.begin(client);
pinMode(r, OUTPUT);
pinMode(o, OUTPUT);
pinMode(g, OUTPUT);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(115200);
Serial.println("Hello, ESP32!");
dht.setup(18,DHTesp::DHT22);
WiFi.mode(WIFI_STA);
}
void loop() {
if(WiFi.status()!=WL_CONNECTED)
{
Serial.println("Attempting to connect");
while(WiFi.status()!=WL_CONNECTED)
{
WiFi.begin(ssid,pass);
delay(1000);
Serial.print(".");
}
Serial.println("Connected !");
}
delay(1000);
noTone(buzzer);
data = dht.getTempAndHumidity();
float data2 = distance();
delay(1000);
ThingSpeak.setField(1,data.temperature);
ThingSpeak.setField(2,data.humidity);
ThingSpeak.setField(3,data2);
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(1000); // this speeds up the simulation
Serial.println("Temerature : "+String(data.temperature));
Serial.println("humidity : "+String(data.humidity));
Serial.println("Distance : "+String(data2));
}
int distance()
{
digitalWrite(trig, HIGH);
delay(100);
digitalWrite(trig, LOW);
float a = pulseIn(echo,HIGH);
return(a*0.034/2);
}