AGROASTRA — Plataforma IoT + IA para Invernaderos
Sistema que combina IoT, vision por computadora y machine learning para predecir cosechas y optimizar el rendimiento agricola en invernaderos cerrados y semi-cerrados.
El Reto
Los productores de invernadero (con foco inicial en pimiento) operan con cuadernos, hojas de calculo y olfato del agronomo para decidir cuando regar, ventilar y prever la cosecha. Cada error cuesta dias de produccion: sustrato seco que estresa la planta, picos de radiacion sin ajustar el sombreo, o cosecha proyectada con dos semanas de error que tira la planeacion logistica.
El reto no era solo digitalizar sensores: era construir una plataforma que recibiera datos de IoT en tiempo real, almacenara series de tiempo eficientemente, procesara imagenes de las plantas con vision por computadora para detectar etapa fenologica y plagas, y generara proyecciones de cosecha con modelos de machine learning — todo escalable a multiples invernaderos sin reescribir la BD cada vez.
Adicionalmente, no podia ser una aplicacion negra ni con un dashboard generico. El agronomo tenia que ver, en una sola vista, sensores activos, fotos recientes con anotaciones de IA, y la prediccion de cosecha de los proximos 14 dias para tomar decisiones operativas.
La Solucion
Construimos un backend Python 3.12 + FastAPI con documentacion Swagger automatica, autenticacion OAuth2 + JWT y 4 roles (admin, agronomo, operador, cliente). El stack incluye PostgreSQL para datos de negocio, TimescaleDB extendiendo PostgreSQL para series de tiempo de sensores (escala lineal con millones de lecturas), Redis como caché y cola, y Celery para tareas asincronas pesadas (procesamiento de imagenes, calculo de proyecciones).
El motor de IA corre con PyTorch 2.1 + torchvision para clasificacion de etapa de desarrollo, conteo de frutos, deteccion de plagas y analisis de coloracion. OpenCV se usa para preprocesamiento (recorte, segmentacion, normalizacion). Los modelos scikit-learn complementan con regresion para estimar fechas y rendimientos de cosecha. Las imagenes se guardan en AWS S3 y los embeddings se preparan para busqueda semantica con pgvector (planificado).
Toda la infraestructura corre en Docker Compose en desarrollo y Heroku en produccion via heroku.yml. Migraciones versionadas con Alembic. Monitoreo con Prometheus para metricas y Flower para observar la cola de Celery. Tests con pytest + pytest-asyncio.
Features Clave
API REST FastAPI con Swagger Automatico
Documentacion Swagger generada de los esquemas Pydantic. Endpoints para sensores, imagenes, cosecha y usuarios. Autenticacion OAuth2 + JWT. Sin documentacion manual desactualizada.
Series de Tiempo con TimescaleDB
TimescaleDB extiende PostgreSQL para hipertablas de sensores. Continuous aggregates para resumir datos por hora/dia automaticamente. Escala lineal con millones de lecturas — sin perder consultas rapidas.
Vision por Computadora con PyTorch + OpenCV
Clasificacion de etapa fenologica, conteo de frutos por foto, deteccion de plagas/enfermedades y analisis de coloracion. Modelos PyTorch fine-tuned, preprocesamiento OpenCV. Las fotos llegan via app/web y se procesan async en Celery.
Prediccion de Cosecha con Machine Learning
Modelos scikit-learn + PyTorch que combinan datos de sensores (temperatura, humedad, radiacion, humedad del sustrato) con etapa fenologica detectada por IA para estimar fechas de cosecha y rendimiento esperado.
RBAC con 4 Roles Especializados
Admin (gestion total), Agronomo (vision tecnica + decisiones), Operador (registro de campo), Cliente (vista resumen y reportes). Cada rol ve solo lo necesario.
Tareas Asincronas con Celery + Redis
Procesamiento de imagenes, calculo de proyecciones y notificaciones corren en background. La API responde rapido aunque haya 200 fotos en cola. Monitoreo con Flower para observar la cola en vivo.
Como se Ve
Dashboard del Agronomo
Vista principal con metricas en tiempo real de sensores, alertas activas, ultimas fotos procesadas con anotaciones de IA y prediccion de cosecha de los proximos 14 dias.
Pipeline de Imagenes con IA
Foto subida desde campo → procesamiento en Celery → anotaciones de etapa fenologica + conteo de frutos + deteccion de plagas. Vista de revision con la imagen original y la anotada lado a lado.
Series de Tiempo de Sensores
Graficas de TimescaleDB con datos de temperatura, humedad y radiacion solar agregados por hora/dia. Filtros por invernadero, sensor y rango de fechas.
Reporte de Prediccion de Cosecha
Estimacion de fecha de cosecha con intervalos de confianza, rendimiento esperado en kg, y desglose por surcos del invernadero. Exportable como PDF.
Detalles Tecnicos
| Componente | Tecnologia |
|---|---|
| Backend | Python 3.12 + FastAPI |
| Base de datos | PostgreSQL 15 + TimescaleDB (series de tiempo) |
| ORM | SQLAlchemy + Alembic (migraciones) |
| Cache & cola | Redis (cache + Celery broker) |
| Async tasks | Celery (procesamiento de imagenes, predicciones) |
| Computer Vision | PyTorch 2.1 + torchvision + OpenCV |
| Machine Learning | scikit-learn (regresion para cosecha) |
| Storage | AWS S3 (imagenes y videos de cultivos) |
| Auth | OAuth2 + JWT con 4 roles |
| Monitoreo | Prometheus + Flower (Celery) |
| Despliegue | Docker Compose (dev) + Heroku (prod, heroku.yml) |
| Testing | Pytest + pytest-asyncio con cobertura |
Resultados
Temp/Humedad/Radiacion/Sustrato
Sensores soportados
4 (admin/agronomo/operador/cliente)
Roles con permisos
Fase 1 completada
Estado del backend
PostgreSQL + TimescaleDB + Redis
Bases de datos
PyTorch + OpenCV
Vision por computadora
Fechas y rendimientos de cosecha
Tipo de prediccion
Servicios relacionados
¿Tienes una operacion donde los datos cambian segundo a segundo y necesitas decisiones rapidas?
Construimos plataformas con IoT, series de tiempo y modelos de IA — desde el sensor hasta el dashboard, sin atajos.