← All projects

Every bin, a signal

EcoRoute

Smart-bin network for subdivision waste collection: ESP32 telemetry over MQTT, fill prediction, and HOA dashboards that dispatch trucks to bins that actually need pickup.

ESP32MQTTBunHonoReactViteDrizzlePostgreSQLPostGISOR-ToolsOpenRouteServicePythonFastAPI
EcoRoute marketing hero: Every bin, a signal.
Every bin, a signal

Problem

Cebu subdivisions still collect on fixed calendars. Some bins overflow mid-week; others get a truck visit while half empty. There is no feedback loop from the field to dispatch.

Architecture

Product flow

Every bin reports fill. Forecasts surface which ones will breach next. Trucks only visit the shortlist, and the HOA dashboard stays the operator surface.

My responsibility

I owned the multi-tenant backend and admin dashboard: Bun + Hono APIs, Drizzle on PostgreSQL/PostGIS, MQTT telemetry ingest, the IDW fill heatmap, route generation plumbing, and the operator surfaces HOA admins actually use.

Decision

Treat every bin as a live signal. Fuse three ultrasonic readings (IR-gated) into fill state, publish over MQTT into a shared telemetry processor, forecast time-to-threshold, then shortlist bins and solve CVRP with OR-Tools using OpenRouteService road distances when available, with Haversine nearest-neighbor fallback.

What could fail

Uneven piles fooling a single sensor, lid-open echoes, MQTT drops, offline bins, bad GPS, and route solves that time out or ignore truck capacity.

How I made it reliable

Triangular sensor fusion plus IR lid gating rejects disposal noise. MQTT ingest validates payloads before writes; HTTP device fallback exists when the broker path fails. Route generation falls back to nearest-neighbor if the AI service is down. Multi-tenant subdivision scoping keeps HOA data isolated.

Result

Defended and passed University of Cebu Banilad capstone with a working hardware prototype and multi-tenant ops dashboard. Marketing site at ecoroute-about.pages.dev; ops dashboard at ecoroute.yeems214.xyz.