Arduino Sketch for Real-Time Temperature and Humidity Monitoring System using DHT11 Sensor, ThingSpeak and ESP32

#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)); 

 } 

Leave a comment

Your email address will not be published. Required fields are marked *