. SMART TEMPERATURE & HUMIDITY MONITORING SYSTEM ~ SmartElectronicsDIY

SMART TEMPERATURE & HUMIDITY MONITORING SYSTEM

LCD + IoT (ESP32) + SD Card + Buzzer Alert






🧠 Controller Used

ESP32 (Wi-Fi built-in, best choice)


🔧 COMPONENTS

  • ESP32 Dev Module

  • DHT22 (or DHT11)

  • 16×2 LCD with I2C module

  • SD Card Module + SD Card

  • Buzzer

  • 10kΩ resistor

  • Jumper wires


🔌 CONNECTION DIAGRAM (PIN MAPPING)

🌡️ DHT22

DHT22 ESP32 ------------------ VCC -----> 3.3V DATA -----> GPIO 4 GND -----> GND (10kΩ between VCC & DATA)

📟 LCD 16×2 (I2C)

LCD (I2C) ESP32 ------------------ VCC -----> 5V GND -----> GND SDA -----> GPIO 21 SCL -----> GPIO 22

📊 SD Card Module (SPI)

SD MODULE ESP32 ------------------ CS -----> GPIO 5 MOSI -----> GPIO 23 MISO -----> GPIO 19 SCK -----> GPIO 18 VCC -----> 5V GND -----> GND

🔔 BUZZER

Buzzer + ----> GPIO 15 Buzzer - ----> GND

⚙️ WORKING

  1. DHT reads temperature & humidity

  2. LCD displays live values

  3. Data stored in SD card (CSV file)

  4. ESP32 sends data to cloud (ThingSpeak)

  5. Buzzer alerts if limit crossed


🔔 ALERT LIMITS

  • Temperature > 35°C

  • Humidity > 80%


💻 FULL ESP32 CODE (READY TO UPLOAD)

#include <DHT.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <SPI.h> #include <SD.h> #include <WiFi.h> #include <HTTPClient.h> // ----------- SETTINGS ------------- #define DHTPIN 4 #define DHTTYPE DHT22 #define BUZZER 15 #define SD_CS 5 LiquidCrystal_I2C lcd(0x27, 16, 2); DHT dht(DHTPIN, DHTTYPE); // WiFi details const char* ssid = "YOUR_WIFI_NAME"; const char* password = "YOUR_WIFI_PASSWORD"; // ThingSpeak String apiKey = "YOUR_THINGSPEAK_API_KEY"; void setup() { Serial.begin(9600); pinMode(BUZZER, OUTPUT); digitalWrite(BUZZER, LOW); lcd.init(); lcd.backlight(); dht.begin(); // SD Card if (!SD.begin(SD_CS)) { lcd.setCursor(0,0); lcd.print("SD Fail!"); } // WiFi WiFi.begin(ssid, password); lcd.setCursor(0,0); lcd.print("Connecting..."); while (WiFi.status() != WL_CONNECTED) { delay(500); } lcd.clear(); } void loop() { float humidity = dht.readHumidity(); float temperature = dht.readTemperature(); if (isnan(humidity) || isnan(temperature)) { return; } // LCD Display lcd.setCursor(0,0); lcd.print("Temp: "); lcd.print(temperature); lcd.print(" C"); lcd.setCursor(0,1); lcd.print("Hum : "); lcd.print(humidity); lcd.print(" %"); // Buzzer Alert if (temperature > 35 || humidity > 80) { digitalWrite(BUZZER, HIGH); } else { digitalWrite(BUZZER, LOW); } // SD Card Logging File dataFile = SD.open("/data.csv", FILE_APPEND); if (dataFile) { dataFile.print(temperature); dataFile.print(","); dataFile.println(humidity); dataFile.close(); } // ThingSpeak Upload if (WiFi.status() == WL_CONNECTED) { HTTPClient http; String url = "http://api.thingspeak.com/update?api_key=" + apiKey + "&field1=" + String(temperature) + "&field2=" + String(humidity); http.begin(url); http.GET(); http.end(); } delay(20000); }

📊 SD CARD FILE (data.csv)

Temperature,Humidity 30.5,60 31.2,62

(Open in Excel 📈)


📟 LCD OUTPUT

Temp: 30.5 C Hum : 60 %

🎓 PROJECT USE

  • Final year project

  • Smart weather station

  • Greenhouse monitoring

  • Server room alert system

0 comments:

Post a Comment