Embedded data acquisition system (DAQ) for real-time monitoring of temperature, pH, DO, and EC in photobioreactors using Raspberry Pi and Atlas Scientific EZO modules via galvano-isolated I2C.
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.
 
 
 
 
 
 
EMOTIONS-HUNTER bcbee4e479 Integrar adquisición y despliegue en Raspberry Pi 1 month ago
api Integrar adquisición y despliegue en Raspberry Pi 1 month ago
config Integrar adquisición y despliegue en Raspberry Pi 1 month ago
data Enfoque más profecional uso de codex y cambio a gémini 1 month ago
deployment Integrar adquisición y despliegue en Raspberry Pi 1 month ago
docs Integrar adquisición y despliegue en Raspberry Pi 1 month ago
frontend Integrar adquisición y despliegue en Raspberry Pi 1 month ago
images Primer commit: Estructura base del proyecto Implementación de un Sistema de Monitoreo de Temperatura Basado en Raspberry Pi, Sensor EZO™ RTD y Sonda PT1000 Completada 2 months ago
logs Enfoque más profecional uso de codex y cambio a gémini 1 month ago
node_modules Estructura final del dashboard, archivos markdown de documentacion y prompt de fases 1 month ago
scripts Integrar adquisición y despliegue en Raspberry Pi 1 month ago
sensors Integrar adquisición y despliegue en Raspberry Pi 1 month ago
test Integrar adquisición y despliegue en Raspberry Pi 1 month ago
.gitignore Integrar adquisición y despliegue en Raspberry Pi 1 month ago
ARCHITECTURE.md Integrar dashboard y control EZO por I2C 1 month ago
PROJECT_STATUS.md Integrar adquisición y despliegue en Raspberry Pi 1 month ago
README.md Integrar adquisición y despliegue en Raspberry Pi 1 month ago
package-lock.json Integrar adquisición y despliegue en Raspberry Pi 1 month ago
package.json Integrar adquisición y despliegue en Raspberry Pi 1 month ago

README.md

Photobioreactor Dashboard

Sistema de monitoreo para Raspberry Pi y circuitos Atlas Scientific EZO:

Variable Circuito Dirección Unidad
Temperatura EZO-RTD 0x66 °C
pH EZO-pH 0x63 pH
Oxígeno disuelto EZO-DO 0x61 mg/L
Conductividad EZO-EC 0x64 µS/cm

El sistema incluye dashboard responsive, históricos Chart.js, alarmas, exportación CSV/Excel, consola de comandos y panel de calibración.

Arquitectura

EZO por I2C
    |
EZO_ACQUIRE / EZO_COMMAND
    |
Recolector Node ---------> data/*.json
    |                      logs/*.csv
    |
API Express <------------ Dashboard
    ^
    |
Nginx

EZO_ACQUIRE obtiene las cuatro lecturas en un ciclo agrupado. EZO_COMMAND ejecuta comandos interactivos y calibraciones. Ambos comparten el bloqueo /tmp/photobioreactor-i2c.lock.

Desarrollo sin sensores

npm ci
npm test

Ejecute en dos terminales:

EZO_MODE=demo npm run acquire
EZO_MODE=demo npm start

Abra http://localhost:3000/frontend/index.html.

En PowerShell:

$env:EZO_MODE = "demo"
npm run acquire

Y en una segunda terminal:

$env:EZO_MODE = "demo"
npm start

Raspberry Pi

El despliegue de producción usa EZO_MODE=hardware, systemd y Nginx:

chmod +x scripts/install-raspberry-pi.sh
sudo ./scripts/install-raspberry-pi.sh

La guía de preparación, detección I2C, calibración y prueba integral está en docs/RASPBERRY_PI_DEPLOYMENT.md.

Archivos de datos

  • Lecturas actuales: data/EZORTD.json, EZOPH.json, EZODO.json, EZOEC.json.
  • Históricos: logs/temperature.csv, ph.csv, do.csv, ec.csv.
  • Umbrales: config/alarms.json.
  • Frecuencia de adquisición: config/runtime.json.

Los CSV usan una única nomenclatura y el formato:

timestamp,value
2026-06-22T12:00:00.000Z,25.123

Documentación

No se utiliza un driver personalizado del kernel. Linux ya proporciona la capa I2C mediante /dev/i2c-1; el protocolo ASCII, la adquisición y la calibración se mantienen en espacio de usuario para facilitar mantenimiento y diagnóstico.