Fire Fighting Robot
Fire Fighting Robot
Fire Fighting Robot
USING ARDUINO
By
VEEKSHITHA .CHAPPIDI(42130714)
DEEKSHITHA .SAMULA(42130715)
NEERAJA .BOMMISHETTY(42137011)
SATHYABAMA
INSTITUTE OF SCIENCE AND TECHNOLOGY
(DEEMED TO BE UNIVERSITY)
CATEGORY -1 UNIVERSITY BY UGC
Accredited with Grade “A++” by NAAC | 12B Status by UCG | Approved by AICTE
NOVEMBER - 2024
I
\\
BONAFIDE CERTIFICATE
Internal Guide
Dr. ANUSUDHA T A M.Tech., Ph.D.
II
DECLARATION
DATE:
PLACE:CHENNAI
III
ACKNOWLEDGEMENT
IV
ABSTRACT
V
TABLE OF CONTENTS
CHAPTER TITLE PAGE .NO
ABSTRACT v
LIST OF FIGURES
LIST OF TABLES
LIST OF ABBREVIATIONS
1 INTRODUCTION
2 LITERATURE SURVEY
3 PROPOSED SYSTEM
3.1 Introduction
VI
3.4.4 BO Motor
REFERENCES
APPENDIX
A.SOURCE CODE
VII
LIST OF FIGURES
3.1.4 BO Motor
VIII
LIST OF TABLES
IX
LIST OF ABBREVATIONS
ARDUNIO - A popular open-source electronics platform based on
easy-to use hardware and software.
IR - Infrared
RF - Radio Frequency
X
CHAPTER 1
INTRODUCTION
In recent years, advancements in robotics and automation have opened up new possibilities
for enhancing safety and efficiency in emergency response situations. One innovative
application is the development of fire-fighting robots. This project focuses on creating a fire-
fighting robot using Arduino technology, designed to assist in detecting and extinguishing
fires in hazardous environments. The primary goal of this project is to develop a compact,
autonomous robot equipped with sensors and a fire suppression mechanism. By leveraging
Arduino’s versatility and ease of programming, we can create a system that not only
identifies heat sources but also navigates through various terrains to reach and combat fires
effectively.This fire-fighting robot incorporates essential features such as flame detection,
obstacle avoidance, and automated water spraying mechanisms. With real-time data
processing and efficient navigation algorithms, it aims to enhance fire safety protocols,
minimize human risk, and provide a reliable solution for tackling fires in both residential and
industrial settings.
This sort of robot has a sensor to detect obstacles. When you turn the robot on, it zips along
in a straight line. When it finally hits an obstacle, the impact is on sensors, i.e, sensors may
get damaged. Using Ultrasonic sensor and programming logic, the robot is guided to turn
right and move forward again, when the robot finds an obstacle in its way. In this way, the
robot changes direction any time it encounters an obstacle. Advanced robots use more
elaborate versions of this same idea. Robotics stems ,to make robots more smarter and
more perceptive. Today, robots can effect create new programs and sensor lively navigate
in a variety of environments.
As we explore this project, we will delve into the technical components, design
considerations, and the potential impact of robotic technology on emergency response
efforts. Through this endeavor, we hope to contribute to the growing field of robotics and its
application in life-saving missions.
1
1.1 BACKGROUND AND MOTIVATION
Firefighting has always been a critical aspect of public safety, evolving alongside
advancements in technology and engineering. Traditional firefighting methods, while
effective, often expose firefighters to dangerous conditions, especially in high-risk
environments such as industrial sites, forests, and urban areas. As urbanization increases
and the incidence of wildfires rises, there is a pressing need for innovative solutions that
can mitigate risks and enhance firefighting effectiveness.The motivation behind developing
a firefighting robot using Arduino lies in several key factors. First, Arduino's user-friendly
platform allows for rapid prototyping and iterative design, making it feasible for educational
and research institutions to explore robotics without significant financial investment. Second,
the robot's ability to autonomously detect and respond to fires addresses the challenge of
rapid intervention, crucial for minimizing damage and saving lives.Overall, the development
of a firefighting robot using Arduino not only aims to improve firefighting efficiency and
safety but also serves as a stepping stone towards a future where robotics play a vital role
in disaster management and response.
In emergency situations, particularly during fire incidents, human res-ponders often face
significant risks, including exposure to hazardous environments, limited visibility, and the
challenge of rapidly assessing the situation. Traditional fire-fighting methods can be
resource-intensive and may not always reach areas that are difficult or dangerous for
humans to access.The development of a fire-fighting robot using Arduino presents a
multifaceted problem characterized by several technical and operational challenges like
Environmental-hazards,Sensor Limitations,Autonomous Navigation,fire Suppression
Mechanism, Power Management,Human-Robot Interaction.By addressing these challenges,
the project aims to create a reliable and effective fire-fighting robot that enhances safety
and efficiency in emergency response efforts.The development of a fire-fighting robot using
Arduino presents a multifaceted problem characterized by several technical and operational
challenges like Environmental-hazards,Sensor Limitations,Autonomous Navigation,fire
Suppression Mechanism, Power Management,Human-Robot Interaction.By addressing
these challenges, the project aims to create a reliable and effective fire-fighting robot that
enhances safety and efficiency in emergency response efforts.
Objective
The primary objective of the firefighting robot using Arduino is to develop an autonomous
system capable of detecting and extinguishing fires effectively while ensuring the safety of
human firefighters. This involves integrating temperature and smoke sensors for real-time
fire detection and implementing a robust water delivery mechanism for efficient fire
suppression. The robot will be designed to navigate complex environments autonomously,
avoiding obstacles while approaching fire sources. Additionally, it aims to provide remote
monitoring and control capabilities, allowing operators to assess the situation from a safe
distance. By leveraging the user-friendly Arduino platform, the project seeks to create an
intuitive interface for easy operation, while ensuring scalability for future enhancements.
Ultimately, the goal is to enhance firefighting operations, reduce the risks faced by
firefighters, and contribute to more effective emergency response strategies.
2
Scope
The scope of the fire-fighting robot project using Arduino encompasses the design and
development of an autonomous system capable of detecting and extinguishing fires in
various environments. This includes the mechanical design of a robust chassis that can
navigate challenging terrains, as well as the integration of sensors such as temperature and
flame detectors for accurate fire identification. The project aims to implement advanced
navigation algorithms for obstacle avoidance, enabling the robot to autonomously reach fire
sources. Additionally, it involves creating a reliable fire suppression mechanism, such as a
water spraying system, to effectively combat flames. Furthermore, the project explores
potential applications in industrial and residential settings, with future enhancements
considering AI integration for improved decision-making and collaboration with drones for
enhanced situational awareness. Overall, this project seeks to contribute significantly to fire
safety and emergency response capabilities.
The thesis on the firefighting robot is organized into several key sections to provide a
comprehensive overview of the research and development process. It begins with an
Introduction, outlining the significance of firefighting technology and the challenges faced
in traditional methods, followed by the research objectives and a brief overview of the thesis
structure. The Literature Review examines existing firefighting robots and relevant
technologies, focusing on sensor systems and advancements in automation for emergency
response.Next, the System Design and Methodology section details the overall
architecture of the robot, including component selection and integration, fire detection and
suppression mechanisms, and navigation systems. This is followed by the Implementation
phase, which describes the assembly process and programming of the Arduino for sensor
integration and control. The Testing and Evaluation section presents the methodologies
for assessing the robot’s capabilities, along with performance metrics and results analysis.In
the Discussion, findings are interpreted, limitations are acknowledged, and comparisons
with existing methods are made. The Future Work section outlines potential enhancements
and applications beyond firefighting. The thesis concludes with a Conclusion summarizing
key findings and contributions. Finally, a References section lists all cited works, and
Appendices provide supplementary information, such as circuit diagrams and code
snippets, to support the research. This structured approach ensures a thorough exploration
of the project and its implications for emergency response technologies.
3
CHAPTER 2
LITERATURE SURVEY
Several studies on auto fire chaser and extinguisher using Arduino have been conducted in
the recent years. This section summarizes all of the previous work on optimization
techniques.
The project is designed to develop a fire fighting robot using Arduino uno . The
robotic vehicle is loaded with water pump which is controlled by servos. An ATMega 328
micro controller is used for the desired operation. At the transmitting end using commands
are sent to the receiver to control the movement of the robot either to move forward, and left
or right etc. At the receiving end tow motors are interfaced to the microcontroller where two
of them are used for the movement of the vehicle and the one to position the robot. The
ultrasonic sensor adequate range with obstacle detection, while the receiver driver module
used to drive DC motors via motor driver IC for necessary work. A water tank along with
water pump is mounted on the robot body and its operation is carried out from the
microcontroller output through appropriate command from the transmitting end.The whole
operation is controlled by an ATmega 328 microcontroller. A motor driver IC is interfaced to
the micro controller through which the controller drives the motors,three ir flame sensors are
fixed on robot chassis to sense the fire and to reach the destination to
putoff the fire.
Tawfiqur Rakib, M. A. Rashid Sarkar [ Nov 2016] proposed a fire fighting robot model which
consists of a base platform made up of ‘Kerosene wood’, LM35 sensor for temperature
detection, flame sensors to detect the fire and a water container of 1 litre capacity which is
made up of a strong cardboard that makes it water resistant. The robot has two wheels for
its movement.Using Atmega2560 micro-controller and in which the robot is divided into
three basic units according to their functions which are as locomotive unit, fire detecting unit
and extinguishing unit.Each unit performs their task in order to achieve the desired output of
extinguishing fire.The locomotive unit is used for the movement of the robot and to avoid the
obstacles with the help of four IR and four ultrasonic sensors.The fire detecting unit is used
to detect fire using LDR and temperature sensor. The extinguishing unit is used to
extinguish the fire using water container and BLDC Motor. The robot also have a Bluetooth
module that is connected with the smartphones in order to navigate it in the proper
direction.Water pump and sprinkler is also used in this. To instruct the Arduino UNO an
open source software which is Arduino IDE is required to code and to implement that code
in Arduino UNO.A fire extinguishing robot which employs DTMF (Dual Tone Multi
Frequency Tones) technology for the navigation of the robot and uses a flame sensor for
fire detection that is capable of sensing flame of the wavelength range 760 to 1100 nm and
sensitivity varies from 10cm to 1.5feet. An arduino based fire fighter robot which consists of
RF based remote operation to operate the robot and water pump.The robot is controlled by
the user within a range of 7 metres.It also consists of a wireless camera which helps user to
move the robot in the required direction.In this robot, a fuzzy controller is used to avoid
static obstacle in real time.It aims to guide the robot or vehicle along its path avoiding all the
obstacle that comes along the path.This robot consists of three flame sensors for fire
detection in left,right and centre direction.It also consists of three ultrasonic sensors for
obstacle detection and avoidance.When the robot detects fire it also sends a warning
notification to the user using bluetooth module.
4
The literature on firefighting robots utilizing Arduino technology highlights a growing trend in
integrating accessible microcontroller platforms into emergency response solutions.
Numerous studies focus on the effective use of Arduino for integrating various sensors,
such as temperature and smoke detectors, enabling autonomous fire detection and
response mechanisms. Research emphasizes the reliability of these systems in real-time
applications, often showcasing prototypes that demonstrate successful fire suppression
techniques, including automated water delivery. Additionally, studies explore the
development of algorithms for obstacle avoidance and navigation, allowing these robots to
maneuver through complex environments safely. Performance evaluations consistently
reveal the effectiveness of Arduino-based robots in various scenarios, analyzing metrics like
response time and operational efficiency. Furthermore, the literature underscores the
educational value of these projects, serving as practical tools in engineering and robotics
courses. Overall, the body of research illustrates the potential of Arduino-based firefighting
robots to enhance safety and effectiveness in firefighting operations while providing a robust
platform for innovation and development.
The Literature survey reveals that on firefighting robots reveal a growing interest in
integrating robotics and automation into emergency response systems. Numerous studies
have explored the design and functionality of autonomous firefighting robots, focusing on
aspects such as sensor integration, navigation capabilities, and fire suppression methods.
Many prototypes utilize technologies like temperature and smoke sensors to detect fires,
coupled with advanced algorithms for real-time decision-making and obstacle avoidance.
Research has also highlighted the importance of mobility, with some robots designed for
rugged terrain, making them suitable for both urban and rural firefighting scenarios.
Additionally, advancements in communication technologies enable remote monitoring and
control, allowing human operators to manage robots safely from a distance. Various case
studies demonstrate successful deployments in real-world situations, underscoring the
effectiveness of these robots in enhancing firefighting operations and reducing risks for
human responders. Overall, the literature indicates a promising trajectory for the
development of firefighting robots, with ongoing innovations aimed at improving their
capabilities and applications in emergency management.
While the existing system described has several advantages, there are also some
potential operational problems.
1. Limited Detection Range: Many Arduino-based firefighting robots struggle with the
range and sensitivity of sensors used for fire and smoke detection, potentially leading to
delayed responses in large or complex environments.
2. Obstacle Navigation Challenges: While some robots are equipped with basic obstacle
avoidance algorithms, they often fail to navigate dynamic or cluttered environments
effectively, which can hinder their ability to reach fire sources in real-time.
5
4. Power Supply Issues: Many Arduino-based robots face limitations related to power
supply, particularly during extended operations. This can lead to insufficient runtime for
firefighting tasks, necessitating more efficient power management solutions.
7. Water Delivery Mechanism Efficiency: While many prototypes include water delivery
systems, these mechanisms may not be optimized for various fire types or may lack the
precision required for effective fire suppression.
8. User Interface Limitations: Many existing systems do not provide intuitive user
interfaces for operators, complicating control and monitoring, particularly under stressful
conditions.
10. Scalability Issues: The current designs often do not easily adapt to larger or more
complex firefighting operations, limiting their application in diverse scenarios such as
industrial fires or large-scale wildfires.
Addressing these open problems could significantly enhance the effectiveness and
reliability of Arduino-based firefighting robots, paving the way for more advanced and
capable emergency response systems.
6
CHAPTER 3
PROPOSED SYSTEM
3.1 Introduction
This chapter consists of project planning, project block diagrams and project description. In
This chapter also, all the methods that were used to implement the project are described.
The project planning for a fire-fighting robot using Arduino involves several key phases.
Initially, defining the project's objectives is essential, such as detecting and extinguishing
small fires autonomously. Next, a detailed design phase follows, where components like
flame sensors, water pumps, and motors are selected based on functionality and
compatibility with the Arduino platform. The robot's chassis should be sturdy and mobile,
allowing it to navigate through various environments. The programming phase focuses on
developing algorithms for sensor data processing and decision-making, enabling the robot
to locate and respond to fires effectively. Additionally, testing and iteration are crucial to
refine both hardware and software, ensuring reliability and efficiency. Finally, documentation
of the process and results will be important for future reference and potential improvements,
creating a comprehensive overview of the project from conception to execution.
7
Figure 3.3: Logic Block Diagram
This L298N Motor Driver Module is a high power motor driver module for driving
DC and Stepper Motors. This module consists of an L298 motor driver IC and a
78M05 5V regulator. L298N Module can control up to 4 DC motors, or 2 DC motors
with directional and speed control.
78M05 Voltage regulator will be enabled only when the jumper is placed. When the
power supply is less than or equal to 12V, then the internal circuitry will be powered
by the voltage regulator and the 5V pin can be used as an output pin to power the
microcontroller. The jumper should not be placed when the power supply is greater
than 12V and separate 5V should be given through 5V terminal to power the internal
circuitry.
8
Features
Applications
Drive DC motors.
Drive stepping motors
In Robotics
9
A flame sensor module that consists of a flame sensor (IR receiver), resistor,
capacitor, potentiometer, and comparator LM393 in an integrated circuit. It can detect
infrared light with a wavelength ranging from 700nm to 1000nm.The far- infrared
flame probe converts the light detected in the form of infrared light into current
changes. Sensitivity is adjusted through the onboard variable resistor with a detection
angle of 60 degrees.Working voltage is between 3.3v and 5.2v DC, with a digital
output to indicate the presence of a signal. Sensing is conditioned by an LM393
comparator.
10
Figure 3.4.2: Flame sensor module
Different Types
Flame-sensors are classified into four types
IR single frequency
IR multi-spectrum
UV flame detectors
UV/ IR flame detectors
Applications
These sensors are used in several dangerous situations which include the following.
Hydrogen stations
Industrial heating
Fire detection
Fire alarm
Fire fighting robot
Drying systems
Industrial gas turbines
Domestic heating systems
Gas-powered cooking devices
11
3.4.3 Servo Motor
A servo is a small DC motor with the following components added: some gear
reduction, a position sensor on the motor shaft, and an electronic circuit that controls
the motor's operation. In other words, a servo is to a DC motor what the Arduino is
the ATmega microcontroller---components and housing that make the motor easy
to use. This will become abundantly clear when we work with unadorned DC motors
next week.
The gear reduction provided in a servo is large; the basic hobby servo has a 180:1
gear ratio. This means that the DC motor shaft must make 180 revolutions to
produce 1 revolution of the servo shaft. This large gear ratio reduces the speed of
the servo and proportionately increases its torque. What does this imply about small
DC motors? Servo motors are typically used for angular positioning, such as in radio
control airplanes. They have a movement range of 0 up to 180 degrees, but some
extend up to 210 degrees. Typically, a potentiometer measures the position of the
output shaft at all times so the controller can accurately place and maintain its
position.
PPM uses 1 to 2ms out of a 20ms time period to encode its information. The servo
expects to see a pulse every 20milliseconds (.02 seconds). The length of the pulse
will determine how far the motor turns. A 1.5 millisecond pulse will make the motor
turn to the 90 degree position(often called the neutral position). If the pulse is shorter
than 1.5 ms, then the motor will turn the shaft to closer to 0degrees. If the pulse is
longer than 1.5ms,the shaft turns closer to 180 degrees.The amount of power
applied to the motor is proportional to the distance it needs to travel. So, if the shaft
needs to turn a large distance, the motor will run at full speed. If it needs to turn only a
small amount, the motor will run at a slower speed.
12
Figure 3.1.3:.1: Rotating mechanism of servo motor
3.4.4 BO Motor
The term "BO motor" typically refers to various types of motors used in robotics and
embedded systems, with each type serving different functions based on specific
requirements. DC motors are widely popular due to their simplicity and ease of
control, operating with a direct current power supply, and are commonly used in
applications where speed and direction need to be varied, often controlled using
PWM (Pulse Width Modulation). Stepper motors are another prevalent option,
especially when precise control over angular position is necessary; they move in
discrete steps, allowing for accurate positioning and repeatability, making them ideal
for CNC machines and 3D printers. Brushless motors are known for their efficiency
and longer lifespan compared to brushed motors, requiring more complex control
systems, which makes them suitable for high-performance applications like drones.
Lastly, servo motors provide precise control of angular position and speed,
commonly utilized in robotics and automation due to their ability to maintain a specific
position under load. Each motor type has its unique advantages and is chosen
based on the specific needs of the project or application.
13
Figure 3.1.4: BO Motor
When choosing BO motors and wheels, there are a few factors to consider:
The size of the motor: The size of the motor will determine the size of the wheels
that you can use.
The gear ratio: The gear ratio determines the speed and torque of the motor.
The type of wheel: The type of wheel will depend on the application. For
example, rubber wheels are good for traction, while plastic wheels are lightweight and
durable.
14
3.4.6 ARDUINO MICROCONTROLLER ATMEGA 328
Applications
Today the ATmega328 is commonly used in many projects and autonomous
systems where a simple, low-powered, low-cost micro-controller is needed. Perhaps
the most common implementation of this chip is on the popular Arduino development
platform, namely the Arduino Uno and Arduino Nano models.
Features
28-pin AVR Microcontroller
Flash Program Memory: 32 kbytes
EEPROM Data Memory: 1 kbytes
SRAM Data Memory: 2 kbytes
I/O Pins: 23
Timers: Two 8-bit / One 16-bit
A/D Converter: 10-bit Six Channel
PWM: Six Channels
RTC: Yes with Separate Oscillator
MSSP: SPI and I²C Master and Slave Support
USART: Yes
External Oscillator: up to 20MHz
The Atmega328 is one of the microcontroller chips that are used with the popular
Arduino Duemilanove boards. The Arduino Duemilanove board comes with either 1
of 2 micro controller chips, the Atmega168 or the Atmega328. Of these 2, the
Atmega328 is the upgraded, more advanced chip. Unlike the Atmega168 which has
16K of flash program memory and 512 bytes of internal SRAM, the Atmega328 has
32K of flash program memory and 2K of Internal SRAM.
The Atmega328 has 28 pins, It has 14 digital I/O pins, of which 6 can be used as
PWM outputs and 6 analog input pins. These I/O pins account for 20 of the pins.
15
3.4.7 PIN DIAGRAM OF ATMEGA 238
As stated before, 20 of the pins function as I/O ports. This means they can function
as an input to the circuit or as output. Whether they are input or output is set in the
software. 14 of the pins are digital pins, of which 6 can function to give PWM output.
6 of the pins are for analog input/output. Two of the pins are for the crystal oscillator,
this is to provide a clock pulse for the Atmega chip. A clock pulse is needed for
synchronization so that communication can occur in synchrony between the Atmega
chip and a device that it is connected to.
The Atmega328 chip has an analog-to-digital converter (ADC) inside of it. This
must be or else the Atmega328 wouldn't be capable of interpreting analog signals.
Because there is an ADC, the chip can interpret analog input, which is why the chip
has 6 pins for analog input. The ADC has 3 pins set aside for it to function- AVCC,
AREF, and GND. AVCC is the power supply, positive voltage, that for the ADC. The
ADC needs its own power supply in order to work. GND is the power supply ground.
AREF is the reference voltage that the ADC uses to convert an analog signal to its
corresponding digital value. Analog voltages higher than the reference voltage will
be assigned to a digital value of 1, while analog voltages below the reference voltage
will be assigned the digital value of 0. Since the ADC for the Atmega328 is a 10-bit
ADC, meaning it produces a 10-bit digital value, it converts an analog signal to its
digital value, with the AREF value being a reference for which digital values are high
or low. Thus, a portrait of an analog signal is shown by this digital value; thus, it is its
digital correspondent value. The last pin is the RESET pin. This allows a program to
be rerun and start over. And this sums up the pin out of an Atmega328 chip.
16
Figure 3.4.7 :Pin diagram of ATMEGA 238
17
3.5 System Implementation
2ne2
Figure 4.5: System Implementation Figure
18
3.5.1 Circuit Diagram
19
CHAPTER 4
20
Fig 4.1:Final Visuals Outputs of Project
Implementation:
21
firefighting teams ensures the robot complements human efforts, improving
overall response times and enhancing safety in firefighting operations.
Training and simulations are crucial to prepare both the robot and human
operators for real-world scenarios, ultimately leading to more effective fire
suppression strategies.
The software used by the Arduino is Arduino IDE. The Arduino IDE is a cross
platform application written in Java, and is derived from the IDE for the
Processing
programming language and the Wiring project. It is designed to introduce
programming to artists and other newcomers unfamiliar with software
development. It includes a code editor with features such as syntax
highlighting, brace matching, and automatic indentation, and is also capable
of compiling and uploading programs to the board with a single click. There is
typically no need to edit make files or run programs on a command line
interface.
Arduino uno was then connected to the computer via a USB cable, then
followed selection of the micro controller from the ‘Tools Tab’ and lastly
selection of COM 6 from the same tab as shown below in Figure 5.11, Figure
5.22, and Figure 5.23 respectively.
22
Figure 4.1.2: Selecting the Arduino UNO Board
23
Figure 4.23: Importing libraries required for the project
The figure above shows the source code that I developed using the Arduino
software. I used the C programming language because it’s easy to
understand and it's also easier to detect a mistake from the program. In
comparison to Assembly language that requires the programmer to know the
inside structure of the microcontroller, C language offers more specific coding
and programs that run on C language are a lot faster than using assembly
language. What followed next was loading the source code to the Arduino
Uno by clicking the ‘Upload’ button on the Arduino Software as shown below.
The Arduino IDE comes with a C/C++ library called "Wiring" (from the project
of the same name), which makes many common input/output operations
much easier. Arduino programs are written in C/C++, although users only
need define two functions to make a run-able program:
setup() – a function run once at the start of a program that can initialize
settings
loop() – a function called repeatedly until the board powers off.
24
Figure 4.24: Uploading the Source Code to the Arduino
A typical first program for a microcontroller simply blinks a LED on and off. In
the Arduino environment, the user might write a program like this:
For the above code to work correctly, the positive side of the LED must be
connected to pin 13 and the negative side of the LED must be connected to
ground. The above code would not be seen by a standard C++ compiler as a
valid program, so when the user clicks the "Upload to I/O board" button in the
IDE, a copy of the code is written to a temporary file with an extra include
header at the top and a very simple main() function at the bottom, to make it a
valid C++ program.
The Arduino IDE uses the GNU tool chain and AVR Libc to compile programs,
and uses AVR dude to upload programs to the board.For educational
purposes there is third party graphical development environment called Mini
blog available under a different open source license.
25
Figure 5.25: Program compiling using Arduino IDE
Update the Preferences => Additional Boards Manager => Board Settings:
Board: “Arduino UNO”
Libraries: “MFRC522, Servo”
Language: “C”
Interface: “USB”
Upload Speed: “9600”
Flash Frequency: “80MHz” Core
Debug Level: “None” COM Port: 6
26
4.3 MICROCONTROLLER – FLAME SENSOR INTERFACING
Fig 5.2 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 module consists
of an IR sensor, potentiometer, OP-Amp circuitry and a led indicator. When a
flame will be detected, the module will turn on its red led. This module is
sensitive to flame but it can also detect ordinary light. The detection point is
60 degrees. The sensitivity of this sensor is adjustable and it also has a stable
performance. It has both outputs, analog and digital. The analog output gives
us a real time voltage output signal on thermal resistance while the digital
output allows us to set a threshold via a potentiometer. In our tutorial we are
going to use both of these outputs one by one and see how the sensor
works.We can use the flame sensor to make an alarm when detecting the fire,
for safety purpose in many projects and in many more ways.
27
program Arduino. The programming work can easily be performed by making
the necessary settings and definitions in the IDE program.
The working principle of a firefighting robot revolves around its ability to detect,
analyze, and extinguish fires autonomously or remotely. Equipped with a
combination of sensors—such as thermal imaging cameras, smoke detectors,
and gas sensors—the robot first identifies the presence of fire and assesses
the surrounding environment. Once a fire is detected, its onboard processing
unit analyzes the data to determine the best course of action. The robot
navigates through the affected area using a combination of pre-programmed
pathways and real-time obstacle avoidance algorithms, ensuring it can
maneuver through debris and hazardous conditions. Upon reaching the fire, it
deploys high-pressure water hoses or fire suppression agents, effectively
targeting the flames while maintaining a safe distance. Some advanced
models may even employ drones for aerial assessments or deploy smaller
robotic units to assist in complex scenarios. This multi-faceted approach
enables the firefighting robot to operate efficiently, reducing response times
and enhancing the overall effectiveness of fire suppression efforts.
28
CHAPTER 5
The project has been motivated by the desire to design a system that can
detect
fires and take appropriate action, without any human intervention. The
development of sensor networks and the maturity of robotics suggests that we
can use mobile agents for tasks that involve perception of an external
stimulus and reacting to the stimulus, even when the reaction involves a
significant amount of mechanical actions. This provides us the opportunity to
pass on to robots tasks that traditionally humans had to do but were inherently
life- threatening. Fire-fighting is an obvious candidate for such automation.
Given the number of lives lost regularly in fire- fighting, the system we
envision is crying for adoption. Our experience suggests that designing a fire-
fighting system with sensors and robots is within the reach of the current
sensor network and mobile agent technologies. Furthermore, we believe that
the techniques developed in this work will carry over to other areas involving
sensing and reacting to stimulus, where we desire to replace the human with
an automated mobile agent.
29
5.2 RESEARCH ISSUES
Addressing these issues will help advance the development and deployment
of firefighting robots, making them more effective and reliable tools in
emergency response.
30
5.3 CONCLUSION
The prototype of the fire fighter robot was efficiently designed. This prototype
has
facilities to be integrated with many sensors making it move forward. The
toolkit detects the infrared light emitted by the fire with photo diode and sends
signal to controller. We intend to extend this work to provide a keypad
programmed to allow manipulation of robot to move desired direction with
help of motor driver module and extinguish the flames using water tank which
is rotated at 180 degress with help of servo in order for faster result. This
future work will also explore to the use of a long distance sensor with suitable
hardware to get more better and faster results addition to the characters. We
design the fire detection system using flame sensor that is capable of sensing
the flame of wavelength range 760 to 1100 nm, and the sensing range
depends on the sensitivity and varies from 10cm to 1.5feet. The paper not
only demonstrates the effective implementation of a firefighting robot, but also
adds new features that make it more realistic to recognize the severity of the
fire and the form of gases present, which is critical to preventing further fire
spread.
1.Cost and Funding: High initial costs for development, deployment, and
maintenance can hinder adoption, especially for smaller fire departments with
limited budgets.
31
3.Integration with Existing Systems: Aligning the operation of firefighting
robots with current firefighting protocols, equipment, and communication
systems can be complex and require extensive training.
5.Public Acceptance: Gaining the trust and acceptance of the public and
firefighters is essential. Concerns about job displacement or reliance on
technology can pose barriers to implementation.
32
REFERENCES
2. M. Banzi, Getting started with arduino. " O'Reilly Media, Inc.", 2009
7.http://electronicsforu.com/electronics-projects/hardware-diy/arduino-ir-
firefighter robot
8.http://maker.robotistan.com/arduino-dersleri
10. Jentsch and White Fire causes disruptions that are inherent, unavoidable,
and affect all levels of an ecosystem , according to 2001.
33
15.Mukul Diwanji, Saurabh Hisvankar, and Chhaya Khandelwal, Autonomous
Fire Detecting and Extinguishing Robot , Manipal University Jaipur,
September 28-29, 2019
34
APPENDIX
A.SOURCE CODE
35
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("\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);
}
36
}
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();
37
}
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
}
38
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
}
39