0% found this document useful (0 votes)
7 views47 pages

REPORT

The document discusses the development of an Arduino-based firefighting robotic vehicle designed to extinguish fires in hazardous environments, minimizing risks to human firefighters. It outlines the project's introduction, methodology, hardware and software requirements, and existing systems, highlighting the robot's capabilities such as fire detection and extinguishing mechanisms. The proposed system aims to enhance firefighting operations by providing an unmanned support vehicle that can navigate and operate in dangerous conditions.

Uploaded by

rsri56001
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views47 pages

REPORT

The document discusses the development of an Arduino-based firefighting robotic vehicle designed to extinguish fires in hazardous environments, minimizing risks to human firefighters. It outlines the project's introduction, methodology, hardware and software requirements, and existing systems, highlighting the robot's capabilities such as fire detection and extinguishing mechanisms. The proposed system aims to enhance firefighting operations by providing an unmanned support vehicle that can navigate and operate in dangerous conditions.

Uploaded by

rsri56001
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 47

FIRE FIGHTING ROBOTIC VEHICLE USING ARDUINO

BONAFIDE CERTIFICATE
ACKNOWLEDGEMENT
ABSTRACT

ABSTRACTS

Fire incident is a disaster that can potentially cause the loss of life, property
damage and permanent disability to the affected victim. They can also
suffer from prolonged psychological and trauma. Fire fighters are primarily
tasked to handle fire incidents, but they are often exposed to higher risks
when extinguishing fire, especially in hazardous environments such as in
nuclear power plant, petroleum refineries and gas tanks. They are also
faced with other difficulties, particularly if fire occurs in narrow and
restricted places, as it is necessary to explore the ruins of buildings and
obstacles to extinguish the fire and save the victim. With high barriers and
risks in fire extinguishment operations, technological innovations can be
utilized to assist firefighting. Therefore, this paper presents the
development of a firefighting robot dubbed that can extinguish fire without
the need for fire fighters to be exposed to unnecessary danger.
LIST OF CONTENTS

CHAPTER TITLE PAGE NO

1 ABSTRACT

LIST OF FIGURES

LIST OF ABBREVIATIONS

INTRODUCTION

1.1introduction
1.2Need of project
1.3Preface of the project

2 LITERATURE SURVEY

2.1 introduction of literature survey

2.2 SUMMERY

3 Methodology

3.1.1 Existing system

3.1.2 Proposed system

3.1.3 block diagram

3.1.4 system models


4 Hardware description

5 Software description

6 Results

7 Conclusion

8 Reference
LIST OF ABBREVATIONS

AC Alternative Current

CPU Central Processing Unit

DC Direct Current

EEPROM Electrically Erasable Programmable ReadOnly


Memory

GND Ground

GSM Global System Mobile

IDE Integrated Development Environment

LCD Liquid Crystal Display

MCU Microcontroller Unit

SMS Short Message Service

SoC Security Operation Center

UART Universal Asynchronous Receiver Transmitter

WSN Wireless Sensor Network

DIS Fault Distance from the Base Station


CHAPTER 1

INTRODUCTION

1.4 Introduction

Fire is a classical element that has been an equalizer on Earth prior to the
start of written history. It has many positive attributes (heat, energy,
cleansing, etc.) but it can be extremely dangerous when outside of control.
Thankfully, brave men and women have dedicated their lives to protecting
others from flames that can occur due to a myriad of reasons anywhere, at
any time. Unfortunately, firefighters are only human and can succumb to
injury or death as well. Fire spreads rapidly if it is not controlled. In case of
a gas leakage there even may be an explosion. This firefighting robotic
system is powered by Arduino Uno development board it consists of the
HC-SR04 ultra-sonic sensor mounted on a servo motor for obstacles
detection and free path navigation, it is also equipped with the fire flame
sensor for detecting and approaching fire it also makes use of water tank
and spray mechanism for extinguishing the fire. Water spraying nozzle is
mounted on servo motor to cover maximum area. Water is pumped from
the main water tank to the water nozzle with the help of 12V pump.

1.5 Need of the project

Recently, it has sometimes been impossible for fire-fighting personnel to


