#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#include <ThingSpeak.h>
#include <WiFi.h>
#define WIFI_SSID ” YourWiFiSSID ”
#define WIFI_PASS ” YourWiFiPassword ”
#define DHT_PIN 4 // Replace with the GPIO pin connected to DHT11
#define DHT_TYPE DHT11
#define CHANNEL_ID “YourChannel_ID” // Replace with your actual ThingSpeak channel ID
#define API_KEY “ YourThingSpeakAPIKey ” // Replace with your actual ThingSpeak API key
DHT dht(DHT_PIN, DHT_TYPE);
WiFiClient wifiClient;
void updateThingSpeak(float temp, float hum); // Declare the function
void setup() {
Serial.begin(115200);
// Connect to Wi-Fi
WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) {
delay(250);
Serial.print(“.”);
}
Serial.println(“nConnected to WiFi”);
// Initialize DHT sensor
dht.begin();
// Initialize ThingSpeak
ThingSpeak.begin(wifiClient);
}
void loop() {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
Serial.print(“Temperature: “);
Serial.print(temperature);
Serial.print(” °C, Humidity: “);
Serial.print(humidity);
Serial.println(” %”);
// Update ThingSpeak fields
updateThingSpeak(temperature, humidity);
delay(20000); // Upload data every 20 seconds
}
void updateThingSpeak(float temp, float hum) {
ThingSpeak.setField(1, temp); // Field 1 for temperature
ThingSpeak.setField(2, hum); // Field 2 for humidity
int statusCode = ThingSpeak.writeFields(CHANNEL_ID, API_KEY);
if (statusCode == 200) {
Serial.println(“Update successful!”);
} else {
Serial.println(“Update failed. HTTP error code: ” + String(statusCode));
}
}