#include <DHTesp.h>
#include<ThingSpeak.h>
#include<WiFi.h>
const int temp = 15;
DHTesp dhtSensor;
TempAndHumidity data;
const int tri = 2;
const int ec = 4;
long duration;
float distance;
char ssid[]="Wokwi-GUEST";
char pass[]="";
unsigned long myChannelNumber=2079406;
const char* myWriteAIPKey="3BMMK3HCYSLMJY25";
int statuscode;
WiFiClient client;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(tri, OUTPUT);
pinMode(temp, INPUT);
pinMode(ec, INPUT);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
dhtSensor.setup(temp,DHTesp::DHT22);
}
void loop()
{
getwifi();
distance = getdistance();
data = dhtSensor.getTempAndHumidity();
Serial.println("Distance: "+String(distance));
Serial.println("Humi: "+String(data.humidity)+ "%c");
Serial.println("Temp: "+String(data.temperature) +"%");
ThingSpeak.setField(1,data.temperature);
ThingSpeak.setField(2,data.humidity);
ThingSpeak.setField(3,distance);
statuscode=ThingSpeak.writeFields(myChannelNumber,myWriteAIPKey);
if(statuscode==200)
{
Serial.println("updated");
}
else
{
Serial.println("error");
}
Serial.println("----------------");
delay(15000);
}
long getdistance()
{
digitalWrite(tri, LOW);
delayMicroseconds(2);
digitalWrite(tri, HIGH);
delay(10);
digitalWrite(tri, LOW);
duration=pulseIn(ec,HIGH);
return(duration*0.034/2)+1;
}
void getwifi()
{
if(WiFi.status()!=WL_CONNECTED)
{
Serial.print("attempting");
while(WiFi.status()!=WL_CONNECTED)
{
WiFi.begin(ssid,pass);
Serial.print(".");
delay(5000);
}
}
Serial.println("CONNECTED");
}