Fire Extinguisher Robot (Flame Detection + Thermal Navigation)

by cakee in Circuits > Robots

29 Views, 0 Favorites, 0 Comments

Fire Extinguisher Robot (Flame Detection + Thermal Navigation)

IMG_20241213_143401.jpg
IMG_20241213_143627.jpg

A fire detection and response robot built using Arduino and developed in PlatformIO environment. The system uses flame sensors to detect fire direction and an MLX90614 infrared temperature sensor for safety-based decision making.

The robot is built on a 4-motor chassis configured as a differential drive system, allowing stable directional movement.

Supplies

  1. Arduino Uno
  2. L298N Motor Driver Module
  3. 4 × DC Motors
  4. MLX90614 Infrared Temperature Sensor
  5. 3 × Flame Sensors
  6. Robot Chassis
  7. Wheels
  8. Battery Pack
  9. Jumper Wires

Hardware Setup

The robot is built on a 4-wheel platform where both left motors and right motors are controlled together as a differential drive system.

Motor Driver Connections (L298N)

  1. ENA → D9 (Left motors speed control)
  2. ENB → D10 (Right motors speed control)
  3. IN1 → D5
  4. IN2 → D6
  5. IN3 → D7
  6. IN4 → D8

Flame Sensor Connections

  1. Left Flame Sensor → D2
  2. Center Flame Sensor → D3
  3. Right Flame Sensor → D4

MLX90614 Temperature Sensor (I2C)

  1. VCC → 5V
  2. GND → GND
  3. SDA → A4
  4. SCL → A5

Power Supply

  1. Battery pack powers motor driver
  2. Arduino powered through motor driver's 5V supply

Software Setup (PlatformIO)

This project was developed using PlatformIO (VS Code environment) instead of the Arduino IDE.

PlatformIO was used for:

  1. Better project structure
  2. Library management (Adafruit MLX90614)
  3. Faster compilation and debugging

Working

The robot continuously reads inputs from flame sensors to detect fire direction.

It then:

  1. Moves toward detected flame (left / center / right)
  2. Uses differential drive system for turning and movement
  3. Uses MLX90614 sensor to monitor temperature
  4. Stops immediately if temperature crosses safety limit

Code

The following code runs on Arduino (PlatformIO compatible):

If you are using PlatformIO, use the code as it is.

also this were my platformio.ini configurations

[env:uno]
platform = atmelavr
board = uno
framework = arduino
lib_deps =
SPI
adafruit/Adafruit MLX90614 Library@^2.1.5
adafruit/Adafruit BusIO@^1.16.2
monitor_port = COM4
monitor_speed = 9600

and If you are using Arduino IDE, simply remove the Arduino.h header and then upload the code.

Downloads