#include <DHTesp.h>
#include <WiFi.h>
#include <ThingSpeak.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
WiFiClient client;
unsigned long CHANNEL_ID = 2608299;
const char* WRITE_API_KEY = "3E510ZFD6SKICIHP";
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);
}
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
}