4.8 KiB
Diagnostico De Problemas
Guia practica para resolver fallas comunes en Raspberry Pi, sensores EZO y dashboard.
Ver Estado General
systemctl status photobioreactor-api --no-pager
systemctl status photobioreactor-acquisition --no-pager
systemctl status nginx --no-pager
Logs recientes:
journalctl -u photobioreactor-api --since "10 minutes ago" -l --no-pager
journalctl -u photobioreactor-acquisition --since "10 minutes ago" -l --no-pager
El Dashboard No Abre
- Confirme IP de la Raspberry:
hostname -I
- Confirme Nginx:
systemctl status nginx --no-pager
- Pruebe localmente:
curl http://127.0.0.1/frontend/index.html
curl http://127.0.0.1/api/system/ezo
- Desde otra computadora abra:
http://IP_DE_LA_RASPBERRY/frontend/index.html
No Aparece Un Sensor En i2cdetect
Detenga adquisicion:
sudo systemctl stop photobioreactor-acquisition
sudo rm -f /tmp/photobioreactor-i2c.lock
Revise bus:
i2cdetect -y 1
Direcciones esperadas:
| Sensor | Direccion |
|---|---|
| DO | 0x61 |
| pH | 0x63 |
| EC | 0x64 |
| RTD | 0x66 |
Si no aparece:
- Confirme alimentacion.
- Confirme GND comun si no hay aislamiento galvanico.
- Confirme SDA y SCL.
- Confirme que el circuito EZO esta en modo I2C.
- Revise que no haya una direccion cambiada.
Identificar Que Sensor Hay En Una Direccion
/opt/photobioreactor/sensors/EZOCommand/EZO_COMMAND /dev/i2c-1 0x63 300 i
/opt/photobioreactor/sensors/EZOCommand/EZO_COMMAND /dev/i2c-1 0x63 300 Status
/opt/photobioreactor/sensors/EZOCommand/EZO_COMMAND /dev/i2c-1 0x63 1000 R
/opt/photobioreactor/sensors/EZOCommand/EZO_COMMAND /dev/i2c-1 0x63 300 Cal,?
Cambie 0x63 por la direccion que quiera probar.
Ejemplos de identificacion:
?I,pH,2.17
?I,EC,2.14
?I,RTD,2.12
?I,DO,2.XX
?I,ORP,2.14
Si aparece ?I,ORP,..., ese modulo no es DO.
Error: No Se Pudo Bloquear El Bus I2C
Significa que el helper no pudo tomar:
/tmp/photobioreactor-i2c.lock
Solucion rapida:
sudo systemctl stop photobioreactor-acquisition
sudo rm -f /tmp/photobioreactor-i2c.lock
sudo systemctl start photobioreactor-acquisition
Si sigue fallando:
ls -ld /tmp
id photobioreactor
ls -l /dev/i2c-1
groups photobioreactor
ps -eo pid,user,stat,cmd | grep -E "EZO_ACQUIRE|EZO_COMMAND|acquisition.js" | grep -v grep
Prueba directa como usuario de servicio:
sudo -u photobioreactor /opt/photobioreactor/sensors/EZOCommand/EZO_ACQUIRE /dev/i2c-1 temperature ph ec
Si esta prueba responde JSON, el bus y permisos estan bien.
Error: EZO_COMMAND No Existe
Si esta en ~ o en otra carpeta, esta ruta puede fallar:
./sensors/EZOCommand/EZO_COMMAND
Use la ruta instalada:
/opt/photobioreactor/sensors/EZOCommand/EZO_COMMAND
O compile desde el repositorio:
make -C sensors/EZOCommand
El Servicio Dice 1/1, 2/2 O 3/3 Sensores
Eso significa que solo estan habilitados esos sensores en:
/opt/photobioreactor/config/runtime.json
Ejemplo con tres sensores:
{
"loggingRateSeconds": 5,
"historyRetentionDays": 30,
"enabledSensors": [
"temperature",
"ph",
"ec"
]
}
Despues de editar:
sudo systemctl restart photobioreactor-acquisition
SSH Se Vuelve Inestable
Posibles causas:
- Alimentacion insuficiente.
- Bus I2C bloqueado.
- Sensor mal cableado.
- Frecuencia de adquisicion muy agresiva durante pruebas.
- Raspberry reiniciandose.
Revise:
dmesg | tail -n 80
journalctl -u photobioreactor-acquisition --since "30 minutes ago" -p warning --no-pager
vcgencmd get_throttled
Si vcgencmd get_throttled no devuelve throttled=0x0, hay indicios de
problemas de alimentacion o temperatura.
Excel Pesa Mucho
Las graficas muestran solo el dia actual, pero Excel exporta el historico disponible en CSV.
Con 4 sensores a 1 lectura por segundo:
86,400 filas por sensor por dia
345,600 filas totales por dia
1,036,800 celdas en Excel si son 3 columnas
Por eso un Excel diario puede pesar decenas de MB. El CSV es mas eficiente.
Prueba De Estabilidad
Para dejarlo corriendo:
sudo systemctl stop photobioreactor-acquisition
sudo rm -f /tmp/photobioreactor-i2c.lock
sudo systemctl start photobioreactor-acquisition
Revisar errores:
journalctl -u photobioreactor-acquisition --since "1 hour ago" -p warning --no-pager
journalctl -u photobioreactor-api --since "1 hour ago" -p warning --no-pager
Revisar crecimiento de CSV:
wc -l /opt/photobioreactor/logs/temperature.csv
wc -l /opt/photobioreactor/logs/ph.csv
wc -l /opt/photobioreactor/logs/ec.csv
wc -l /opt/photobioreactor/logs/do.csv
Con loggingRateSeconds en 5, cada sensor debe sumar aproximadamente 720
filas por hora.