#include <WiFi.h>
#include <DHT.h>
#include <ThingSpeak.h>
#define DHTPIN 4 // DHT22 connected to GPIO4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const char* ssid = "Wokwi-GUEST";
const char* password = "";
WiFiClient client;
unsigned long myChannelNumber = 3099053;
const char * myWriteAPIKey = "XOGEJAJP5AOKQT8W";
void setup() {
Serial.begin(100);
dht.begin();
Serial.print("Connecting to WiFi");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected!");
ThingSpeak.begin(client);
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
int gasValue = analogRead(34); // MQ135 connected to GPIO34
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT22 sensor!");
delay(2000);
return;
}
Serial.print("Temp: "); Serial.println(t);
Serial.print("Humidity: "); Serial.println(h);
Serial.print("Gas Value: "); Serial.println(gasValue);
ThingSpeak.setField(1, t);
ThingSpeak.setField(2, h);
ThingSpeak.setField(3, gasValue);
int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if (x == 200) {
Serial.println("Data sent to ThingSpeak!");
} else {
Serial.println("Error sending data. HTTP error code: " + String(x));
}
delay(15000); // Must wait 15 sec for ThingSpeak
}