You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.1 KiB
3.1 KiB
Estado del Proyecto
Estado actual
El dashboard integra monitoreo en vivo, alarmas configurables, tendencias,
exportación CSV/Excel, consola EZO y calibración. La adquisición puede operar en
modo demo o en Raspberry Pi mediante /dev/i2c-1.
Arquitectura operativa
| Componente | Responsabilidad |
|---|---|
api/server.js |
API, históricos, configuración y comandos EZO |
api/acquisition.js |
Ciclo continuo de adquisición |
api/acquisition-service.js |
Escritura atómica de JSON/CSV y configuración |
sensors/EZOCommand/EZO_ACQUIRE |
Lectura agrupada de los cuatro EZO |
sensors/EZOCommand/EZO_COMMAND |
Comandos y calibración de un circuito |
frontend/ |
Dashboard, gráficas, alarmas, exportación y consola |
Los dos helpers C usan /tmp/photobioreactor-i2c.lock. El recolector inicia la
conversión de los cuatro sensores antes de esperar, por lo que comparte una sola
ventana de procesamiento en vez de bloquear un segundo por sensor.
Funciones implementadas
- Lecturas de RTD, pH, DO y EC con publicación en
data/*.json. - Históricos normalizados como
logs/temperature.csv,ph.csv,do.csvyec.csv, todos con formatotimestamp,value. - Escritura atómica de JSON y estado
online: falseante fallos globales o lecturas individuales inválidas. - Detección de datos obsoletos con tolerancia proporcional a la frecuencia.
- Frecuencia persistente de 1, 5, 10 o 60 segundos en
config/runtime.json. - Exportaciones alimentadas por CSV reales, sin generación aleatoria en la API.
- Verificación automática
Cal,?después de una calibración enviada desde web. - Chart.js 4.5.1 y SheetJS 0.20.3 instalados localmente.
- Servicios systemd, configuración Nginx e instalador para Raspberry Pi.
Configuracion parcial de sensores
config/runtime.jsonguardaenabledSensors.- Los sensores deshabilitados se muestran como
DESHABILITADO. - Un sensor deshabilitado no cuenta como
OFFLINE, alarma ni riesgo global.
Modos
EZO_MODE=demo: adquisición y comandos simulados.EZO_MODE=auto: hardware cuando existen el bus y los helpers; demo en otro caso.EZO_MODE=hardware: producción estricta; un despliegue incompleto falla y no genera valores simulados.
Verificación realizada
- 16 pruebas automáticas aprobadas.
- Validación sintáctica de todos los JavaScript modificados.
- Dashboard, Chart.js, SheetJS y comando pH comprobados por HTTP en modo demo.
npm audit --omit=dev: cero vulnerabilidades conocidas.
La compilación ARM, el bus I2C, la estabilidad de las sondas y las calibraciones metrológicas solo pueden verificarse en la Raspberry Pi con hardware real.
Trabajo pendiente en hardware
- Ejecutar
i2cdetect -y 1y confirmar0x61,0x63,0x64y0x66. - Compilar ambos helpers con
make -C sensors/EZOCommand. - Validar
i,Status,RyCal,?individualmente. - Realizar las calibraciones con soluciones de referencia.
- Probar desconexiones, reinicio automático y operación continua de varias horas.
Consulte docs/RASPBERRY_PI_DEPLOYMENT.md para el procedimiento completo.