// Include the LiquidCrystal library
#include <LiquidCrystal.h>
// Define pin connections
const int buzzerPin = 2;
const int additionalLedPin = 6;
const int smokeSensorPin = A0;
const int fireSensorPin = A1;
// LCD setup
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7
void setup() {
// Initialize LCD
lcd.begin(16, 2);
lcd.print("Fire & Smoke");
// Initialize buzzer and LEDs
pinMode(buzzerPin, OUTPUT);
pinMode(additionalLedPin, OUTPUT);
digitalWrite(additionalLedPin, LOW);
}
void loop() {
int smokeValue = analogRead(smokeSensorPin);
int fireValue = analogRead(fireSensorPin);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Smoke: ");
lcd.print(smokeValue);
lcd.setCursor(0, 1);
lcd.print("Fire: ");
lcd.print(fireValue);
if (smokeValue > 500) {
activateSmokeAlarm();
}
if (fireValue > 700) {
activateFireAlarm();
}
}
void activateSmokeAlarm() {
lcd.clear();
lcd.print("Smoke Detected!");
digitalWrite(buzzerPin, HIGH);
digitalWrite(additionalLedPin, HIGH);
lcd.setCursor(0, 1);
lcd.print("Sound Alert!");
tone(buzzerPin, 1000);
delay(5000);
noTone(buzzerPin);
digitalWrite(additionalLedPin, LOW);
}
void activateFireAlarm() {
lcd.clear();
lcd.print("Fire Detected!");
digitalWrite(buzzerPin, HIGH);
digitalWrite(additionalLedPin, HIGH);
lcd.setCursor(0, 1);
lcd.print("Sound Alert!");
// Sound the buzzer
tone(buzzerPin, 1500);
delay(5000);
noTone(buzzerPin);
digitalWrite(additionalLedPin, LOW);
}