access the site of a fire, even as the fire causes tremendous property
damage and loss of human life, due to high temperatures or the presence of
explosive materials. In such environments, fire-fighting robots can be
useful for extinguishing a fire. Thus, Fire-fighting robots are operated in
places where fire fighters are unable to work. Besides that, firefighting
robot can be used for protecting fire fighters from extreme danger in
petrochemical, chemical dangerous product, toxicity or exploder fire
accidents. Therefore, it also can reduce the human injury from a fire
burning.

1.6 Preface of the project

This model is an IOT based firefighting robot that detects fire. After being
informed the authorities can start visualizing the fire location and can
communicate with people stuck with a help of an automatic receiver
installed. The main function of this robot is to become an unmanned
support vehicle, developed to search and extinguish fire. There are several
existing types of vehicles for firefighting at home and extinguish forest
fires. Our proposed robot is designed to be able to work on its own or be
controlled remotely.
CHAPTER 2

LITERATURE SURVEY

2.1 introduction of literature survey

Author Kristi Kosasih et al Have developed an intelligent firefighting tank


robot. Materials like acrylic, plastic, aluminum, and iron are used to make
the robot. The tank robot is consisting of components like two servo
motors, a thermal array sensor, two DC motors, a flame detector, an
ultrasonic sensor, IR and phototransistors, sound activation circuit, and a
micro-switch sensor. The goal of the paper is to search the prescribed area
find the fire and extinguish it. The robot is activated by using a DTMF
transmitter and receiver.

Author Sahil .S.Shah et al. Have developed a firefighting robot. The


firefighting robot is integrated with an embedded system. The prototype
system is designed to detect and extinguish fire. It aims to reduce air
pollution caused due to fire. The robot is designed to detect fire in small
floor plans. The task of extinguishing fire is divided into smaller tasks.
Each task is carried out in most appropriate way. The robot navigates in
every room step by step, finds the fire in a room, approaches fire from
fixed distance and then extinguishes fire.

Authors Prof. Dr. S.N. Kini, Rutuja Wadekar, Shweta Khatade, Sayali
Dugane, and Rutuja Jadkar proposed a firefighting robot which included a
project that aims to promote technology innovation to achieve a reliable
and efficient outcome. The movement of the robot is controlled by the
sensors which are fixed on the mobile platform.is to provide security of
home, laboratory, office, factory and buildings is important to human life.
They also developed an intelligent multisensory based security system that
contains a fire fighting system in our daily life. It included the design of the
fire detection system using sensors in the system, and program the fire
detection and fighting procedure using sensor- based methods.

K. L. Su, ”Automatic Fire Detection System Using Adaptive Fusion


Algorithm for Fire Fighting Robot,” 2006 IEEE International Conference
on Systems, Man and Cybernetics, Taipei, 2006, pp.

E. Krasnov and D. Bagaev,” Conceptual analysis of firefighting robots’


control systems,” 2012 IV International Conference” Problems of
Cybernetics and Informatics” (PCI), Baku, 2012, pp..
CHAPTER 3

METHODOLOGY

3.1.1 EXISTING SYSTEM

The current fire extinguisher robots are basically human dependent system.
One has to take the control of robot. The process of taking control and
giving instructions to robot is time consuming and not safe for the person
controlling it. In case the fire gets out of control and is no more
controllable by robot it could put the life of the person who is controlling
robot in danger. The existing systems either use fans or depend upon an
external source to extinguish fire and they uses smoke detectors which are
useful but not highly reliable. This project implement a smart firefighting
robot system (LAHEEB) which designed to detect the source of fire,
extinguish it and increase the knowledge about fire behavior from the
incident area. The whole system is programmed using an Arduino UNO
board (ATmega328P microcontroller) which forms the brain of the system.
It has term that has since been or undesirable.
3.1.2 PROPOSED METHOD

A project program is any undertaking, carried out individually or


collaboratively and possibly involving research or design that is carefully
planned usually by a project team but sometimes by a project manager or
by a project planner to achieve a particular aim. An alternative view sees a
project managerially as a sequence of events: a "set of interrelated tasks to
be executed over a fixed period and within certain cost and other
limitations". A project may be a temporary social system, possibly staffed
by teams to accomplish particular tasks under time constraints.

3.1.3 Block diagram


