#include <DHTesp.h>
#include<ThingSpeak.h>
#include <WiFi.h>
const int temp=15;
const int tri=13;
const int echo=12;
long duration;
float distance;
DHTesp dhtSensor;
TempAndHumidity data;
char sid[] = "Wokwi-GUEST";
char pass[]="";
unsigned long cha = 2079471;
const char* key ="YCX25IZTEPEESLPG";
int statuscode;
WiFiClient cli;
void setup() {
Serial.begin(115200);
pinMode(tri,OUTPUT);
pinMode(echo, INPUT);
pinMode(temp,INPUT);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(cli);
dhtSensor.setup(temp,DHTesp::DHT22);
}
void loop() {
getwifi();
data=dhtSensor.getTempAndHumidity();
distance=getdistance();
Serial.println("Humi:"+String(data.humidity));
Serial.println("Temp:"+String(data.temperature));
Serial.println("distance:"+String(distance));
ThingSpeak.setField(1,data.temperature);
ThingSpeak.setField(2,data.humidity);
ThingSpeak.setField(3,distance);
statuscode = ThingSpeak.writeFields(cha,key);
if(statuscode == 200){
Serial.println("updates");
}
else{
Serial.println("error");
}
Serial.println("****************");
delay(5000); // this speeds up the simulation
}
long getdistance()
{
digitalWrite(tri,LOW);
delayMicroseconds(2);
digitalWrite(tri,HIGH);
delay(10);
digitalWrite(tri,LOW);
duration=pulseIn(echo,HIGH);
return(duration*0.034/2)+1;
}
void getwifi(){
if(WiFi.status()!= WL_CONNECTED){
Serial.print("attempting");
while(WiFi.status()!= WL_CONNECTED){
WiFi.begin(sid,pass);
Serial.print(".");
delay(5000);
}
}
Serial.println("connected");
}