proyectos

Awita

Construí este sistema para que mi familia no se quede sin agua. Un Arduino mide el tanque cada minuto, AWS procesa las lecturas y un panel en React muestra el nivel y envía alertas. Lleva más de un año funcionando en 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. 1 Un Arduino con un sensor ultrasónico se coloca sobre tu tanque de agua, midiendo la distancia a la superficie cada 60 segundos.
  2. 2 Las lecturas se envían a una Lambda de AWS mediante API Gateway, que calcula el porcentaje de agua y lo almacena en MySQL.
  3. 3 Un 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. 4 Alertas 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

React NestJS Go MySQL AWS Arduino