3.1.4 SYSTEM MODELS

HARDWARE REQUIREMENTS
 Ardunio Uno
 Flame sensor
 Servo motor
 Motor driver
 Motor
 Lithium-ion battery
 Water pump

SOFTWARE REQUIREMENTS

Arduino IDE
Embedded C
Proteus
CHAPTER 4

4. HARDWARE DESCRIPTION

4.1 ARDUINO

An Arduino is actually a microcontroller based kit which can be


either used directly by purchasing from the vendor or can be made at home
using the components, owing to its open source hardware feature. It is
basically used in communications and in controlling or operating many
devices.

The Arduino Uno is a microcontroller board based on the


ATmega328. It has 14 digital input/output pins (of which 6 can be used as
PWM outputs), 6 analog inputs, a 16 MHz crystal oscillator, a USB
connection, a power jack, an ICSP header, and a reset button. It contains
everything needed to support the microcontroller; simply connect it to a
computer with a USB cable or power it with a AC-to-DC adapter or battery
to get started. The Uno differs from all preceding boards in that it does not
use the FTDI USB-to-serial driver chip. Instead, it features the Atmega8U2
programmed as a USB-to-serial converter. “Uno” means one in Italian and
is named to mark the upcoming release of Arduino 1.0. The Uno and
version 1.0 will be the reference versions of Arduino, moving forward. The
Uno is the latest in a series of USB Arduino boards, and the reference
model for the Arduino platform, for a comparison with previous versions.
4.1.1Arduino Architecture

Arduino’s processor basically uses the Harvard architecture where


the program code and program data have separate memory. It consists of
two memories- Program memory and the data memory.The code is stored
in the flash program memory, whereas the data is stored in the data
memory. The Atmega328 has 32 KB of flash memory for storing code (of
which 0.5 KB is used for the bootloader), 2 KB of SRAM and 1 KB of
EEPROM and operates with a clock speed of 16MHz.

Figure4.1 Arduino Board


The most important advantage with Arduino is the programs can be
directly loaded to the device without requiring any hardware programmer
to burn the program. This is done because of the presence of the 0.5KB of
Bootloader which allows the program to be burned into the circuit. All we
have to do is to download the Arduino software and writing the code.

4.1.2 Arduino ATMega328 Pin Description

ATMega328 is a 28 pin chip as shown in pin diagram above. Many


pins of the chip here have more than one function. We will describe
functions of each pin below.

Figure 4.2 Arduino ATMega328


3.Port B (PB[7:0]) XTAL1/XTAL2/TOSC1/TOSC2
Port B is an 8-bit bi-directional I/O port with internal pull-up
resistors (selected for each bit). The Port B output buffers have
symmetrical drive characteristics with both high sink and source capability.
As inputs, Port B pins that are externally pulled low will source current if
the pull-up resistors are activated. The Port B pins are tri-stated when a
reset condition becomes active, even if the clock is not running. Depending
on the clock selection fuse settings, PB6 can be used as input to the
inverting Oscillator amplifier and input to the internal clock operating
circuit. Depending on the clock selection fuse settings, PB7 can be used as
output from the inverting Oscillator amplifier. If the Internal Calibrated RC
Oscillator is used as chip clock source, PB[7:6] is used as TOSC[2:1] input
for the Asynchronous Timer/Counter2 if the AS2 bit in ASSR is set.

4.Port C (PC[5:0])

Port C is a 7-bit bi-directional I/O port with internal pull-up


resistors(selected for each bit). The PC[5:0] output buffers have
symmetrical drive characteristics with both high sink and source capability.
As inputs, Port C pins that are externally pulled low will source current if
the pull-up resistors are activated. The Port C pins are tri-stated when a
reset condition becomes active, even if the clock is not running.
5.PC6/RESET

If the RSTDISBL Fuse is programmed, PC6 is used as an I/O pin.


Note that the electrical characteristics of PC6 differ from those of the other
pins of Port C. If the RSTDISBL Fuse is unprogrammed, PC6 is used as a
Reset input. A low level on this pin for longer than the minimum pulse
length will generate a Reset, even if the clock is not running. Shorter pulses
are not guaranteed to generate a Reset. The various special features of Port
Care elaborated in the Alternate Functions of Port C section.

