System Schematic Diagram

Arduino Microcontroller
Smoke Detectors
Manual Call Points
Alarm Bell
LCD Display
Control Buttons

Arduino Implementation


// Fire Alarm System Code for Arduino
#include 

// Initialize LCD (RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// Pin Definitions
const int smokeSensorPin = A0;
const int manualCallPin = 7;
const int alarmBellPin = 8;
const int silenceButtonPin = 9;
const int resetButtonPin = 10;

// Variables
int smokeValue = 0;
bool alarmActive = false;
bool systemSilenced = false;

void setup() {
  // Initialize components
  pinMode(smokeSensorPin, INPUT);
  pinMode(manualCallPin, INPUT_PULLUP);
  pinMode(alarmBellPin, OUTPUT);
  pinMode(silenceButtonPin, INPUT_PULLUP);
  pinMode(resetButtonPin, INPUT_PULLUP);
  
  // LCD Setup
  lcd.begin(16, 2);
  lcd.print("FireGuardian 3000");
  lcd.setCursor(0, 1);
  lcd.print("System Ready");
  
  Serial.begin(9600);
}

void loop() {
  // Read sensor values
  smokeValue = analogRead(smokeSensorPin);
  bool manualTrigger = !digitalRead(manualCallPin);
  bool silencePressed = !digitalRead(silenceButtonPin);
  bool resetPressed = !digitalRead(resetButtonPin);
  
  // Check for fire condition
  if ((smokeValue > 300 || manualTrigger) && !systemSilenced) {
    triggerAlarm();
  }
  
  // Handle silence button
  if (silencePressed && alarmActive) {
    silenceAlarm();
  }
  
  // Handle reset button
  if (resetPressed) {
    resetSystem();
  }
  
  // Update LCD
  updateDisplay();
  delay(100);
}

void triggerAlarm() {
  alarmActive = true;
  digitalWrite(alarmBellPin, HIGH);
  lcd.clear();
  lcd.print("FIRE DETECTED!");
  lcd.setCursor(0, 1);
  lcd.print("EVACUATE AREA");
}

void silenceAlarm() {
  systemSilenced = true;
  digitalWrite(alarmBellPin, LOW);
  lcd.clear();
  lcd.print("ALARM SILENCED");
  lcd.setCursor(0, 1);
  lcd.print("AWAITING RESET");
}

void resetSystem() {
  alarmActive = false;
  systemSilenced = false;
  digitalWrite(alarmBellPin, LOW);
  lcd.clear();
  lcd.print("FireGuardian 3000");
  lcd.setCursor(0, 1);
  lcd.print("System Ready");
}

void updateDisplay() {
  if (!alarmActive) {
    lcd.setCursor(0, 1);
    lcd.print("Smoke: ");
    lcd.print(smokeValue);
    lcd.print("   ");
  }
}
                    

Important: This code requires the LiquidCrystal library. Connect components as shown in the schematic diagram.

System Components

Arduino Uno

Microcontroller brain of the system that processes all inputs and controls outputs.

Smoke Detector

Industrial-grade optical smoke detector (MQ-2 sensor recommended).

Manual Call Point

Break-glass unit for manual fire alarm activation.

Alarm Bell

110dB piezoelectric alarm siren for audible alert.

LCD Display

16x2 character LCD for system status information.

Control Buttons

Momentary push buttons for silence and system reset functions.