2.7 KiB
Estado del Proyecto
Estado actual
El dashboard integra monitoreo en vivo, alarmas configurables, tendencias historicas, exportacion de datos y una consola Atlas Scientific EZO capaz de usar I2C real en Raspberry Pi o modo demo en desarrollo.
Funciones operativas
- Lectura de
data/EZORTD.json,data/EZOPH.json,data/EZODO.jsonydata/EZOEC.jsoncada segundo. - Evaluacion de alarmas mediante
config/alarms.json. - Graficas Chart.js alimentadas por los CSV de
logs/. - Intervalo configurable para actualizar graficas.
- Exportacion CSV y Excel usando datos historicos simulados de la API.
- Borrado real de los cuatro CSV mediante
POST /api/history/clear, conservando sus encabezados. - API Express con validacion basica para sensores, comandos y frecuencia de registro simulada.
- Pruebas automaticas de los endpoints principales con
node --test.
Arquitectura de datos
| Funcion | Fuente actual |
|---|---|
| Lecturas en vivo | Archivos JSON en data/ |
| Alarmas | config/alarms.json |
| Graficas | Archivos CSV en logs/ |
| Exportaciones | API Express con datos simulados |
| Comandos y calibracion | API Express + EZO_COMMAND en hardware; demo fuera de Raspberry Pi |
Nginx sirve los archivos estaticos y redirige /api/* al proceso Express en el
puerto 3000.
Para desarrollo local, Express tambien sirve exclusivamente frontend/,
data/, logs/ y config/. El dashboard puede abrirse directamente en
http://localhost:3000/frontend/index.html sin configurar Nginx.
Hardware
EZO-RTD,EZO-pH,EZO-DOyEZO-ECtienen ejecutables C de lectura unica.- Los Makefiles usan los objetos correspondientes a cada modulo.
- El daemon continuo existente corresponde solamente a EZO-RTD.
- La conexion de comandos web con el bus I2C real usa
sensors/EZOCommand/EZO_COMMAND. - La frecuencia seleccionada en la interfaz afecta solamente al backend simulado; no reconfigura los procesos C.
Dependencias externas
- Express y CORS mediante npm.
- Chart.js mediante CDN.
- SheetJS mediante CDN.
Para operar sin internet en la Raspberry Pi se recomienda almacenar Chart.js y
SheetJS localmente dentro de frontend/vendor/.
Verificacion
Ejecutar:
npm test
npm start
La compilacion de los controladores C debe verificarse en Raspberry Pi OS,
porque depende de /dev/i2c-1 y de los encabezados Linux I2C.
Trabajo pendiente
- Crear daemons continuos para EZO-pH, EZO-DO y EZO-EC.
- Verificar la capa I2C y cada rutina de calibracion con las sondas fisicas.
- Hacer que la frecuencia de registro configure los daemons.
- Servir Chart.js y SheetJS localmente para despliegues sin internet.
- Agregar pruebas de navegador para el dashboard completo.