6.Port D (PD[7:0])

Port D is an 8-bit bi-directional I/O port with internal pull-up


resistors (selected for each bit). The Port D output buffers have
symmetrical drive characteristics with both high sink and source capability.
As inputs, Port D pins that are externally pulled low will source current if
the pull-up resistors are activated. The Port D pins are tri-stated when a
reset condition becomes active, even if the clock is not running.

7.AVCC
AVCC is the supply voltage pin for the A/D Converter, PC[3:0],
and PE[3:2]. It should be externally connected to VCC, even if the ADC is
not used. If the ADC is used, it should be connected to VCC through a low-
pass filter. Note that PC[6:4] use digital supply voltage, VCC.

8.AREF

AREF is the analog reference pin for the A/D Converter.


9.ADC[7:6] (TQFP and VFQFN Package Only)

In the TQFP and VFQFN package, ADC[7:6] serve as analog


inputs to the A/D converter. These pins arepowered from the analog supply
and serve as10-bit ADC channels.

4.1.3 Features of Arduino UNO

 Microcontroller –Atmega328P – 8 bit AVR family microcontroller


 Operating Voltage – 5V
 Analog Input Pins – 6 (A0 – A5)
 Digital I/O Pins – 14 pins
 Flash Memory – 32 KB (0.5 KB is used for Bootloader)
SRAM – 2 KB

4.2.2 Rectifier Stage


Rectifier circuit is used to convert the AC input is converted to DC.
The full wave bridge rectifier uses four diodes arranged in a bridge circuit
to give full wave rectification without the need for a centre-tapped
transformer. An additional advantage is that, as two diodes are conducting
at any one time, the diodes need only half the reverse breakdown voltage
capability of diodes used for half and conventional full wave rectification.
The bridge rectifier can be built from separate diodes or a combined bridge
rectifier can be used.

It can be seen that on each half cycle, opposite pairs of diodes


conduct, but the current through the load remains in the same polarity for
both half cycles.
Figure 4.5 Bridge Rectifier

4.2.3Filter
A typical power supply filter circuit can be best understood by
dividing the circuit into two parts, the reservoir capacitor and the low pass
filter. Each of these parts contributes to removing the remaining AC pulses,
but in different ways.

Electrolytic capacitor used as a reservoir capacitor, so called


because it acts as a temporary storage for the power supply output current.
The rectifier diode supplies current to charge a reservoir capacitor on each
cycle of the input wave. The reservoir capacitor is large electrolytic,
usually of several hundred or even a thousand or more microfarads,
especially in mains frequency PSUs. This very large value of capacitance is
required because the reservoir capacitor, when charged, must provide
enough DC to maintain a steady PSU output in the absence of an input
current; i.e. during the gaps between the positive half cycles when the
rectifier is not conducting.The action of the reservoir capacitor on a half
wave rectified sine wave.
During each cycle, the rectifier anode AC voltage increases towards
Vpk. At some point close to Vpk the anode voltage exceeds the cathode
voltage, the rectifier conducts and a pulse of current flows, charging the
reservoir capacitor to the value of Vpk.Once the input wave passes Vpk the
rectifier anode falls below the capacitor voltage, the rectifier becomes
reverse biased and conduction stops. The load circuit is now supplied by
the reservoir capacitor alone.Of course, even though the reservoir capacitor
has large value, it discharges as it supplies the load, and its voltage falls,
but not by very much. At some point during the next cycle of the mains
input, the rectifier input voltage rises above the voltage on the partly
discharged capacitor and the reservoir is re-charged to the peak value Vpk
again.

Figure 4.6 Filter Circuit

4.2.4Voltage Regulator
Voltage regulator Ic are available with fixed or variable output
voltages. They are also rated by the maximum current they can pass.
Negative voltage regulators are available, mainly for use in dual supplies.
Most regulators include some automatic protection from excessive current
and overheating.

The LM78XX series of three terminal regulators is available with


several fixed output voltages making them useful in a wide range of
applications. One of these is local on card regulation, eliminating the
distribution problems associated with single point regulation. The voltages
available allow these regulators to be used in logic systems,
instrumentation, Hi-Fi, and other solid state electronic equipment.
Although designed primarily as fixed voltage regulators, these devices can
be used with external components to obtain adjustable voltages and
current.It regulates the negative voltage. The regulated DC output is very
smooth with no ripple. It is suitable for all electronic circuits.

