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.

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.json y data/EZOEC.json cada 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-DO y EZO-EC tienen 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

  1. Crear daemons continuos para EZO-pH, EZO-DO y EZO-EC.
  2. Verificar la capa I2C y cada rutina de calibracion con las sondas fisicas.
  3. Hacer que la frecuencia de registro configure los daemons.
  4. Servir Chart.js y SheetJS localmente para despliegues sin internet.
  5. Agregar pruebas de navegador para el dashboard completo.