Alejandro Delgado Cardona
Portafolio Ingeniería de software León, MX · 2026
← Trabajo seleccionado
Tipo
Diseño y desarrollo · full-stack + firmware
Año
2025
Stack
ESP32-CAM · .NET 9 · OpenAI Vision
Colaboradores
Jonathan Moreno Muñoz · Vayron Abraham Granados Conchas · Brandon Esaú Montoya Ortiz
Enlaces
Demo

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 con 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 con 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 con 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 más un estado de error para imágenes que no son claras.

Decisiones técnicas

  • Inferencia por un modelo de visión (yolov8 o gpt-4o) detrás de la API, con un contrato de respuesta estricto. Tres labels, orgánico, valorizable y no valorizable, para que tanto el modelo, 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, cada miembro trabaja y colabora de manera eficiente.

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.

Es un prototipo académico, no un producto comercial, por lo tanto quedan fuera de alcance, a propósito, el despliegue productivo y venta real.