Figure 4.7 Regulator Circuit


4.4 Flame Sensor

An infrared sensor is an electronic device, which emits in order to sense


some aspects of the surroundings. An IR sensor can measure the heat of an
object as well as detects motion. These types of sensors measure only
infrared radiation, rather than emitting it which is called a sensors. Usually,
in the infrared spectrum, all objects radiate some form of thermal radiation.
These types of radiation are invisible to our eyes, and can be detected by an
infrared sensor. The emitter is simply an IR LED (Light Emitting Diode)
and the detector is simply an IR photodiode that is sensitive to IR light of
the same wavelength as that emitted by the IR LED. When IR light falls on
the photodiode, the resistances and these output voltages, change in
proportion to the magnitude of the IR light received.

4.5 Servo motor

A servo motor is a type of motor that can rotate with great precision.
Normally this type of motor consists of a control circuit that provides
feedback on the current position of the motor shaft, this feedback allows
the servo motors to rotate with great precision. If you want to rotate an
object at some specific angles or distance, then you use a servo motor. It is
just made up of a simple motor that runs through a servo mechanism.

Servo motors are rated in kg/cm (kilogram per centimeter) most hobby
servo motors are rated at 3kg/cm or 6kg/cm or 12kg/cm. This kg/cm tells
you how much weight your servo motor can lift at a particular distance. For
example, A 6kg/cm Servo motor should be able to lift 6kg if the load is
suspended 1cm away from the motor shaft, the greater the distance the
lesser the weight-carrying capacity. The position of a servo motor is
decided by an electrical pulse and its circuitry is placed beside the motor.

4.6 Motor driver

A motor driver is an integrated circuit chip that is usually used to control


motors in autonomous robots. Motor drivers act as an interface between
Arduino and the motors. The most commonly used motor driver ICs are
from the L293 series such as L293D, L293NE, etc. These ICs are designed
to control 2 DC motors simultaneously. L293D consists of two H-bridge.
H-bridge is the simplest circuit for controlling a low current-rated motor.
We will be referring to the motor driver IC as L293D only. L293D has 16
pins.
The L293D is a 16 pin IC, with eight pins, on each side, dedicated to the
controlling of a motor. There are 2 INPUT pins, 2 OUTPUT pins and 1
ENABLE pin for each motor. L293D consist of two H-bridge. H-bridge is
the simplest circuit for controlling a low current rated motor.
4.7 Water Pump

A pump is a device that is used for lifting the liquid from ground sources to
the upper top surface or from one place to another place. Pumps are
operated by the mechanism that is rotary, reciprocating and it consumes
energy while performing mechanical work which is moving fluid from one
place to another.

4.8 Lithium-ion battery


4.9 Gear Motor:

Dc motor converts electrical energy into mechanical energy. It reduce the


speed of the vehicle but increase its torque. Whole Process is known as
gear reduction.
CHAPTER 5

SOFTWARE DISCRIPTION

5.1 INTRODUCTION TO EMBEDDED ‘C’:

Embedded systems programming is different from developing


applications on a desktop computer. Key characteristics of an embedded
system, when compared to PCs, are as follows:
 Embedded devices have resource constraints (limited ROM, limited
RAM, limited stack space, less processing power)
 Components used in embedded system and PCs are different;
embedded systems typically use smaller, less power consuming
components.
Two salient features of Embedded Programming are code speed and code
size. Code speed is governed by the processing power, timing constraints,
whereas code size is governed by available program memory and use of
programming language. Goal of embedded system programming is to get
maximum features in minimum space and minimum time.Embedded
systems are programmed using different type of languages:
 Machine Code
 Low level language, i.e., assembly
 High level language like C, C++, Java, Ada, etc.
 Application level language like Visual Basic, scripts, Access, etc.
