#include <WiFi.h>
#include <ThingSpeak.h>
#include <DHT.h>
// Wi-Fi credentials
const char* ssid = "YourSSID";
const char* password = "YourPassword";
// ThingSpeak credentials
unsigned long myChannelNumber = YOUR_CHANNEL_NUMBER;
const char* myWriteAPIKey = "YOUR_API_KEY";
// Pin definitions
#define MQ135_PIN 34 // Simulated analog input for MQ135 sensor
#define DHT_PIN 4 // Pin for DHT sensor
#define DHTTYPE DHT11
DHT dht(DHT_PIN, DHTTYPE);
// Variables
WiFiClient client;
void setup() {
Serial.begin(115200);
// Initialize DHT sensor
dht.begin();
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Connect to ThingSpeak
ThingSpeak.begin(client);
}
void loop() {
// Read sensors
float airQuality = analogRead(MQ135_PIN); // Simulated sensor output using a potentiometer
float temp = dht.readTemperature();
float hum = dht.readHumidity();
if (!isnan(temp) && !isnan(hum)) {
Serial.print("Temperature: ");
Serial.print(temp);
Serial.print("°C, Humidity: ");
Serial.print(hum);
Serial.print("%, Air Quality: ");
Serial.println(airQuality);
// Send data to ThingSpeak
ThingSpeak.setField(1, temp);
ThingSpeak.setField(2, hum);
ThingSpeak.setField(3, airQuality);
int status = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if (status == 200) {
Serial.println("Data sent to ThingSpeak");
} else {
Serial.println("Failed to send data to ThingSpeak");
}
}
// Delay for 20 seconds
delay(20000);
}