#include "DHT.h"
#include <WiFi.h>
#include "ThingSpeak.h"
#define DHT11PIN 4
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const int myChannelNumber = 2557762;
const char* myApiKey = "088FDVWCQY5PSQ4O";
const char* server = "api.thingspeak.com";
#define TRIG_PIN 18 // ESP32 pin GIOP23 connected to Ultrasonic Sensor's TRIG pin
#define ECHO_PIN 5 // ESP32 pin GIOP22 connected to Ultrasonic Sensor's ECHO pin
float duration_us, distance_cm;
WiFiClient client;
DHT dht(DHT11PIN, DHT11);
void setup()
{
Serial.begin(115200);
// configure the trigger pin to output mode
pinMode(TRIG_PIN, OUTPUT);
// configure the echo pin to input mode
pinMode(ECHO_PIN, INPUT);
/* Start the DHT11 Sensor */
dht.begin();
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("Hello, ESP32!");
while(WiFi.status() != WL_CONNECTED){
delay(500);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to the WiFi network");
Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
ThingSpeak.begin(client);
}
void loop()
{
float humi = dht.readHumidity();
float temp = dht.readTemperature();
Serial.print("Temperature: ");
Serial.print(temp);
Serial.print("ºC ");
Serial.print("Humidity: ");
Serial.println(humi);
// generate 10-microsecond pulse to TRIG pin
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// measure duration of pulse from ECHO pin
duration_us = pulseIn(ECHO_PIN, HIGH);
// calculate the distance
distance_cm = 0.017 * duration_us;
// print the value to Serial Monitor
Serial.print("distanceA: ");
Serial.print(distance_cm);
Serial.println(" cm ");
ThingSpeak.setField(1,temp);
ThingSpeak.setField(2,humi);
ThingSpeak.setField(3,distance_cm);
int x = ThingSpeak.writeFields(myChannelNumber,myApiKey);
if(x == 200){
Serial.println("Data pushed successfull");
}else{
Serial.println("Push error" + String(x));
}
delay(1000);
}