BreezeMap
BreezeMap pairs custom Polverine ESP32 hardware sensors with a FastAPI/PostGIS backend and a live React + Leaflet dashboard to map street-level air quality in real time.

BreezeMap is a full-stack, IoT-driven air quality monitoring system built around custom Polverine ESP32 hardware sensors mounted on vehicles, giving it a mobile, street-level view of pollution instead of relying on a handful of fixed monitoring stations. The live deployment maps real commute corridors across Dhaka, Bangladesh, one of the most polluted cities in the world.
Each Polverine sensor unit pairs a Bosch BME690 (temperature, humidity, VOC/CO2-equivalent) with a Bosch BMV080 particulate matter sensor (PM1/PM2.5/PM10) and a u-blox GPS module on an ESP32. Two firmware variants support different field conditions: an always-connected mode that streams a reading every 6 seconds, and an offline-first mode that logs to an SD card and uploads only when a physical button is held for 3 seconds, useful for vehicles without persistent connectivity. An RGB LED status machine communicates GPS lock, logging state, and upload progress on the headless device.
A FastAPI and PostgreSQL/PostGIS backend ingests readings, automatically segments them into per-device routes stored as PostGIS LineStrings, and continuously recomputes route-level pollution stats. A location-analysis endpoint aggregates readings from every device within a configurable radius of any point on the map. Devices authenticate with a static API key, while dashboard users authenticate through Firebase with admin custom claims.
A React, TypeScript, and Leaflet dashboard renders live device positions and color-coded pollution routes on a map, with a scrubbable timeline spanning up to a year of history, per-route detail charts, CSV export, and an admin panel for white-label branding and user management.



