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
- arduino
- bluetooth
- bluetooth-(ble)
- c
- css
- dart
- docker
- edge
- edge-impulse
- flask
- flutter
- hardware
- html
- impulse
- javascript
- leaflet.js
- modulino
- node.js
- onnx
- pandas
- postgresql
- python
- qualcomm
- randomforest
- react
- riverpod
- scikit-learn
- sensors
- supabase
- typescript
- vite
- yolov11
Log in or sign up for Devpost to join the conversation.