#include <DHTesp.h>
#include <WiFi.h>
#include <ThingSpeak.h>
DHTesp dhtSensor;
TempAndHumidity data;
const int TRIG = 27;
const int ECHO = 14;
const int DHT_PIN = 26;
float distance;
long duration;
char ssid[] ="Wokwi-GUEST";
char pass[] ="";
WiFiClient client;
unsigned long CHANNEL_ID = 2599355;
const char* WRITE_API_KEY = "7VF3GZ90EEF60N70";
int status;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
dhtSensor.setup(DHT_PIN,DHTesp::DHT22);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
delay(1000);
}
void getWiFi(){
if(WiFi.status()!=WL_CONNECTED)
{
Serial.println("attempting to connect");
while(WiFi.status()!=WL_CONNECTED){
WiFi.begin(ssid,pass);
Serial.print(".....");
delay(5000);
}
Serial.println("\nconnected");
}
}
void loop() {
getWiFi();
data = dhtSensor.getTempAndHumidity();
digitalWrite(TRIG, LOW);
delayMicroseconds(10);
digitalWrite(TRIG, HIGH);
duration = pulseIn(ECHO, HIGH);
distance = 0.017*duration;
Serial.println("distance : "+String(distance)+" cm");
Serial.println("humidity : "+String(data.humidity));
Serial.println("temperature : "+String(data.temperature));
Serial.println("---------------");
// put your main code here, to run repeatedly:
// this speeds up the simulation
ThingSpeak.setField(1,distance);
ThingSpeak.setField(2,data.humidity);
ThingSpeak.setField(3,data.temperature);
status = ThingSpeak.writeFields(CHANNEL_ID,WRITE_API_KEY);
if(status == 200){
Serial.println("channel Updated");
Serial.println("---------------");
}
else{
Serial.println("Problem with writing data , HTTP error code : " +String(status));
Serial.println("---------------");
}
delay(10000);
}