ESP32 Environmental Monitoring System
Monitoring environmental parameters like temperature, humidity, and air quality is essential for homes, offices, and industrial spaces to ensure safety and comfort.
Using ESP32 and sensors like DHT11/DHT22 for temperature and humidity, and MQ-135 for air quality, you can build a real-time monitoring system.
The ESP32 sends data to IoT dashboards or mobile apps, allowing users to track environmental conditions remotely.
Why Build an Environmental Monitoring System?
Maintaining optimal environmental conditions is important for health, productivity, and industrial operations.
ESP32-based systems provide low-cost, real-time monitoring with the ability to integrate alerts and data logging.
This project teaches sensor interfacing, IoT integration, and cloud data visualization, making it ideal for beginners and hobbyists.
Required Components
ESP32 Development Board
DHT11 or DHT22 Temperature & Humidity Sensor
MQ-135 Gas Sensor for Air Quality (CO2, NH3, Benzene detection)
Jumper wires and breadboard
5V Power supply or USB cable
IoT platform or web dashboard for real-time monitoring (ThingSpeak, Blynk, or custom server)
Circuit Connections
1. DHT Sensor: VCC → 3.3V, GND → GND, DATA → ESP32 GPIO 4 (example) with 10k pull-up resistor.
2. MQ-135 Sensor: VCC → 5V, GND → GND, Analog Output → ESP32 ADC pin (e.g., GPIO 36).
3. ESP32 connected to power via USB or 5V adapter.
4. Ensure proper grounding for sensors and ESP32 to maintain accurate readings.
Arduino Code
#include <WiFi.h>
#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const int mq135Pin = 36;
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println("WiFi Connected");
}
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
int airQuality = analogRead(mq135Pin);
Serial.print("Temperature: "); Serial.print(temperature); Serial.print(" °C, ");
Serial.print("Humidity: "); Serial.print(humidity); Serial.print(" %, ");
Serial.print("Air Quality: "); Serial.println(airQuality);
sendToServer(temperature, humidity, airQuality);
delay(5000);
}
void sendToServer(float temp, float hum, int air){
if(WiFi.status() == WL_CONNECTED){
WiFiClient client;
HTTPClient http;
String url = "http://yourserver.com/update?temp=" + String(temp) + "&hum=" + String(hum) + "&air=" + String(air);
http.begin(client, url);
int code = http.GET();
http.end();
}
}
This code reads temperature, humidity, and air quality values and sends them to an IoT server or dashboard for real-time monitoring.
Working Principle
DHT sensors measure temperature and humidity using digital sensing technology, while MQ-135 detects gases in the environment, providing an analog signal proportional to air quality.
ESP32 reads these sensors and sends data via Wi-Fi to a cloud platform for visualization.
Users can monitor environmental conditions in real-time, set alerts for abnormal readings, and log data for analysis.
Key Features
Real-time monitoring of temperature, humidity, and air quality
IoT integration for remote access via web or mobile app
Low-cost and scalable solution for homes, offices, or labs
Customizable alerts for critical environmental conditions
Expandable with additional sensors for more parameters like CO2, smoke, or VOC detection
Applications
Home and office environmental monitoring
Air quality monitoring in labs, classrooms, or industrial areas
IoT-based educational projects for learning sensor interfacing
Integration with smart home automation systems for climate control
Health monitoring for sensitive individuals in polluted areas
Common Mistakes
Incorrect sensor wiring leading to inaccurate readings
Not calibrating MQ-135 sensor for baseline air quality
ESP32 losing Wi-Fi connectivity causing missing data
Ignoring sensor warm-up time (MQ-135 requires stabilization)
Using long wires without proper shielding causing noise in analog readings
Frequently Asked Questions
Q1: Can I use DHT11 instead of DHT22? A: Yes, but DHT22 is more accurate and provides higher resolution for temperature and humidity.
Q2: Can I monitor data on my smartphone? A: Yes, integrate ESP32 with platforms like ThingSpeak or Blynk to view data remotely.
Q3: How often should readings be taken? A: Every 5–10 seconds is sufficient for real-time monitoring without overloading the network.
Q4: Can I add more sensors? A: Yes, ESP32 has multiple GPIO pins and ADC channels for additional sensors like CO2, smoke, or light sensors.
Conclusion
ESP32 Environmental Monitoring System is a versatile IoT project that allows users to track temperature, humidity, and air quality in real-time.
It is cost-effective, scalable, and provides an excellent platform for learning sensor interfacing, IoT integration, and data visualization.
This project can be extended for smart home automation, industrial monitoring, and health-critical applications, making it highly practical and educational.