#include <WiFi.h>
#include "ThingSpeak.h"
#include "DHT.h"
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
WiFiClient client;
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
unsigned long channelID = 3045331;
const char* writeKey = "EPPTZUKDGW6MGVSE";
const char* readKey = "OWCB9KV1PDDOGE7T";
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin(ssid, password);
Serial.print("Connecting");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("\nConnected! IP: " + String(WiFi.localIP()));
ThingSpeak.begin(client);
}
void loop() {
float temp = dht.readTemperature();
float hum = dht.readHumidity();
if (isnan(temp) || isnan(hum)) {
Serial.println("Error reading sensor!");
delay(2000);
return;
}
Serial.print("Temp: "); Serial.print(temp);
Serial.print(" C, Humidity: "); Serial.println(hum);
ThingSpeak.setField(1, temp);
ThingSpeak.setField(2, hum);
int status = ThingSpeak.writeFields(channelID, writeKey);
if (status == 200) {
Serial.println("Sent to ThingSpeak.");
} else {
Serial.println("Error sending. Code: " + String(status));
}
float lastTemp = ThingSpeak.readFloatField(channelID, 1, readKey);
int readStatus = ThingSpeak.getLastReadStatus();
if (readStatus == 200) {
Serial.print("Last temp from ThingSpeak: "); Serial.println(lastTemp);
} else {
Serial.println("Error reading. Code: " + String(readStatus));
}
delay(20000);
}