top of page

Fire Fighting Robot using Arduino

Businesswomen Walking in Hallway

Introduction

Today we are going to build a Fire Fighting Robot using Arduino, which will automatically sense the fire and start the water pump. In this project, we will learn how to build a simple robot using Arduino that could move towards the fire and pump out water around it to put down the fire..

 

Material Required:

  1. Arduino UNO

  2. Fire sensor or Flame sensor (3 Nos)

  3. Servo Motor

  4. L293D motor Driver module

  5. Mini DC Submersible Pump

  6. Small Breadboard

  7. Robot chassis with motors (2) and wheels(2) (any type)

  8. A small can

  9. Connecting wires

Working of Fire Fighting Robot:

The main brain of this project is the Arduino, but in-order to sense fire we use the Fire sensor module (flame sensor) that is shown in figure 1.

 

As you can see these sensors have an IR Receiver which is used to detect the fire. How is this possible? When fire burns it emits a small amount of Infra-red light, this light will be received by the IR receiver on the sensor module. Then we use an Op-Amp to check for change in voltage across the IR Receiver, so that if a fire is detected the output  pin (DO) will give 0V(LOW) and if the is no fire the output pin will be 5V(HIGH).

We detect the direction of the fire we can use the motors to move near the fire by driving our motors through the L293D module. When near a fire we have to put it out using water. Using a small container we can carry water, a 5V pump is also placed in the container and the whole container is placed on top of a servo motor so that we can control the direction in which the water has to be sprayed. 

 

Circuit Diagram:

The complete circuit diagram for this Fire Fighting Robot is shown in figure 2

 

You can either connect all the shown connections for uploading the program to check the working

Programming your Arduino:

 

#include <Servo.h>
Servo myservo;
 
int pos = 0;    
boolean fire = false;

#define Forward_S 8 //forward sensor
#define LM1 2       // left motor
#define LM2 3       // left motor
#define RM1 4       // right motor
#define RM2 5       // right motor
#define pump 6
 
void setup()
{
  pinMode(Forward_S, INPUT);
  pinMode(LM1, OUTPUT);
  pinMode(LM2, OUTPUT);
  pinMode(RM1, OUTPUT);
  pinMode(RM2, OUTPUT);
  pinMode(pump, OUTPUT);
 
 }
 
void put_off_fire()
{
    delay (500);
 
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, HIGH);
    
   digitalWrite(pump, HIGH);
   delay(500); 
  }
  digitalWrite(pump,LOW);
  fire=false;
}
 
void loop()

    {
    //Do not move the robot
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, HIGH);
    }
    
    else if (digitalRead(Forward_S) ==0) //If Fire is straight ahead
    {
    //Move the robot forward
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, LOW);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, LOW);
    fire = true;
    }
    
    
delay(300); //Slow down the speed of robot
 
     while (fire == true)
     {
      put_off_fire();
     }
}

bottom of page