proyectos

Awita

Monitor IoT de agua para regiones con suministro irregular. Un Arduino mide el nivel del tanque cada minuto, el dashboard lo muestra en vivo, y las alertas por correo avisan antes de que se acabe. Lleva más de un año funcionando en el tanque de mi casa.

Proyecto Personal
Main image
1/3
Thumbnail 2
Thumbnail 3

El Problema

En Baja California, el agua no está garantizada. Muchos hogares dependen de pipas que llegan en horarios irregulares, y los tanques de almacenamiento son el único amortiguador entre tener agua y quedarse seco. Quería construir algo que te dijera exactamente cuánta agua te queda y te avisara antes de que se acabe.

Cómo Funciona

  1. 1Un Arduino con un sensor ultrasónico se coloca sobre tu tanque de agua, midiendo la distancia a la superficie cada 60 segundos.
  2. 2Las lecturas se envían a una Lambda de AWS mediante API Gateway, que calcula el porcentaje de agua y lo almacena en MySQL.
  3. 3Un dashboard en React muestra tu nivel actual de agua como un medidor animado, con gráficos históricos de 24 horas, 7 días y 30 días.
  4. 4Alertas por correo te notifican cuando el agua baja de un umbral configurable o cuando el sensor deja de reportar (desconexión).

Qué Construí

Diseñé la arquitectura completa: firmware Arduino que se registra solo al primer arranque, Lambda para ingesta de sensores y envío de notificaciones, API NestJS detrás de API Gateway, y un SPA React con autenticación Clerk.

Construí un servicio de predicciones LSTM sobre FastAPI, entrenado con datos históricos e hiperparámetros optimizados con algoritmo genético y cacheado en Redis. Lo evalué contra la latencia que agregaba y lo apagué. Una regresión más simple es lo que construiría en su lugar.

Resultados

Alrededor de 1,440 lecturas diarias con menos de 100 ms por escritura. Lleva funcionando en el tanque de mi casa en Ensenada desde 2025, y mi papá y mi hermano también lo usan.

Tecnologías

ReactNestJSGoMySQLAWSArduino