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.
78 lines
2.7 KiB
Markdown
78 lines
2.7 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
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.
|