Inspiration

EcoDragon was inspired by the idea that city environmental monitoring should not require expensive fixed infrastructure. Bikes already move through dense urban areas every day, so we turned a bike into a mobile edge sensing node that can detect trash, capture environmental conditions, and create an actionable city map for agencies.

## What It Does

EcoDragon collects street-level environmental and trash data from a bike-mounted sensor stack. The hardware reads temperature, humidity, and light, runs trash detection through an Edge Impulse model, calculates a toxicity/bio-decay level, and broadcasts the result over BLE. A Flutter mobile app connects to the edge node, adds phone GPS coordinates, and uploads records to Supabase. A React web dashboard then lets city agencies view Barcelona scan points on a Leaflet map, filter by trash/toxicity/time/weather conditions, inspect records, and switch between real Supabase data and demo data.

## How We Built It

We split the system across branches:

  • export for Edge Impulse/Qualcomm deployment.
  • origin/arduino-branch: Arduino Modulino sensor sketch, Python Flask camera/model service, toxicity scoring, low-light recording guard, and BLE GATT bridge.
  • origin/feature/app: Flutter mobile companion using BLE, background execution, GPS, Riverpod, and Supabase upload into city_scans.
  • web-ui: React + Vite + TypeScript agency dashboard using Leaflet, Supabase reads, filters, summary cards, map markers, table selection, and fake demo data.

## Challenges We Ran Into

constraints like camera index issues, low-light conditions, BLE background behavior, and model format compatibility. On the ML side, exporting models in a Qualcomm/Edge Impulse-friendly ONNX format required version and opset care.

## Accomplishments That We’re Proud Of

We built more than a mockup: EcoDragon has a real end-to-end architecture from edge sensing to mobile upload to agency visualization. We are proud of connecting hardware sensors, camera inference, BLE transport, GPS enrichment, cloud storage, and a usable city dashboard into one coherent workflow. The project also stayed demo-focused: fake data makes the dashboard usable immediately, while real-data mode connects to the live city_scans table.

## What We Learned

We learned that edge AI projects are mostly integration work: the model matters, but reliable data flow, payload normalization, timestamps, device permissions, and observability matter just as much. We also learned how useful a local-first demo architecture can be during a hackathon, because each layer could be tested independently before being connected.

Built With

Share this project:

Updates