Fire Suppressor Project, To Identify the Fire and to Extinguish it | Using Arduino


Fire accident has become a threat that has destroyed many precious things which are treasures, investments, valuable properties as well as people’s life destruction.


Main Objective of Our System

To design and implement a simple fire suppressor system that will be able to identify the class (A) fire, extinguish it, and make a call to the fire station for any other class of fire.


Specific Objectives of Our System

1. To design a fire detection, classification, fire alarm, fire call, and suppressor module.

2. To implement, fire detection, fire classification, fire alarm, fire call, and fire suppressor module.

3. To integrate all modules resulting in a system.



 a. Flame Sensor

The flame sensor is used to detect the fire or other light sources which are in the range of wavelength from 760nm to 1100nm.

The flame sensor module with the following features will be enough for our system:

i. The operating voltage is from 3.3 – 5V.

ii. It gives us both analog and digital output.

iii. It has a lead indicator, which indicates whether the flame is detected or not.

iv. The threshold value can be changed by rotating the top of the potentiometer.

v. Flame detection distance, the lighter flame test can be triggered within 0.8m, if the intensity of the flame is high, the detection distance will be increased.

vi. The detection angle of the flame sensor module is about 60 degrees


   b. Smoke Sensor

The type of smoke sensor we are going to use is the MQ2 smoke sensor.

Properties of MQ2 sensor:

i. Sensitive to smoke and the following flammable gases: - LPG, Butane, Propane, Methane, Alcohol, Hydrogen.

ii. Resistant of the sensor is different depending on the type of the gas

iii. Smoke sensor has a built-in potentiometer that allows you to adjust the sensor sensitivity according to how accurate you want to detect gas

iv. Output voltage is directly proportional to smoke concentration. When gas concentration increased also the output voltage increases and when gas concentration decrease also the voltage output is decreased.


   c. GSM Module

The COMPIM model is a Physical Interface Model of a serial port. Incoming serial data is buffered and presented to the circuit as a digital signal. The physical COM part also includes a virtual COM port over USB and Bluetooth with some work-around.


   d. DC motor

 The system needs the motor to enable mechanical movement in the process of finding and detecting the fire direction. Also, the motor will move the nozzle of the water pump in the direction of the fire to put off the fire.

The following are properties of the DC motor we are going to use in our system;

         Operating range: 3.0 - 12.0 Volts

         Nominal Voltage: 12v

         No Load Speed: 5600 rpm, Max. Efficiency Speed: 4906 rpm

         No Load Current: 0.022 A, Max. Efficiency Current: 0.16 -0.23 A

         Max. Efficiency Torque: 21.1


   e. Arduino Uno

The following are the properties of Arduino Uno used in our system.

          Properties of Arduino

           Microcontroller: AT mega328

           Operating voltage: 5v

           Input voltage (recommended): 7-12v

           Input voltage (limited)6-20v

           Digital I/O pins: 14 (of which 6 provide pulse width modulation output)

           Analog input pins:6

           Dc current per I/O pin :40mA

           Dc current for 3.3v pin:50mA

           Flash memory: 32kB of which 0.5kB is used by the boot loader.

           Sram:2kB (AT mega 328)

           Eeprom:1KB (AT mega 328)

           Clock speed:16 MHz



  1. Arduino software

Software like Platform IDE is used for writing and running (executes) codes during the programming of Arduino microcontroller

  1. Proteus

This is used to simulate the circuit so that the Arduino library in it could give the desired output.

Here is the code to use in Arduino software

SoftwareSerial mySerial(9, 10);
char msg;
char call;
//End of Call decralation

int pin_buzzer =7;
int fl_sensor =8;
int gs_sensor = 12;
int dir_motor = 2;
int pump = 4;
int sensorSignal;
int sensorInput;
int gasSensor;
int thres = 300;
char x;
//End of the easy thing

void setup() {
  // put your setup code here, to run once:
  mySerial.begin(9600);   // Setting the baud rate of GSM Module  
  //End of call


void loop() {
  // put your main code here, to run repeatedly:
  sensorSignal = digitalRead(fl_sensor);
  gasSensor = digitalRead(gs_sensor);
  sensorInput  = !sensorSignal;
  Serial.print("Gas value ");
  //End of easy

  /*if(sensorInput == HIGH){
    x = "c";

    if((sensorInput == HIGH)or(gasSensor>=thres)){
      if((gasSensor>=thres and sensorInput == LOW)){
        Serial.println("HELOOW FINDING DIRECTION");
        }else if(sensorInput == HIGH){
          Serial.println("STOP DIR, SUPPRESS FIRE");

if (mySerial.available()>0)

void MakeCall()
  mySerial.println("ATD+255719890681;"); // ATDxxxxxxxxxx; -- watch out here for semicolon at the end!!
  Serial.println("Calling  "); // print response over serial port


Related Posts