Assembly language maps mnemonic words with the binary
machine codes that the processor uses to code the instructions. Assembly
language seems to be an obvious choice for programming embedded
devices. However, use of assembly language is restricted to developing
efficient codes in terms of size and speed. Also, assembly codes lead to
higher software development costs and code portability is not there.
Developing small codes are not much of a problem, but large
programs/projects become increasingly difficult to manage in assembly
language. Finding good assembly programmers has also become difficult
nowadays. Hence high-level languages are preferred for embedded systems
programming.
Use of C in embedded systems is driven by following advantages
 It is small and reasonably simpler to learn, understand, program and
debug.
 C Compilers are available for almost all embedded devices in use
today, and there is a large pool of experienced C programmers.
 Unlike assembly, C has advantage of processor-independence and is
not specific to any particular microprocessor/ microcontroller or any
system. This makes it convenient for a user to develop programs that
can run on most of the systems.
 As C combines functionality of assembly language and features of
high level languages, C is treated as a ‘middle-level computer
language’ or ‘high level assembly language’
 It is fairly efficient
 It supports access to I/O and provides ease of management of large
embedded projects.
Many of these advantages are offered by other languages also, but
what sets C apart from others like Pascal, FORTRAN, etc. is the fact that it
is a middle level language; it provides direct hardware control without
sacrificing benefits of high-level languages.Compared to other high-level
languages, C offers more flexibility because C is relatively small,
structured language; it supports low-level bit-wise data
manipulation.Compared to assembly language, C Code written is more
reliable and scalable, more portable between different platforms (with some
changes). Moreover, programs developed in C are much easier to
understand, maintain and debug. Also, as they can be developed more
quickly, codes written.

5.2 PROTEUS
Proteuswas initially created as a multiplatform
(DOS, Windows, Unix) system utility, to manipulate text and binary files
and to create CGI scripts. The language was later focused on Windows, by
adding hundreds of specialized functions for: network and serial
communication, database interrogation, system service creation, console
applications, keyboard emulation, ISAPI scripting (for IIS). Most of these
additional functions are only available in the Windows flavor of the
interpreter, even though a Linux version is still available.
Proteus was designed to be practical (easy to use, efficient, complete),
readable and consistent.
 Its strongest points are
 powerful string manipulation
 comprehensibility of Proteus scripts
 availability of advanced data structures: arrays, queues (single or
double), stacks, bit maps, sets, AVL trees
 The language can be extended by adding user functions written in
Proteus or DLLs created in C/C++

5.2.1 LANGUAGE FEATURES


At first sight, Proteus may appear similar to Basic because of its
straight syntax, but similarities are limited to the surface:
 Proteus has a fully functional, procedural approach;
 variables are untyped, do not need to be declared, can be local or
public and can be passed by value or by reference;
 all the typical control structures are available (if-then-else; for-next;
while-loop; repeat-until; switch-case);
 new functions can be defined and used as native functions.
 Proteus includes hundreds of functions for:
 accessing file system;
 sorting data;
 manipulating dates and strings;
 interacting with the user (console functions)
 calculating logical and mathematical expressions.
 Proteus supports associative arrays (called sets) and AVL trees,
which are very useful and powerful to quickly sort and lookup
values.
Two types of regular expressions are supported:
 extended (Unix like)
 basic (Dos like, having just the wildcards "?" and "*")
5.3 ARDUINO C SOFTWARE INSTALLATION

Follow the steps to Arduino c installation.

Step 1: Visit http://www.arduino.cc/en/main/software to download the


latestArduino IDE version for your computer’s operating system.

Step 2: Save the .exe file to your hard drive.

Step 3: Open the .exe file.

Step 4: Click the button to agree to the licensing agreement.

Figure 5.1 License Agreement

Step 5: Decidewhich components to install, then click “Next”.


Figure 5.2 Installation options

Step 6: Select which folder to install the program to, themclick “Install”.

Figure 5.3 Installation folder


Step 7: Wait for the program to finish installing, then click “Close”.

Figure 5.4 Installing process

Figure 5.5 process completion


Step 8: Now find the Arduino shortcut on your Desktop and click on it.
The IDEwill open up and you’ll see the code editor.

Figure 5.6 Arduino 1.8.8

Step 9: Open new file

Figure 5.7. New File Creation.


Step 10: Type entire program on the new file then save the file in arduino
extension.

Figure 5.8. Saving Program.

Step 11: Run the program and view the output details.

Figure 5.9. Execution of Module.


