#include <DHTesp.h>
#include <WiFi.h>
#include <ThingSpeak.h>
char ssid[] = "Wokwi-GUSET";
char pass[] = "";
WiFiClient client;
unsigned long CHANNEL_ID =2605843;
const char* WRITE_APi_KEY = "U8FCLB0IXSFKBY94";
int status;
DHTesp dhtSensor;
TempAndHumidity data;
const int DHT_PIN = 25;
const int TRIG = 27;
const int ECHO = 14;
float distance;
long duration;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
dhtSensor.setup(DHT_PIN,DHTesp::DHT22);
pinMode(TRIG, OUTPUT);
pinMode(ECHO,INPUT);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
delay(1500);
}
void getWiFi(){
if(WiFi.status()!=WL_CONNECTED){
Serial.println("Attempting to connect");
while(WiFi.status()!=WL_CONNECTED){
WiFi.begin(ssid,pass);
Serial.println(".");
delay(5000);
}
Serial.println("connected");
}
}
void loop() {
getWiFi();
data = dhtSensor.getTempAndHumidity();
Serial.println("humidity : " +String(data.humidity));
Serial.println("temperature : " +String(data.temperature));
digitalWrite(TRIG,LOW);
delayMicroseconds(10);
digitalWrite(TRIG,HIGH);
duration = pulseIn(ECHO,HIGH);
distance = 0.017*duration;
Serial.println("distance : " + String(distance));
Serial.println("--------------------");
ThingSpeak.setField(1,data.humidity);
ThingSpeak.setField(2,data.temperature);
ThingSpeak.setField(3,distance);
status = ThingSpeak.writeFields(CHANNEL_ID,WRITE_APi_KEY);
if(status == 200){
Serial.println("channel updated sucessfully");
}
else
{
Serial.println("problem with writing data HTTP status code : "+String(status));
}
// put your main code here, to run repeatedly:
delay(15000); // this speeds up the simulation
}