Disaster-Resilient Hybrid Mesh Communication System Using ESP32–LoRa

               



When disasters hit, one thing fails almost instantly: communication. Cell towers collapse, power goes out, and people get cut off. This project was built to solve that exact problem a low-cost, long-range communication network that works even with zero internet, zero mobile network, and zero power grid.

Below is the full system I designed, built, programmed, and tested.

Project Overview

This system is a hybrid ESP32–LoRa mesh-like network designed for disaster zones.
It sends critical alert messages + GPS coordinates across long distances using battery-powered wireless nodes.

The network has three specialized nodes:

  1. Transmitter Node (Sensor Node – ESP32)
  2. Relay Node (Intermediate Repeater – ESP8266)
  3. Receiver Node (Base Station – ESP8266)

Each node is optimized for its role ,keeping the system cheap, scalable, and reliable.

Transmitter Node (ESP32 + GPS + Sensors)

Role: Detect events → collect GPS → send alert via LoRa.

Hardware

  • ESP32
  • SX1278 LoRa module
  • GPS module
  • Flame sensor
  • Accelerometer (shock detection)
  • Li-ion battery + power management


Figure 1 illustrates the block diagram for the transmitter circuit, centered around the ESP32 microcontroller. This central processor interfaces with multiple input modules: it receives location data from the GPS Module (via UART), fire alerts from the Flame Sensor, and shock/motion data from the Accelerometer (via I2C). When an event is triggered, the ESP32 formats a data packet and sends it to the LoRa SX1278 transceiver (via SPI) for long-range wireless transmission. The entire node is powered by a dedicated battery and power management system.

  • What It Does

  • Continuously monitors:
    • Fire
    • Sudden vibrations/shocks
  • Reads accurate GPS coordinates
  • Formats a compact alert packet
  • Sends it over LoRa to the nearest relay node

Firmware Algorithm (Transmitter Node - ESP32)





Figure 2 shows the transmitter's flowchart. Upon startup, the ESP32 initializes all sensors (GPS, flame, accelerometer) and the LoRa module. It then enters a continuous loop, monitoring sensor data against predefined thresholds. If a fire or seismic threshold is breached, the node immediately acquires its GPS location, formats an alert packet with the event data, and transmits it via LoRa before returning to its monitoring state.

Packet structure:
[ Event | Latitude | Longitude]

This is the “brain” of the system ,fully automatic, no internet needed.

 Relay Node (ESP8266 + LoRa)

Role: Extend communication range by forwarding packets.

Hardware

  • ESP8266

  • SX1278 LoRa module

  • RX/TX indicator LEDs

  • Battery/solar power support

Figure 3 shows the block diagram for the relay node. The central component is the ESP8266 microcontroller, which manages all operations. It is connected via SPI to the LoRa SX1278 transceiver, handling both the reception and re-transmission of data packets. Two LEDs (one for RX, one for TX) are connected to the ESP32's GPIO pins to serve as visual status indicators. A dedicated power management system with a battery provides power to the entire node.

         


                 

How It Works

  • Always in listening mode

  • When it receives a packet:

    • Flash RX LED

    • Immediately re-transmit the same packet

    • Flash TX LED

Firmware Algorithm (Relay  Node - ESP8266)

Figure 3.3 shows the flowchart for the Intermediate/Relay Node, which acts as a "store- and-forward" repeater. The ESP32 initializes its LoRa module and the RX/TX status LEDs, then enters an infinite listening loop. Upon receiving a valid LoRa packet, it immediately flashes the RX LED to signal reception. It then re-transmits the identical packet via LoRa to extend the network's range, flashes the TX LED to signal transmission, and immediately returns to its listening state.




Relay nodes are intentionally simple and cheap so many can be deployed across an area ,on trees, poles, rooftops forming a long-range communication chain.

Receiver Node (Base Station – ESP8266)

Role: Display alerts and notify rescue teams.

Hardware

  • ESP8266

  • SX1278 LoRa module

  • OLED display

  • Buzzer

Figure 3.6 shows the block diagram for the receiver circuit. The ESP8266 microcontroller is the central processor. It receives incoming alert data from the LoRa SX1278 module (via SPI). Upon packet reception, it simultaneously displays the alert information on the OLED screen (via I2C) and triggers the Buzzer (via GPIO) to create an audible alarm. The entire base station is powered by a dedicated power supply.


