IoT · Wearable · Real-Time Monitoring

Firefighter
Safety Device

A real-time IoT wearable safety system that continuously monitors firefighters' physical condition, location, and environment — keeping commanders informed and firefighters safe in the most hazardous conditions.

Explore Project View Gallery Open Live Dashboard Project Documents

What is FSD?

The Firefighter Safety Device (FSD) is a wearable IoT safety solution that collects critical telemetry — motion, temperature, gas/smoke levels, and GPS location — and transmits it over Wi-Fi to a Firebase backend. A live web dashboard and an Android companion app give fire commanders instant, situational awareness across any device.

Auto Emergency Detection
Detects man-down scenarios (no movement for 30 s) and high temperature automatically — no action required from the firefighter.
Live GPS Tracking
Real-time location plotted on an interactive MapLibre GL map with a trail of the last 50 GPS positions.
Manual SOS Button
A dedicated push button lets firefighters trigger an instant distress signal that overrides all other device states.
Temperature Monitoring
DHT11 sensor reads ambient temperature every loop cycle, triggering progressive alerts as heat rises above safe thresholds.
Gas & Smoke Detection
MQ-2 sensor continuously screens for hazardous combustible gases and smoke, issuing instant warnings when air quality drops.
Multi-Platform Alerts
Visual interfaces, historical trend analysis, and immediate voice/push notification alerts delivered directly to the Web and Android apps.

System Architecture

Comprehensive IoT ecosystem: Wearable Device → Firebase Cloud Backend → Web Dashboard & Android App. Data flows continuously over secure HTTPS to multiple platforms simultaneously.

Wearable Device
  • ESP32 MCU
  • MPU-6050 (Motion)
  • DHT11 (Temperature)
  • MQ-2 (Gas & Smoke)
  • Neo-6M GPS
  • SOS Button
  • Buzzer & Battery
Firebase Backend
  • Realtime Database (live)
  • Firestore (historical)
  • REST API /api/data
  • HTTPS PUT from ESP32
Command Centers
  • Next.js Web Dashboard
  • React Native Android App
  • Interactive Live Maps
  • Real-time Push Alerts
  • Historical Data Analytics

Data Payload (ESP32 → Firebase)

{
  "temperature":   42.5,
  "gas_level":     350,
  "total_acc":     0.98,
  "movement":      "MOVING",
  "status":        "NORMAL",
  "mpu_status":    "OK",
  "dht_status":    "OK",
  "mq2_status":    "OK",
  "gps_status":    "OK",
  "system_status": "OK",
  "latitude":      17.385044,
  "longitude":     78.486671,
  "timestamp":     154823
}

Hardware Components

All components are mounted to the ESP32 and powered by a single HW battery, keeping the device lightweight and wearable for firefighters.

# Component Purpose Interface
1ESP32Main microcontroller — Wi-Fi, I2C, UART, GPIOCore
2MPU-60503-axis accelerometer & gyroscope — motion & fall detectionI²C
3DHT11Ambient temperature sensor1-Wire
4MQ-2Gas & smoke sensor — detects LPG, CO, methane, and smoke for toxic environment alertingAnalog
5Neo-6M GPSLatitude/longitude trackingUART
6Push ButtonManual SOS trigger (GPIO 14 input / GPIO 27 simulated GND)GPIO
7BuzzerLocal audible alerts for the firefighterGPIO
8BatteryPrimary power source — 5VPower

Pin Map — ESP32

ESP32 PinConnected ToNotes
GPIO 21 (SDA)MPU-6050 SDAI²C data line
GPIO 22 (SCL)MPU-6050 SCLI²C clock line
GPIO 4DHT11 DataSingle-wire; 10 kΩ pull-up to 3.3 V
GPIO 34 (ADC)MQ-2 AO (Analog Out)Analog read — gas/smoke concentration level
GPIO 35 (ADC)MQ-2 DO (Digital Out)Threshold-triggered digital alert output
GPIO 16 (RX1)Neo-6M TXHW Serial 1 RX
GPIO 17 (TX1)Neo-6M RXHW Serial 1 TX
GPIO 14SOS Button (signal)Active LOW, INPUT_PULLUP
GPIO 27SOS Button (GND leg)Driven LOW — simulated ground
GPIO 13Buzzer (+)Active HIGH

How It Works

The device runs a non-blocking state machine. Sensor values are read every loop iteration and the system state is updated in real time — no delay() calls that could stall GPS parsing.

Device States

Normal
All parameters within safe limits. Buzzer off.
Warning
Potential danger detected. Buzzer intermittent (1 Hz).
Emergency
Critical condition. Buzzer intermittent (5 Hz).
SOS
Button pressed. Overrides all other states. Continuous buzzer.
Offline
No data received by dashboard. Last known state retained.

Movement Detection — No-Motion Timer

