#include <DHTesp.h>
#include<WiFi.h>
#include<ThingSpeak.h>
char ssid[]="Wokwi-GUEST";// default user name for wifi
char pass[]="";
WiFiClient client;// structure variable, definition inside wifi
unsigned long myChannelNumber = 2231201;
const char * myWriteAPIKey = "ZSYPOEHO5WY8PTVJ";
int statuscode;
DHTesp dhtSensor; //structure variable
TempAndHumidity data; //structure variable, humidity and temperature is stored in this structure
const int DHT_PIN = 14;
void setup()
{
Serial.begin(115200);
dhtSensor.setup(DHT_PIN,DHTesp::DHT22);
WiFi.mode(WIFI_STA); //connect to wifi simulator
ThingSpeak.begin(client); // connect to thingspeak
}
void loop()
{
data = dhtSensor.getTempAndHumidity();// retures humidity and temp. values
Serial.println("Humi: " + String(data.humidity,1));
Serial.println("Temp: " + String(data.temperature,2));
Serial.println("-----------------");
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");
}
ThingSpeak.setField(1, data.humidity);
ThingSpeak.setField(2, data.temperature);
statuscode = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if(statuscode == 200) //200 indicates success update
{
Serial.println("Channel Update Successful");
}
else
{
Serial.println("Problem in writing Data:" + String(statuscode));
}
delay(30000);
}