#include "DHTesp.h"
#include "WiFi.h"
#include "ThingSpeak.h"
char ssid[] = "Wokwi-GUEST" ;
char pass[] = "" ;
WiFiClient client;
long MyChannelNumber = 2580263;
char * myWriteAPIKey = "2JK2DY8E4XVK6RQH";
int statusCode;
DHTesp dhtsensor;
TempAndHumidity data;
int dht_pin = 25;
int trig =13;
int echo =14;
long di, du;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
dhtsensor.setup(dht_pin,DHTesp::DHT22);
}
void loop()
{
// put your main code here, to run repeatedly:
Conn(); //usrdef func
Write();
data = dhtsensor.getTempAndHumidity();
Serial.println("Temp :" + String(data.temperature)+ " °C");
Serial.println("Humid :" + String(data.humidity) + " g.m-3");
di= getDistance();
Serial.println(di);
delay(10); // this speeds up the simulation
}
long getDistance()
{
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig,HIGH);
delayMicroseconds(40);
digitalWrite(trig, LOW);
du = pulseIn(echo,HIGH);
long int a = du * 0.034/2;
return (a);
}
void Conn()
{
if(WiFi.status() != WL_CONNECTED)
{
Serial.println("Attempting to Connect.*.*.*.*.*.*..");
while(WiFi.status() != WL_CONNECTED)
{
WiFi.begin(ssid,pass);
for(int i=0;i<5;i++)
{
Serial.println(".*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.");
delay(1000);
}
}
Serial.println("Connected");
}
}
void Write()
{
ThingSpeak.setField(1,data.temperature);
ThingSpeak.setField(2,data.humidity);
ThingSpeak.setField(3,di);
statusCode = ThingSpeak.writeFields(MyChannelNumber,myWriteAPIKey);
if(statusCode == 200)
{
Serial.println("Successfully Connected");
}
else
{
Serial.println("Error Connecting, because its" +String(statusCode)+ " error");
delay(10000);
}
}