CHAPTER 6
RESULTS & DISCUSSION
The fire sensor will output a HIGH when there is fire and will output a
LOW when there is fire. So we have to keep checking these sensor if any
fire has occurred. If no fire is there we ask the motors to remain stop by
making all the pins high. If there is any fire we can ask the robot to move in
that direction by rotating the respective motor. Once it reaches the fire the
left and right sensor will not detect the fire as it would be standing straight
ahead of the fire. Now we use the variable named “fire” that would execute
the function to put off the fire. Once the variable fire becomes true, the fire
fighting robot arduino code will execute the put_off_fire function until the
fire is put off. This is done using the code below. Inside the put_off_fire()
we just have to stop the robot by making all the pins high. Then turn on the
pump to push water outside the container, while this is done we can also
use the servo motor to rotate the container so that the water is split all over
uniformly
CIRCUIT DIAGRAM

7. CONCLUSION
In conclusion, This model of Fire Extinguishing Robot aids to share out the
burden of fire fighters in firefighting task. Our project aims to build a real
time firefighting robot which moves in a constant speed, identify the fire
and then extinguish it with the help of pumping mechanism. The detection
and extinguishing was done with the help basic hardware components
attached with the robot. Firstly, IR Flame sensors are used for the detection
of fire. Secondly, BO Motors and Rubber wheels are used to navigate the
robot to reach the fireplace. Finally, the robot extinguishes the fire with the
help of submersible water pump and servo motors.
FUTURE SCOPE
 Expanding and fortifying the robot’s chassis to enable it to carry
even more water and possible a CO2 cannister.
 Upgrading the batter pack to increase its operating time.
 Upgrading the water pump and to combat fires from farther away.
 Adding more capable and sensitive sensors to detect fire and
survivors from farther and through obstacles.
 Adding GSM e-sims module to enable full control while still
relaying to operators from much further away
 Including multiple GPS modules to relay highly accurate
positioning data.
 Integrating more advanced Image Processing System (IPS) and
