#include <DHT.h>
// ======================================================
// PIN CONFIGURATION
// ======================================================
#define DHTPIN 2
#define DHTTYPE DHT11
#define MQ2_PIN A0
#define LDR_PIN A1
#define RELAY_PIN 7
// ======================================================
// SENSOR SETUP
// ======================================================
DHT dht(DHTPIN, DHTTYPE);
// ======================================================
// THRESHOLD VALUES
// ======================================================
int gasThreshold = 400;
int lightThreshold = 300;
float tempThreshold = 30.0;
// ======================================================
// SETUP FUNCTION
// ======================================================
void setup() {
Serial.begin(9600);
// Relay setup
pinMode(RELAY_PIN, OUTPUT);
// Relay OFF initially
digitalWrite(RELAY_PIN, HIGH);
// Start DHT sensor
dht.begin();
Serial.println("==================================");
Serial.println(" SMART MONITORING SYSTEM STARTED ");
Serial.println("==================================");
}
// ======================================================
// MAIN LOOP
// ======================================================
void loop() {
// -----------------------------
// READ DHT11 SENSOR
// -----------------------------
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Check sensor reading
if (isnan(temperature) || isnan(humidity)) {
Serial.println("DHT11 Sensor Reading Failed!");
delay(2000);
return;
}
// -----------------------------
// READ ANALOG SENSORS
// -----------------------------
int gasValue = analogRead(MQ2_PIN);
int lightValue = analogRead(LDR_PIN);
// -----------------------------
// DISPLAY SENSOR VALUES
// -----------------------------
Serial.println("\n========== SENSOR DATA ==========");
Serial.print("Temperature : ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Humidity : ");
Serial.print(humidity);
Serial.println(" %");
Serial.print("Gas Value : ");
Serial.println(gasValue);
Serial.print("Light Value : ");
Serial.println(lightValue);
// =====================================================
// GAS LEAKAGE DETECTION
// =====================================================
if (gasValue > gasThreshold) {
Serial.println("WARNING: GAS LEAKAGE DETECTED!");
Serial.println("Relay Activated -> Device OFF");
// Relay ON (Active LOW)
digitalWrite(RELAY_PIN, LOW);
}
else {
// Relay OFF
digitalWrite(RELAY_PIN, HIGH);
}
// =====================================================
// TEMPERATURE MONITORING
// =====================================================
if (temperature > tempThreshold) {
Serial.println("HIGH TEMPERATURE DETECTED!");
}
else {
Serial.println("Temperature Normal");
}
// =====================================================
// LIGHT MONITORING
// =====================================================
if (lightValue < lightThreshold) {
Serial.println("Dark Environment -> Light Needed");
}
else {
Serial.println("Bright Environment");
}
Serial.println("=================================\n");
// Wait before next reading
delay(2000);
}