0–10 s
MOVING
10–29 s
WARNING
≥ 30 s
EMERGENCY

The MPU-6050 computes movement = |√(Ax²+Ay²+Az²) − 1.0 g|. If movement drops below 0.07 g the no-motion timer starts. Thresholds of 10 s and 30 s trigger WARNING and EMERGENCY respectively.

Temperature Thresholds

Temperature RangeStateBuzzer Behaviour
< 25 °CNORMALSilent
25 – 30 °CNORMAL1 ambient beep / min
30 – 35 °CNORMAL2 ambient beeps / min
35 – 40 °CNORMAL3 ambient beeps / min
> 40 °CWARNING →Escalates to WARNING / EMERGENCY

SOS Button Logic

Toggle Design
First press activates SOS. Second press deactivates it. Debounced at 200 ms to prevent accidental re-triggers.
Simulated Ground Trick
GPIO 27 is driven permanently LOW, acting as the button's GND leg. Eliminates a physical GND wire and simplifies the wiring harness.

Available On

The FSD ecosystem spans multiple platforms — a live web command center and a native Android companion app — giving commanders real-time visibility from any device, anywhere.

Web Dashboard
A full-featured command-center application built with Next.js and Firebase Realtime Database. Monitor live telemetry, GPS location, gas/smoke levels, temperature trends, and emergency alerts from any browser — no installation needed.
Next.js Firebase RTDB Live GPS Map Analytics
Android App
A native Android companion app built with React Native & Expo. Receive push alerts, view real-time sensor data, track firefighter GPS location on a mobile map, and trigger SOS acknowledgments — right from your pocket.
React Native Expo Firebase Android APK

Web Dashboard

A full-featured Next.js command-center application. Connects to Firebase Realtime Database for live streaming and Firestore for historical analytics.

FSD Web Dashboard Screenshot
Live GPS Map Status Cards Temperature Trend Chart Movement Timeline Status Distribution Donut Alert & Event Log Field Units Roster Run Simulation Mode
Left Panel
Status card, battery, sensor row, comm reliability bars, and live scrollable log with timestamped events.
Center Panel
Interactive MapLibre GL map with real-time firefighter position & GPS trail. Field units roster with online/offline indicators.
Right Panel
Temperature min/avg/max badges, line chart (Recharts), movement pixel strip, and status distribution donut chart.

App Features

Comprehensive mission-control capabilities integrated directly into the operations dashboard and companion app, providing unparalleled situational awareness, resilience, and analytical depth.

Technologies Used

A blend of embedded C++ firmware and a modern JavaScript web stack, unified by Firebase as the real-time data backbone.

Firmware (ESP32)

Arduino C++ ESP32 SDK WiFiClientSecure DHT11 Library MPU-6050 Library TinyGPS++ ArduinoJson

Web Dashboard

Next.js (React) Firebase RTDB Firestore MapLibre GL JS Recharts Tailwind CSS Firebase Admin SDK

API Endpoints

The Next.js server exposes a REST route for alternative HTTP-based ingestion and for writing to the Firestore historical collection.

POST /api/data

Receives sensor data from ESP32 (or any HTTP client) and stores it in Firestore.

Request Body

{
  "device_id":  "FF_001",
  "temperature": 42.5,
  "movement":   "MOVING",
  "status":     "NORMAL",
  "latitude":   17.385044,
  "longitude":  78.486671
}

Response Codes

200  { "success": true }
400  { "error": "device_id is required" }
503  { "error": "Firebase not initialized" }
500  { "error": "Internal server error" }

Assumptions & Known Limitations

This is a functional prototype. The following constraints are acknowledged and are planned to be addressed in future production versions.

AreaDetail
GPS indoorsNeo-6M signal degrades inside buildings. Dashboard retains last known location.
DHT11 accuracy±2 °C — suitable for prototypes. Production should use DHT22 or SHT31.
Single firefighterFirmware hardcoded for device ID FF_001. Multi-device support is planned.
Firebase authUses legacy Database Secret. Should use Firebase Auth tokens in production.
SSL verificationclient.setInsecure() disables cert verification. Production must verify the server cert.
TimestampESP32 sends millis() (uptime), not wall-clock time. Dashboard uses server local time.
ConnectivityWi-Fi range ~50–100 m indoors. LoRa / GSM upgrades planned for larger deployments.

Team

This project was brought to life by a team of dedicated engineers. FSD is the output of their sleepless nights and efforts.

RSMK
Srinivasa Manikanta

Developed the software stack, logic, and dashboard.

Chintu
Santhosh

Handled presentations and assisted with hardware.

chaitu
Sri Chaitanya

Assembled hardware connections for the prototype.

Ramu
N Ramu

The mastermind behind the companion APP.

Sairam
Sairam

The mastermind behind the new website.