Skip to content
This repository was archived by the owner on Feb 1, 2026. It is now read-only.

Other-Project/SI5-Forest-Fires

Repository files navigation

Forest fire prevention and detection

icon
Project realized by Evan Galli, Anthony Vasta and Sacha Castillejos
as part of the Fundamentals and challenges of cyber-physical systems, From IoT to cyber-physical systems and Development of cyber-physical systems courses.

Overview

This project simulates and monitors forest fires using a distributed cyber-physical system architecture. It collects sensor data from an edge environment, processes it in a fog layer, and visualizes it in the cloud.

Note

Some AI tools, including GitHub Copilot and Google Gemini, were used to help write parts of the code and documentation.

Getting Started

Prerequisites

Docker and Docker Compose must be installed on your machine to run the project.

UV is required to run the simulation outside of Docker.

Running the Project

The entire stack can be launched using the main compose file:

docker compose up -d --build

You might want to start the simulation manually to see the GUI updating in real-time:

docker compose stop simulation && uv --directory src/edge/simulation run main.py

You can do the same for the propagation service:

docker compose stop propagation && uv --directory src/fog/propagation run main.py

Accessing Services

Service URL Description Credentials
Web Application http://localhost Main Dashboard
Redpanda Console http://localhost:8080 Kafka/Redpanda Management
MinIO Console http://localhost:9090 Storage Management User: minioadmin, Password: minioadmin123
InfluxDB http://localhost:8086 Time Series Database User: admin, Password: adminpass123

Architecture

The system is divided into three layers:

  • Edge:
    • Simulation: Simulates environmental sensors (Temperature, Humidity, etc.) and sends data via MQTT.
    • Treatment: Receives raw sensor data, applies initial filtering, and forwards it to the fog layer via MQTT.
  • Fog:
    • Pre-treatment: Rust service to clean and format raw sensor data.
    • Propagation: Python service to calculate fire spread risks.
  • Cloud:
    • GeoJSON Producer: Generates map data for the frontend.
    • API: Rust backend serving data.
    • Web UI: React application for visualization.

Technologies

  • Languages: Rust, Python (with uv), TypeScript (SolidJS/Bun/Vite)
  • Messaging: MQTT (Mosquitto), Kafka (Redpanda)
  • Storage: MinIO, InfluxDB
  • Infrastructure: Docker

Demo

output_edit.mp4
webui1 webui2
simu1 simu2
redpanda redpanda_JSONdata
minIO influxDBstats

About

IoT system for forest fire risk analysis, early detection, and spread prediction

Resources

Stars

Watchers

Forks

Contributors