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.

131 lines
2.6 KiB
Markdown

# Comandos y calibracion Atlas Scientific EZO
Esta implementacion sigue los datasheets oficiales vigentes consultados para:
- EZO-pH, datasheet V6.1, revision 02/2024.
- EZO-DO, datasheet V5.8, revision 03/2025.
- EZO-EC, datasheet V5.5.
- EZO-RTD, datasheet V3.7, revision 10/2024.
## Transporte I2C
Los comandos son cadenas ASCII sin retorno de carro. Despues de escribir el
comando se espera el tiempo de procesamiento y se solicita la respuesta.
El primer byte de una respuesta I2C es:
| Codigo | Significado |
|---|---|
| `1` | Solicitud procesada correctamente |
| `2` | Error de sintaxis |
| `254` | Procesando; aun no esta lista |
| `255` | No hay datos |
El ejecutable `sensors/EZOCommand/EZO_COMMAND` implementa este intercambio y
reintenta las respuestas pendientes.
## Calibracion EZO-RTD
Calibracion de un punto:
```text
Cal,<temperatura>
Cal,?
Cal,clear
```
Ejemplo: `Cal,25.00`.
## Calibracion EZO-pH
Orden recomendado:
```text
Cal,mid,7.00
Cal,low,4.00
Cal,high,10.00
```
El punto medio siempre debe realizarse primero. Ejecutar `Cal,mid` sobre una
calibracion existente elimina los otros puntos. El estado se consulta con
`Cal,?` y la salud de la sonda con `Slope,?`.
## Calibracion EZO-DO
Un punto:
```text
Cal
```
Dos puntos, en este orden:
```text
Cal,0
Cal
```
`Cal,0` usa solucion de cero oxigeno. `Cal` usa la sonda estabilizada en aire
atmosferico. Compensaciones disponibles:
```text
T,<grados Celsius>
S,<conductividad en uS/cm>
S,<salinidad>,ppt
P,<presion en kPa>
```
## Calibracion EZO-EC
Primero se configura la constante de la sonda con `K,<valor>` y se realiza la
calibracion en seco:
```text
K,1.0
Cal,dry
```
Calibracion de dos puntos:
```text
Cal,dry
Cal,<valor>
```
Calibracion de tres puntos:
```text
Cal,dry
Cal,low,<valor>
Cal,high,<valor>
```
No se debe usar `Cal,0` en EC. El valor cero corresponde unicamente al paso
`Cal,dry`.
## Modos del backend
- `EZO_MODE=auto`: usa hardware si encuentra `/dev/i2c-1` y `EZO_COMMAND`;
de lo contrario usa demo.
- `EZO_MODE=hardware`: exige bus y ejecutable reales; si faltan, la API devuelve
error en vez de simular.
- `EZO_MODE=demo`: genera respuestas de desarrollo sin acceder al bus.
Para preparar Raspberry Pi:
```bash
make -C sensors/EZOCommand
sudo usermod -aG i2c $USER
EZO_MODE=hardware npm start
```
Es necesario cerrar sesion y volver a entrar despues de agregar el usuario al
grupo `i2c`.
## Fuentes oficiales
- https://files.atlas-scientific.com/pH_EZO_Datasheet.pdf
- https://files.atlas-scientific.com/DO_EZO_Datasheet.pdf
- https://files.atlas-scientific.com/EC_EZO_Datasheet.pdf
- https://files.atlas-scientific.com/EZO_RTD_Datasheet.pdf