#include <LiquidCrystal.h>
#include <DHT.h>
#define MQ135_PIN A0 // MQ-135 Gas Sensor pin
#define DHTPIN 2 // DHT sensor pin
#define PIR_PIN 3 // PIR sensor pin
#define BUZZER_PIN 4 // Buzzer pin
#define DHTTYPE DHT11 // DHT sensor type
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
DHT dht(DHTPIN, DHTTYPE);
int gasThreshold = 300; // Gas detection threshold
float tempThreshold = 50.0; // Temperature threshold for fire
void setup() {
Serial.begin(9600);
dht.begin();
lcd.begin(16, 2);
lcd.print("Fire & Gas Alarm");
delay(2000);
lcd.clear();
pinMode(BUZZER_PIN, OUTPUT);
pinMode(PIR_PIN, INPUT);
}
void loop() {
// Read sensor values
int gasLevel = analogRead(MQ135_PIN);
float temperature = dht.readTemperature();
int motionDetected = digitalRead(PIR_PIN);
// Display sensor readings
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Gas: " + String(gasLevel));
lcd.setCursor(0, 1);
lcd.print("Temp: " + String(temperature) + "C");
delay(1000);
// Check for gas and fire
if (gasLevel > gasThreshold || temperature > tempThreshold || motionDetected == HIGH) {
digitalWrite(BUZZER_PIN, HIGH); // Turn on buzzer
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("ALERT!");
lcd.setCursor(0, 1);
lcd.print("FIRE/GAS DETECTED");
delay(2000);
} else {
digitalWrite(BUZZER_PIN, LOW); // Turn off buzzer
}
}