Firmware Algorithm (Receiver Node - ESP8266)

Figure 3.5 shows the flowchart for the Receiver (Base Station) circuit. The ESP8266 microcontroller first initializes the LoRa module, the OLED display, and the buzzer. It then prints a "System Online" or "Waiting" message to the OLED. The system enters a continuous loop, constantly listening for an incoming LoRa packet. When a packet is received, the ESP8266 parses the data to extract the event type and GPS coordinates, displays this critical information on the OLED, and sounds the buzzer to create an audible alert.


Features

  • Continuously listens for incoming alerts

  • Parses event + coordinates

  • Displays the alert on OLED

  • Activates buzzer for an audible alarm

  • No PC or software needed — plug and use

This acts as the command center for emergency teams.

Communication Flow (Simple Explanation)

  1. Event detected (fire or shock)

  2. Transmitter reads GPS location

  3. ESP32 sends alert via LoRa

  4. Relay nodes repeat the packet, extending the range

  5. Base station receives it

  6. OLED shows:

    • Event type

    • Coordinates

  7. Buzzer rings for emergency notification

This chain works even in remote areas, collapsed cities, forests, or mountains.

Firmware Overview

Transmitter (ESP32)

  • Initialize sensors + GPS + LoRa

  • Monitor thresholds

  • Build & send alert packet

  • Return to monitoring state

Relay Node

  • Listen → receive → retransmit

  • Very lightweight firmware

Receiver Node

  • Listen

  • Parse packet

  • Update OLED

  • Trigger buzzer

All nodes run fully offline, no cloud, Wi-Fi, or external services.

Tools Used

  • Arduino IDE – coding + debugging

  • Serial Plotter – tuning accelerometer thresholds

  • Serial Monitor – packet flow validation

  • Draw.io – diagrams & flowcharts

  • Notion – project management

  • Smartphone GPS App – accuracy testing


Testing & Results

✔ Long-Range Communication

  • Achieved 1 km in semi-urban environment (LoS)

Figure displays the Arduino IDE's Serial Monitor, serving as the debugging terminal for the Transmitter node. This screenshot captures the live data output, showing the successful acquisition of GPS coordinates, the status of the flame sensor and the dynamic values from the accelerometer (imitating seismic activity). Most importantly, it provides the LoRa status, confirming that the formatted alert packet has been successfully queued and transmitted.

 


  

Figure  shows the Arduino IDE's Serial Monitor for the Receiver (Base Station) node. This screenshot validates the final step of the communication link, displaying the incoming alert data as it is received via LoRa. It shows the successfully parsed information, such as " FIRE" and the associated GPS coordinates, confirming a successful end-to-end data transmission from the transmitter.


✔ Accurate GPS Transmission

  • Verified against mobile GPS

  • Reliable coordinate packet delivery


Figure  demonstrates the live testing and validation of the transmitter's GPS module. The ESP32 transmitter node (foreground) has successfully acquired a GPS lock. The tablet screen in the background is used to verify these coordinates on a map, showing the precise location (blue dot) of the transmitter. This confirms the system's critical geotagging capability.


✔ Multi-Hop Relaying

  • Packets successfully forwarded through relay chain

  • No duplication or loss after filtering

✔ Power Efficiency

  • LoRa modules run easily on battery

  • Designed for solar charging compatibility

✔ Field-Ready Workflow

  • Alerts are clear, loud, and easy to interpret

  • No technical knowledge required for rescuers.

Why This System Matters

This project solves a real-world problem:

  • Works without infrastructure

  • Ultra low power

  • Very long range

  • Affordable to deploy in large numbers

  • Reliable during emergencies

It provides a communication backbone in environments where traditional systems fail.

Future Upgrades

Here’s what I plan to add next:

  • AES-encrypted packets

  • Solar-powered enclosures

  • Mobile app for live map visualization

  • Self-healing mesh routing

  • Additional sensors (gas, temperature, water level)

  • Custom compact PCBs for deployment.

This project demonstrates a robust, low-cost, offline communication system using ESP32, ESP8266, and LoRa. It can detect disasters, transmit real-time alerts with location, extend coverage through relays, and notify command centers without needing any existing network.

It’s reliable, scalable, and built for real-world disaster scenarios.


Post a Comment

0 Comments