#include <WiFi.h>
#include <HTTPClient.h>
#include "DHT.h"
// Wi-Fi credentials
const char* ssid = "YDialog 4G";
const char* password = "nasik123";
// ThingSpeak API key
String apiKey = "4OL3UFS4R44BSWLD";
// DHT22 sensor settings
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
// MQ135 sensor (simulated as analog sensor)
#define MQ135_PIN 34 // GPIO34 (Analog input)
void setup() {
Serial.begin(115200);
delay(1000);
dht.begin();
// Connect to Wi-Fi
Serial.print("Connecting to Wi-Fi");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWi-Fi Connected!");
}
void loop() {
// Read sensor data
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
int airQuality = analogRead(MQ135_PIN); // 0 - 4095
// Check sensor validity
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT22 sensor!");
delay(5000);
return;
}
// Print to Serial
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C, Humidity: ");
Serial.print(humidity);
Serial.print(" %, Air Quality: ");
Serial.println(airQuality);
// Send data to ThingSpeak
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
String url = "https://api.thingspeak.com/update?api_key=" + apiKey +
"&field1=" + String(temperature) +
"&field2=" + String(humidity) +
"&field3=" + String(airQuality);
http.begin(url);
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
Serial.println("Data sent to ThingSpeak successfully!");
} else {
Serial.print("Error sending data. Code: ");
Serial.println(httpResponseCode);
}
http.end();
} else {
Serial.println("Wi-Fi Disconnected. Trying again...");
WiFi.begin(ssid, password);
}
delay(15000); // ThingSpeak accepts 1 request every 15 seconds
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4
dht1:VCC
dht1:SDA
dht1:NC
dht1:GND
pot1:GND
pot1:SIG
pot1:VCC