#include <Wire.h>
#include <DHT.h>
// DHT11 sensor setup
#define DHT_PIN 18
#define DHT_TYPE DHT11
DHT dht(DHT_PIN, DHT_TYPE);
// Ultrasonic sensor setup
#define TRIG_PIN 13
#define ECHO_PIN 12
long duration;
int distance;
// LDR sensor setup
#define LDR_PIN 34
int ldrValue;
// Gas sensor setup (MQ-2)
#define GAS_SENSOR_PIN 35
int gasValue;
void setup() {
// Initialize serial communication
Serial.begin(115200);
// DHT11 sensor initialization
dht.begin();
// Ultrasonic sensor pins
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
// Setup LDR sensor (Analog input)
pinMode(LDR_PIN, INPUT);
// Setup Gas sensor (Analog input)
pinMode(GAS_SENSOR_PIN, INPUT);
Serial.println("Smart Home Monitoring System Initialized.");
}
void loop() {
// Read data from DHT11 sensor
float temperature = dht.readTemperature(); // Temperature in Celsius
float humidity = dht.readHumidity(); // Humidity percentage
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
} else {
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C, Humidity: ");
Serial.print(humidity);
Serial.println(" %");
}
// Read distance from Ultrasonic sensor
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration * 0.034 / 2; // Calculate the distance in cm
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Read LDR value (light level)
ldrValue = analogRead(LDR_PIN);
Serial.print("LDR Value (Light): ");
Serial.println(ldrValue);
// Read Gas sensor value
gasValue = analogRead(GAS_SENSOR_PIN);
Serial.print("Gas Sensor Value: ");
Serial.println(gasValue);
// Check for potential gas leak
if (gasValue > 400) { // You might need to adjust this threshold depending on the environment
Serial.println("Warning: Gas Leak Detected!");
}
delay(2000); // Delay for 2 seconds before taking next reading
}