Building a fire fighting robot with Arduino is one of the most popular and impressive engineering project choices for final year engineering students across India. The project combines sensor technology, autonomous navigation, and actuator control in a real-world safety application — making it excellent for project exhibitions, competitions, and placement interviews. A fire fighting robot automatically detects fire using flame sensors, navigates towards it, and extinguishes it using a water pump or fan — without any human intervention.
Table of Contents
- Project Overview and Working Principle
- Components Required
- Circuit Connections
- Robot Navigation Algorithm
- Complete Arduino Code
- Advanced Enhancements
- Frequently Asked Questions
Project Overview and Working Principle
The fire fighting robot operates autonomously using three flame sensors (left, centre, right) to detect infrared radiation emitted by flames. The robot’s Arduino brain processes sensor readings to determine fire direction and drives the robot’s DC motors to move towards the fire. Once close enough, it activates a mini water pump or DC fan to extinguish the flame. When no fire is detected, the robot enters a patrol mode, scanning the environment.
This mirrors real industrial fire suppression systems where autonomous robots inspect hazardous areas — making it an excellent discussion point in engineering interviews.
Components Required
| Component | Qty | Approx. Cost (INR) |
|---|---|---|
| Arduino Uno R3 | 1 | ₹350–500 |
| L298N Motor Driver Module | 1 | ₹100–150 |
| IR Flame Sensor Module | 3 | ₹60–90 each |
| BO Motors with wheels | 2 | ₹150–200 |
| Robot chassis (2WD) | 1 | ₹250–400 |
| Mini submersible water pump | 1 | ₹80–120 |
| Relay module (1-channel) | 1 | ₹40–60 |
| 9V / 12V battery + holder | 1 | ₹100–150 |
| Jumper wires, breadboard | 1 set | ₹100–150 |
Total: Approximately ₹1,300–1,820
Circuit Connections
Connect the components as follows:
- L298N Motor Driver: IN1=Pin 3, IN2=Pin 4 (left motor), IN3=Pin 5, IN4=Pin 6 (right motor), ENA=Pin 9 (PWM), ENB=Pin 10 (PWM)
- Left Flame Sensor: DO pin → Arduino Pin A0 (or Digital Pin 7)
- Centre Flame Sensor: DO pin → Arduino Pin A1 (or Digital Pin 8)
- Right Flame Sensor: DO pin → Arduino Pin A2 (or Digital Pin 9)
- Relay (Water Pump): IN pin → Arduino Pin 2
- Power: 12V battery to L298N (12V and GND), L298N’s 5V output → Arduino 5V pin
Robot Navigation Algorithm
The decision logic follows this priority tree:
- If centre sensor detects fire → Move forward + activate pump
- If only left sensor detects fire → Turn left
- If only right sensor detects fire → Turn right
- If left + centre detect fire → Move forward-left
- If right + centre detect fire → Move forward-right
- If all sensors detect fire (very close) → Stop + pump full power
- No fire detected → Patrol (rotate slowly)
Complete Arduino Code
// Fire Fighting Robot - Arduino Project
// India Engineering Final Year Project
// Motor Driver (L298N) pins
#define IN1 3
#define IN2 4
#define IN3 5
#define IN4 6
#define ENA 9
#define ENB 10
// Flame Sensor pins (LOW = fire detected)
#define FLAME_LEFT A0
#define FLAME_CENTER A1
#define FLAME_RIGHT A2
// Water pump relay
#define PUMP_PIN 2
// Motor speed (0-255)
#define SPEED 180
#define TURN_SPEED 150
void setup() {
pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT);
pinMode(PUMP_PIN, OUTPUT);
pinMode(FLAME_LEFT, INPUT);
pinMode(FLAME_CENTER, INPUT);
pinMode(FLAME_RIGHT, INPUT);
digitalWrite(PUMP_PIN, HIGH); // Relay active LOW - pump OFF
stopMotors();
Serial.begin(9600);
}
void loop() {
bool left = !digitalRead(FLAME_LEFT); // LOW = fire
bool center = !digitalRead(FLAME_CENTER);
bool right = !digitalRead(FLAME_RIGHT);
Serial.print("L:"); Serial.print(left);
Serial.print(" C:"); Serial.print(center);
Serial.print(" R:"); Serial.println(right);
if (!left && !center && !right) {
// No fire - patrol
pumpOFF();
rotateRight();
} else if (center && !left && !right) {
// Fire straight ahead
moveForward();
pumpON();
} else if (left && !center && !right) {
// Fire on left
turnLeft();
pumpOFF();
} else if (!left && !center && right) {
// Fire on right
turnRight();
pumpOFF();
} else if (left && center) {
// Fire ahead-left
turnLeft();
pumpON();
} else if (right && center) {
// Fire ahead-right
turnRight();
pumpON();
} else if (left && center && right) {
// Very close to fire - stop and pump
stopMotors();
pumpON();
}
delay(50);
}
void moveForward() {
analogWrite(ENA, SPEED); analogWrite(ENB, SPEED);
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}
void turnLeft() {
analogWrite(ENA, TURN_SPEED); analogWrite(ENB, TURN_SPEED);
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}
void turnRight() {
analogWrite(ENA, TURN_SPEED); analogWrite(ENB, TURN_SPEED);
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
}
void rotateRight() {
analogWrite(ENA, TURN_SPEED); analogWrite(ENB, TURN_SPEED);
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
}
void stopMotors() {
analogWrite(ENA, 0); analogWrite(ENB, 0);
digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
}
void pumpON() { digitalWrite(PUMP_PIN, LOW); } // Active LOW relay
void pumpOFF() { digitalWrite(PUMP_PIN, HIGH); }
Advanced Enhancements
To score higher marks or win competitions, add these enhancements:
1. Ultrasonic Obstacle Avoidance
Add an HC-SR04 ultrasonic sensor to navigate around obstacles while searching for fire. This makes the robot more autonomous and realistic.
2. Wi-Fi Manual Override
Add an ESP8266 module for Wi-Fi connectivity. Operator can take manual control via a smartphone when needed — useful for complex environments.
3. Temperature Sensor Integration
Add an MLX90614 non-contact IR temperature sensor to measure fire intensity from a safe distance and prioritise which fire to tackle first.
4. Camera Module
Add an OV7670 camera module for real-time video feed to a monitoring station — demonstrating surveillance capability beyond simple sensor detection.
Frequently Asked Questions
What type of flame sensor should I use for this fire fighting robot project?
Use an IR-based flame sensor module (typically using the YG1006 phototransistor) that detects wavelengths of 760–1100nm. These cost ₹60–90 each and respond to candle flames from 20–30cm distance. The module has a digital output (HIGH/LOW) that makes Arduino interfacing straightforward.
Can I use a DC fan instead of a water pump to extinguish fire?
Yes, a DC fan (blowing air to extinguish the flame) is safer for indoor demonstrations and avoids water spillage near electronics. Most competition fire fighting robot events specify which method is allowed — check the rules for your specific event.
How far can the flame sensor detect fire?
Standard IR flame sensor modules detect a candle flame from 20–30cm in a straight line. Detection angle is approximately 60 degrees. For larger fires (used in some competitions), sensors can detect from 50–100cm.
Is this project suitable for VTU / JNTU final year project submission?
Yes, an autonomous fire fighting robot is accepted as a BE/BTech final year project at most Indian universities. To strengthen the project report, include hardware design, algorithm flowcharts, PCB layout, sensor calibration data, and comparison with existing fire suppression systems.
How long does it take to build and test this fire fighting robot?
With all components ready, the basic build and programming takes 1–2 days. Add another 1–2 days for testing, tuning the sensor sensitivity, and refining the navigation algorithm. Plan 4–5 days total for a well-polished project.
Add comment