#include<DHTesp.h>
#include <WiFi.h>
#include <ThingSpeak.h>
#include <WiFi.h>
char ssid[]="Wokwi-GUEST";
char pass[]="";
WiFiClient client;
unsigned long myChannelNumber=2626612;
const char * myWriteAPIKey="605GE8I0P4YGRMHQ" ;
int statusCode;
DHTesp dhtSensor;
TempAndHumidity data;
const int DHT_PIN = 17;
int trig = 14;
int echo = 27;
int led1 = 12;
int led2 =13;
float reading;
float distance;
void setup() {
Serial.begin(115200);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(32, INPUT);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
dhtSensor.setup(DHT_PIN,DHTesp::DHT22);
}
void loop()
{
if(WiFi.status()!=WL_CONNECTED)
{
Serial.print("Attempting to connect");
while(WiFi.status()!=WL_CONNECTED)
{
WiFi.begin(ssid,pass);
Serial.print(".");
delay(5000);
}
Serial.println("\n connected");
}
int a = analogRead(26);
Serial.println("potentiometer:"+String(a));
digitalWrite(trig, HIGH);
delay(10);
digitalWrite(trig, LOW);
reading =(pulseIn(echo,HIGH));
distance = (reading*0.034/2)+1;
Serial.println("ultrasonic:"+String(distance));
delay(1000);
data=dhtSensor.getTempAndHumidity();
Serial.println("humidity:"+String(data.humidity,1));
Serial.println("temperature:"+String(data.temperature,2));
Serial.println("next one !");
if((distance<200)&&(data.humidity>40.00)&&(data.temperature>50.00))
{
Serial.println("channel updated success");
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
delay(2000);
}
else {
Serial.println("Problem writing data http error code"+String(statusCode));
digitalWrite(led2, HIGH);
digitalWrite(led1, LOW);
}
ThingSpeak.setField(1,a);
ThingSpeak.setField(2,distance);
ThingSpeak.setField(3,data.humidity);
ThingSpeak.setField(4,data.temperature);
statusCode=ThingSpeak.writeFields(myChannelNumber,myWriteAPIKey);
}