#include <DHT.h>
// dht header
#include<WiFi.h>
//wifi header
#include<ThingSpeak.h>
//Thingspeak header
const int dhtPin = 15;
DHT dht22(dhtPin,DHT22);
//dht declaration
const int trigPin = 4;
const int echoPin = 16;
//ultrasonic declaration
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
WiFiClient client;
//wifi declaration
long int myChannelId = 2615069 ;
char myWriteApiKey[] = "MIAXB0SOUWSAU1WU";
int statusCode;
//Thingspeak declaration
void setup() {
Serial.begin(115200);
//common
dht22.begin();
//dht setup
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
//ultrasonic setup
WiFi.mode(WIFI_STA);
Serial.print("Attempting to connect");
while(WiFi.status()!=WL_CONNECTED)
{
WiFi.begin(ssid,pass);
Serial.print(".");
delay(5000);
}
Serial.println("\nConnected");
//WiFi setup
ThingSpeak.begin(client);
//Thingspeak setup
}
void loop() {
int humidity = dht22.readHumidity();
int temp = dht22.readTemperature();
Serial.println(humidity);
Serial.println(temp);
//dht loop
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
int duration = pulseIn(echoPin,HIGH);
int distance = duration * 0.034 / 2;
Serial.println(distance);
// ultrasonic loop
ThingSpeak.setField(1,humidity);
ThingSpeak.setField(2,temp);
ThingSpeak.setField(3,distance);
statusCode = ThingSpeak.writeFields(myChannelId,myWriteApiKey);
if(statusCode==200)
Serial.println("Value Uploaded");
else
Serial.println("Not Uploaded");
delay(15000);
//ThingSpeak loop
}