🌊 Dynamic LoRaWAN IoT Flood Monitoring System | Real-Time Telemetry & Early Warning Platform
An end-to-end IoT flood monitoring and early warning platform engineered for real-time telemetry, hazard detection, and remote environmental sensing. The system pairs remote Heltec LoRa ESP32 transmitter nodes equipped with ultrasonic sensors to measure water height and rate of change, transmitting data over a long-range sub-GHz link to a Raspberry Pi base station running a dark-themed Flask dashboard.
📈 Dash Board
Will be added soon
🖼️ Prototype Concept Photos
More photos will be added in the future
🎥 Project Demo Videos
COMING SOON
🚀 Project Overview
This project was developed to provide dependable, off-grid flood telemetry and rapid risk assessment. Built around a master-slave communication architecture, the remote sensor node handles continuous distance sampling and battery health tracking, sending packet updates via long-range wireless to the local receiver. The base station processes telemetry data, calculates rate of change metrics, and serves an offline-resilient dashboard for desktop and mobile clients.
Key Features
- 📡 Sub-GHz Long-Range Telemetry: Utilizes 915MHz LoRa radios (Heltec ESP32 V3) to maintain dependable data transmission across extended distances without reliance on cellular networks.
- 📊 Dual-Axis Real-Time Charting: Powered by Chart.js, visualizing both absolute Water Level and Rate of Change side-by-side to detect rapid water accumulation trends.
- 🚨 Automated Risk Assessment State Machine: Continually evaluates telemetry against configurable thresholds, driving dynamic indicators across
NORMAL,ALERT, andDANGERwarning levels. - 🔋 Dual-Node Power Telemetry: Tracks remote battery voltage at the TX transmitter while monitoring power grid stability at the RX base station node.
- 📜 System Event Logging Terminal: Integrates a persistent backend
/logsendpoint with an in-dashboard terminal modal for real-time diagnostic auditing and event history tracking. - 🌐 Self-Hosted Offline-First Dashboard: Features a Flask web server running locally on a Raspberry Pi, complete with locally bundled script assets for 100% network self-reliance.
🛠️ Tech Stack & Hardware
- Languages: C++, Python, HTML5, CSS3, JavaScript
- Backend & Server: Python Flask, REST API Architecture, Linux (Raspberry Pi OS)
- Firmware & Hardware: Arduino IDE, ESP32 (Heltec LoRa V3), Waterproof Ultrasonic Sensor (JSN-SR04T), 915MHz Antenna
- Frontend Libraries: Chart.js, Google Fonts (Rajdhani & Share Tech Mono)
- Protocols & Routing: Sub-GHz LoRa, HTTP/REST JSON endpoints (
/data,/logs,/clients)
👤 My Role: Lead Embedded & Full-Stack Developer
I engineered the complete hardware-to-software ecosystem, leading both firmware development on the microcontroller and backend/frontend implementation on the Raspberry Pi:
- End-to-End Data Pipeline: Designed the transmission pipeline from raw ultrasonic distance sampling and calibration on the ESP32 transmitter to JSON payload parsing on the Python Flask backend.
- Interactive UI/UX & Data Visualization: Built the scannable, dark-themed responsive dashboard, implementing dynamic gauge elements, dual-axis trend graphs, and custom CSS status indicators.
- Rate-of-Change Algorithmic Logic: Developed mathematical parsing logic to calculate real-time water elevation velocity, enabling automated trigger alerts before dangerous thresholds are reached.
- Diagnostics & System Robustness: Built the integrated log ingestion server and local asset fallback mechanisms to ensure system functionality during off-grid operations.