#include <ThingSpeak.h>
#include <WiFi.h>
#include <DHTesp.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
DHTesp dhtSensor;
WiFiClient client;
const int DHT_PIN = 17;
const int TRIGGER_PIN = 12;
const int ECHO_PIN = 14;
long myChannelNumber = 2635092;
const char* myWriteAPIKey = " mwa0000034746724";
int statusCode;
float distance;
void setup() {
Serial.begin(115200);
ThingSpeak.begin(client);
WiFi.mode(WIFI_STA);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
connectToWiFi();
}
void loop() {
if (WiFi.status() != WL_CONNECTED) {
connectToWiFi();
}
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
distance = (duration * 0.0344) / 2;
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Humidity: " + String(data.humidity, 1));
Serial.println("Temperature: " + String(data.temperature, 2));
Serial.println("Distance: " + String(distance));
Serial.println("...................");
ThingSpeak.setField(1, data.temperature);
ThingSpeak.setField(2, data.humidity);
ThingSpeak.setField(3, distance);
statusCode = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if (statusCode == 200) {
Serial.println("Channel update successful.");
} else {
Serial.println("Problem Writing data. HTTP error code: " + String(statusCode));
}
delay(10000);
}
void connectToWiFi() {
Serial.print("Attempting to connect to ");
Serial.print(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("\nConnected to WiFi");
}