iot · visión por computadora
Clasificador Automático de Basura
Una estación física que ve un residuo, lo clasifica con IA y abre solo el contenedor correcto: del sensor al servo, pasando por una API y una app.
Construido · prototipo académico, no comercial
Contexto
Separar bien la basura depende de que una persona reconozca el material justo en el momento de tirarlo, y casi nunca pasa. Quise comprobar si un dispositivo de bajo costo podía tomar esa decisión por sí mismo y accionar la separación, sin depender de que el usuario sepa de reciclaje.
Lo que construí
Un sistema completo de punta a punta, en tres piezas que se comunican entre sí:
- Estación física — ESP32-CAM y firmware en C++. Un sensor ultrasónico detecta que se acerca un residuo, la cámara toma una foto y, según la categoría que devuelve el servidor, un controlador de servos (PCA9685) abre el contenedor correcto: orgánico, valorizable o no valorizable.
- API central — ASP.NET Core / .NET 9. Recibe la imagen, la clasifica, guarda la detección y devuelve la categoría. Maneja usuarios con JWT, zonas, clasificadores, estadísticas e inventario, sobre SQL Server con Entity Framework Core.
- App Android — Kotlin y Jetpack Compose. Permite clasificar desde el teléfono con CameraX y consultar estadísticas de uso por tipo, zona, horario y tendencia.
La clasificación distingue tres categorías operativas —orgánico, valorizable y no valorizable— más un estado de error para imágenes que no son claras.
Decisiones técnicas
- Inferencia por un modelo de visión (OpenAI Vision, gpt-4o) detrás de la API, con un contrato de respuesta estricto —una sola categoría— para que tanto el firmware como la app puedan actuar sin ambigüedad.
- El dispositivo no decide solo. Centralizar la inferencia y la persistencia en la API mantiene el firmware simple y, de paso, deja todo registrado para estadística y trazabilidad por zona y clasificador.
- Comunicación HTTP multipart entre el ESP32/Android y la API; cada detección se persiste para analítica.
- Responsabilidades separadas en tres repos (
cabapi,cabesp,cabmobile), uno por capa del sistema.
Resultado
Un sistema funcional de extremo a extremo: hardware que detecta y actúa, una API que clasifica y registra, y una app que clasifica y reporta. Su valor está en el rango —firmware embebido, IA, backend y móvil resueltos por una sola persona—.
Es un prototipo académico, no un producto comercial: quedan fuera de alcance, a propósito, el despliegue productivo y una batería de pruebas con un set de imágenes etiquetado para medir precisión por categoría.
TODO (datos reales, no inventar) — precisión por categoría, tiempo de inferencia y una foto o GIF del prototipo funcionando.