System on Chip (SoC) to increase its processing power to enable
faster decision making
CODE
#define enA 10//Enable1 L298 Pin enA
#define in1 9 //Motor1 L298 Pin in1
#define in2 8 //Motor1 L298 Pin in2
#define in3 7 //Motor2 L298 Pin in3
#define in4 6 //Motor2 L298 Pin in4
#define enB 5 //Enable2 L298 Pin enB
#define ir_R A0
#define ir_F A1
#define ir_L A2
#define servo A4
#define pump A5
int Speed = 160; // Write The Duty Cycle 0 to 255 Enable for Motor Speed
int s1, s2, s3;
void setup(){ // put your setup code here, to run once
Serial.begin(9600); // start serial communication at 9600bps
pinMode(ir_R, INPUT);// declare fire sensor pin as input
pinMode(ir_F, INPUT);// declare fire sensor pin as input
pinMode(ir_L, INPUT);// declare fire sensor pin as input
pinMode(enA, OUTPUT); // declare as output for L298 Pin enA
pinMode(in1, OUTPUT); // declare as output for L298 Pin in1
pinMode(in2, OUTPUT); // declare as output for L298 Pin in2
pinMode(in3, OUTPUT); // declare as output for L298 Pin in3
pinMode(in4, OUTPUT); // declare as output for L298 Pin in4
pinMode(enB, OUTPUT); // declare as output for L298 Pin enB
pinMode(servo, OUTPUT);
pinMode(pump, OUTPUT);
for (int angle = 90; angle <= 140; angle += 5) {
servoPulse(servo, angle); }
for (int angle = 140; angle >= 40; angle -= 5) {
servoPulse(servo, angle); }
for (int angle = 40; angle <= 95; angle += 5) {
servoPulse(servo, angle); }
analogWrite(enA, Speed); // Write The Duty Cycle 0 to 255 Enable Pin A
for Motor1 Speed
analogWrite(enB, Speed); // Write The Duty Cycle 0 to 255 Enable Pin B
for Motor2 Speed

delay(500);
}
void loop(){
s1 = analogRead(ir_R);
s2 = analogRead(ir_F);
s3 = analogRead(ir_L);

//
=====================================================
========
// Auto Control
//
=====================================================
========
Serial.print(s1);
Serial.print("\t");
Serial.print(s2);
Serial.print("\t");
Serial.println(s3);
delay(50);
if(s1<250){
Stop();
digitalWrite(pump, 1);
for(int angle = 90; angle >= 40; angle -= 3){
servoPulse(servo, angle);
}
for(int angle = 40; angle <= 90; angle += 3){
servoPulse(servo, angle);
}
}
else if(s2<350){
Stop();
digitalWrite(pump, 1);
for(int angle = 90; angle <= 140; angle += 3){
servoPulse(servo, angle);
}
for(int angle = 140; angle >= 40; angle -= 3){
servoPulse(servo, angle);
}
for(int angle = 40; angle <= 90; angle += 3){
servoPulse(servo, angle);
}
}
else if(s3<250){
Stop();
digitalWrite(pump, 1);
for(int angle = 90; angle <= 140; angle += 3){
servoPulse(servo, angle);
}
for(int angle = 140; angle >= 90; angle -= 3){
servoPulse(servo, angle);
}
}
else if(s1>=251 && s1<=700){
digitalWrite(pump, 0);
backword();
delay(100);
turnRight();
delay(200);
}
else if(s2>=251 && s2<=800){
digitalWrite(pump, 0);
forword();
}
else if(s3>=251 && s3<=700){
digitalWrite(pump, 0);
backword();
delay(100);
turnLeft();
delay(200);
}else{
digitalWrite(pump, 0);
Stop();
}
delay(10);
}
void servoPulse (int pin, int angle){
int pwm = (angle*11) + 500; // Convert angle to microseconds
digitalWrite(pin, HIGH);
delayMicroseconds(pwm);
digitalWrite(pin, LOW);
delay(50); // Refresh cycle of servo
}
void forword(){ //forword
digitalWrite(in1, HIGH); //Right Motor forword Pin
digitalWrite(in2, LOW); //Right Motor backword Pin
digitalWrite(in3, LOW); //Left Motor backword Pin
digitalWrite(in4, HIGH); //Left Motor forword Pin
}
void backword(){ //backword
digitalWrite(in1, LOW); //Right Motor forword Pin
digitalWrite(in2, HIGH); //Right Motor backword Pin
digitalWrite(in3, HIGH); //Left Motor backword Pin
digitalWrite(in4, LOW); //Left Motor forword Pin
}
void turnRight(){ //turnRight
digitalWrite(in1, LOW); //Right Motor forword Pin
digitalWrite(in2, HIGH); //Right Motor backword Pin
digitalWrite(in3, LOW); //Left Motor backword Pin
digitalWrite(in4, HIGH); //Left Motor forword Pin
}
void turnLeft(){ //turnLeft
digitalWrite(in1, HIGH); //Right Motor forword Pin
digitalWrite(in2, LOW); //Right Motor backword Pin
digitalWrite(in3, HIGH); //Left Motor backword Pin
digitalWrite(in4, LOW); //Left Motor forword Pin
}
void Stop(){ //stop
digitalWrite(in1, LOW); //Right Motor forword Pin
digitalWrite(in2, LOW); //Right Motor backword Pin
digitalWrite(in3, LOW); //Left Motor backword Pin
digitalWrite(in4, LOW); //Left Motor forword Pin
}

Reference
[1] K. Shamili Devi, K. Akhileswar, CH. Vinayaka, M. Karthik, and Y. K.
Viswanadham. “FIRE FIGHTING ROBOT”, Volume XII, Issue VII,
July/2020, The International Journal of Analytical and experimental modal
analysis.
[2] Finding solutions to doubts on https://forum.arduino.cc/ regarding
interfacing of components, connections, optimum operating conditions, and
safety measures with the project.
[3] Datasheet for the L298N motor driver referred from
https://components101.com/sites/default/files/c
omponent_datasheet/L298N-Motor-DriverDatasheet.pdf
[4] Datasheet for L293 motor driver referred from
https://www.ti.com/lit/ds/symlink/l293.pdf
[5] Datasheet for HC-SR04 Ultrasonic sensor referred from
https://www.electroschematics.com/wpcontent/uploads/2013/07/HCSR04-
datasheetversion-1.pdf

You might also like