01 · Punto de partida
Del número a un dato confiable
Hasta ahora elegimos el sensor, lo conectamos y decidimos cada cuánto medir. Queda lo que ocurre entre la lectura y el envío. Un termómetro barato conectado a una entrada analógica puede marcar 21,3 °C cuando hay 20,0, variar unas décimas entre una lectura y la siguiente y, de pronto, informar 39,7 °C por una interferencia que dura un instante. Si ese número viaja a la nube tal cual, el panel mostrará picos falsos, las alarmas saltarán sin motivo y nadie confiará en el sistema.
La buena noticia es que cada tipo de problema tiene su remedio, y casi todos se aplican en el propio firmware con unas pocas líneas de código y unos pocos bytes de memoria. La mala es que cada remedio tiene su efecto secundario: un filtro que limpia el ruido también retrasa la señal. Mejorar la calidad es elegir qué problemas atacar y qué se está dispuesto a pagar por ello.
Cierra el bloque de sensores con una idea que resume los tres temas anteriores: la calidad de un dato se construye en el dispositivo, lectura por lectura.
02 · Clasificación
Cuatro clases de error
Antes de corregir hay que diagnosticar. Los errores de una medición se agrupan en cuatro clases, que se ven y se tratan de manera distinta.
| Clase | Cómo se ve | Causa típica | Remedio |
|---|---|---|---|
| Sistemático (sesgo) | Todas las lecturas se desvían igual: siempre 1,3 °C de más | Offset, error de ganancia, no linealidad, autocalentamiento | Calibración |
| Aleatorio (ruido) | Las lecturas «tiemblan» alrededor del valor | Ruido eléctrico, resolución limitada, interferencias | Promedio, filtro exponencial, sobremuestreo |
| Espurio (picos) | Lecturas aisladas muy lejos del resto | Interferencias breves, errores de comunicación, rebotes | Mediana, descarte de valores atípicos |
| Fallo (lectura inválida) | Valores imposibles o constantes: −127, 0, el último dato repetido | Cable cortado, sensor desconectado, bus caído | Validación, bandera de calidad y alarma |
Esta distinción evita un error común: filtrar para arreglar un sesgo no sirve, y calibrar para arreglar el ruido tampoco. Un sensor puede ser muy repetible (cada lectura casi igual a la anterior) y muy inexacto (todas lejos de la realidad). Diez lecturas de 25,31, 25,29 y 25,30 °C con una referencia que marca 24,0 °C indican un error sistemático de 1,3 °C: se corrige restando, no promediando.
03 · Corrección
Calibración
Calibrar es comparar el sensor con una referencia mejor y calcular una corrección que haga coincidir ambos. Sirve contra los errores sistemáticos. La corrección más simple es una recta:
El método depende de cuántos puntos de referencia se usen:
| Método | Qué se hace | Corrige | Limitación |
|---|---|---|---|
| De un punto | Se mide con el sensor una condición conocida y se resta la diferencia | Offset (el error constante) | No corrige el error que cambia con el valor medido |
| De dos puntos | Se mide en dos condiciones conocidas y se calculan ganancia y offset | Offset y ganancia | Supone que la respuesta es una recta |
| De varios puntos o curva | Se miden varios puntos y se ajusta una tabla o un polinomio | La no linealidad | Requiere más referencias y más cuidado |
Con dos puntos, si el sensor lee x1 cuando el valor real es r1 y lee x2 cuando es r2, la ganancia es g = (r2 − r1) / (x2 − x1) y la corrección es r1 + (x − x1) × g. Es una regla de tres que deja el sensor exacto en los dos puntos y razonable entre ellos.
Algunos sensores no son lineales por naturaleza. El termistor NTC del tema 7 relaciona temperatura y resistencia con una curva exponencial; se usa una ecuación del fabricante (parámetro β o ecuación de Steinhart-Hart) y la calibración ajusta sus constantes.
Tres cuidados prácticos al calibrar:
- La referencia debe ser mucho mejor que el sensor (al menos diez veces más exacta) y estar en las mismas condiciones: misma temperatura, mismo lugar, tiempo suficiente para estabilizarse (varias constantes de tiempo).
- Calibrar con el producto armado. El autocalentamiento de la placa, la carcasa y la alimentación son parte del error; calibrar el sensor suelto y después encerrarlo en la caja da otra medida.
- Guardar los coeficientes en memoria no volátil (en el ESP32, la zona NVS), con la fecha y el identificador del procedimiento. Así sobreviven a los reinicios y se pueden cambiar sin recompilar el firmware.
04 · Suavizado
Filtrado
Filtrar es combinar varias lecturas para obtener una mejor estimación del valor verdadero. Los métodos más usados en firmware son cuatro, y cada uno resuelve un problema distinto.
| Filtro | Cómo funciona | Bueno contra | Debilidad |
|---|---|---|---|
| Promedio de N lecturas | Suma de N lecturas dividida por N | Ruido aleatorio (lo reduce un factor √N) | Un solo pico contamina todo el promedio |
| Media móvil | Promedio de las últimas N lecturas, que se desplaza | Ruido, en una serie continua | Atrasa la señal y reparte los picos |
| Mediana de N | Se ordenan las últimas N lecturas y se toma la del medio | Picos aislados y valores atípicos | Alisa menos el ruido fino; algo más de cálculo |
| Filtro exponencial | y = y + α × (x − y), con α entre 0 y 1 | Ruido, con una sola variable de memoria | Arrastra los picos y atrasa la señal |
Dos ideas orientan la elección. Primera: contra los picos aislados, la mediana; un promedio los diluye entre varias lecturas, pero un pico de 8 °C sigue pesando 1 °C en un promedio de 8 durante ocho lecturas, mientras que una mediana de 5 lo descarta por completo. Segunda: todo filtro retrasa la señal. Cuanto más suave, más atrasa: un promedio de 8 lecturas de una variable que sube introduce un retraso de unas 3,5 lecturas, y un filtro exponencial con α = 0,2 retrasa unas 4. Para una variable lenta no importa; para una alarma, sí.
El filtro exponencial es el favorito del firmware por su economía: no necesita guardar un historial, solo el último valor filtrado. Cuanto menor es α, más suaviza y más tarda en seguir a la señal. Una mediana de 5 y un filtro exponencial se pueden encadenar: primero la mediana quita los picos y luego el exponencial alisa el ruido fino.
const int VENTANA = 5;
float ventana[VENTANA];
int cuantas = 0, siguiente = 0;
float filtrado = NAN; // último valor del filtro exponencial
const float ALFA = 0.2;
float mediana5(float nueva) {
ventana[siguiente] = nueva; // buffer circular con las últimas lecturas
siguiente = (siguiente + 1) % VENTANA;
if (cuantas < VENTANA) cuantas++;
float copia[VENTANA];
for (int i = 0; i < cuantas; i++) copia[i] = ventana[i];
for (int i = 1; i < cuantas; i++) { // ordenamiento por inserción (son pocos datos)
float x = copia[i];
int j = i - 1;
while (j >= 0 && copia[j] > x) { copia[j + 1] = copia[j]; j--; }
copia[j + 1] = x;
}
return copia[cuantas / 2];
}
float procesar(float lectura) {
float sinPicos = mediana5(lectura); // 1. descartar picos aislados
if (isnan(filtrado)) filtrado = sinPicos; // 2. arrancar el filtro con el primer valor
filtrado = filtrado + ALFA * (sinPicos - filtrado); // 3. alisar el ruido fino
return filtrado;
}
Observá la estructura: dos etapas simples encadenadas, cada una con un propósito. Los filtros más sofisticados, como el de Kalman, combinan un modelo de la señal con las lecturas; para la gran mayoría de los sensores de IoT, un buen par de filtros simples da resultados excelentes.
05 · Validación
Validación de las lecturas
Los filtros suponen que las lecturas son válidas. Los fallos no lo son, y hay que detectarlos antes: una lectura inválida procesada como válida contamina todo lo que viene después. Cuatro comprobaciones baratas atrapan casi todos los casos:
- Rango físico. ¿El valor está dentro de lo que el sensor puede medir y de lo que el fenómeno permite? Una temperatura de −127 °C (valor que algunas bibliotecas devuelven cuando un sensor se desconecta) o una humedad de 140 % son fallos evidentes.
- Tasa de cambio. ¿Es posible que la variable haya cambiado tanto desde la lectura anterior? Una habitación no sube 15 °C en un minuto.
- Valores centinela. Muchos sensores devuelven valores reservados para señalar un error o un estado inicial. Hay que conocerlos en la hoja de datos.
- Congelamiento. Una lectura que no cambia en absoluto durante mucho tiempo, en una variable que debería fluctuar, puede significar un sensor colgado.
Cuando una lectura no pasa la validación, la regla es: nunca reemplazarla por un cero ni por el último valor sin avisar. Un cero grafica como una caída real; un valor repetido oculta la falla. Lo correcto es marcar la lectura como inválida, no incluirla en los filtros y reportar el problema con una bandera de calidad (por ejemplo, «sensor sin respuesta»), que además sirve para generar una alarma de mantenimiento.
06 · Gestión del dato
Qué guardar, qué enviar y cómo vigilar la deriva
Con las lecturas ya corregidas y validadas, quedan tres decisiones de diseño que condicionan la vida útil del dato.
- Crudo o procesado. Conviene enviar el valor procesado, que es el que se usa, y conservar la capacidad de recuperar el crudo, al menos en algunas lecturas de control. Si más adelante se descubre un error en la calibración, solo se podrá reprocesar lo que se guardó crudo.
- Versión de la calibración. Cada mensaje debe poder asociarse a los coeficientes con que se calculó (por ejemplo, un campo de versión). Sin eso, cuando se recalibra un equipo, los datos viejos y nuevos no se pueden comparar.
- Calidad junto al dato. Acompañar el valor con una bandera de calidad, el número de lecturas usadas o la dispersión (mínimo y máximo del período). Permite que quien analiza decida cuánto confiar.
Y a lo largo de los años, la deriva: el sensor se va desviando lentamente por envejecimiento, suciedad o desgaste. Dos defensas eficaces en una flota: comparar contra una referencia cuando hay una disponible (otro sensor cercano, una estación meteorológica, una condición conocida como el agua con hielo) y comparar entre equipos iguales: si un dispositivo se separa sistemáticamente de sus vecinos, algo le pasa. En productos de larga vida, la recalibración periódica o el reemplazo programado de los sensores entran en el plan de mantenimiento desde el diseño.
07 · Analogía con programación
Calibrar y filtrar en Python
El programa simula un sensor de temperatura imperfecto que mide una habitación que se calienta de 20 a 30 °C a lo largo de 200 minutos. El sensor lee 1,04 × real + 0,5 (errores de ganancia y offset), le suma un ruido de unas 0,3 °C y, en el 3 % de las lecturas, un pico espurio de 8 °C. Se prueban tres calibraciones (ninguna, de un punto a 20 °C y de dos puntos a 20 y 30 °C) y cuatro filtros (ninguno, media de 8, mediana de 5 y exponencial con α = 0,2). Un generador pseudoaleatorio con semilla fija produce siempre las mismas lecturas, para que los experimentos sean repetibles. Se mide el sesgo, el error cuadrático medio (RMS), el error máximo y cuántas lecturas se desvían más de 2 °C.
Python en tu navegador. Los bloques son editables: cambiá los valores y presioná «Ejecutar Python». La primera vez tarda unos segundos en cargar.
import math
N = 200 # una lectura por minuto durante algo más de 3 horas
GANANCIA, OFFSET = 1.04, 0.5 # errores del sensor: lee 1,04 × real + 0,5
RUIDO = 0.3 # desvío del ruido aleatorio (°C)
PICOS = 0.03 # fracción de lecturas con un pico espurio
ALTURA_PICO = 8.0 # tamaño del pico (°C)
DESCARTE = 10 # no se evalúan las primeras lecturas (arranque del filtro)
class Aleatorio:
"""Generador congruencial: da siempre la misma secuencia, para repetir el experimento."""
def __init__(self, semilla=12345):
self.estado = semilla
def uniforme(self):
self.estado = (self.estado * 1664525 + 1013904223) & 0xFFFFFFFF
return self.estado / 4294967296
def real(i):
return 20 + 10 * i / (N - 1) # la temperatura sube de 20 a 30 °C
def lecturas():
azar = Aleatorio()
datos = []
for i in range(N):
ruido = (sum(azar.uniforme() for _ in range(4)) - 2) / 0.5774 * RUIDO
pico = ALTURA_PICO if azar.uniforme() < PICOS else 0.0
datos.append(GANANCIA * real(i) + OFFSET + ruido + pico)
return datos
def calibrar(datos, metodo):
bruto = lambda t: GANANCIA * t + OFFSET # lectura sin ruido a una temperatura de referencia
if metodo == "un punto": # corrige el offset en 20 °C
corr = 20 - bruto(20)
return [x + corr for x in datos]
if metodo == "dos puntos": # corrige offset y ganancia con 20 y 30 °C
g = (30 - 20) / (bruto(30) - bruto(20))
return [20 + (x - bruto(20)) * g for x in datos]
return list(datos)
def filtrar(datos, metodo):
salida = []
y = datos[0]
for i, x in enumerate(datos):
if metodo == "media de 8":
ventana = datos[max(0, i - 7): i + 1]
salida.append(sum(ventana) / len(ventana))
elif metodo == "mediana de 5":
ventana = sorted(datos[max(0, i - 4): i + 1])
salida.append(ventana[len(ventana) // 2])
elif metodo == "exponencial":
y = y + 0.2 * (x - y)
salida.append(y)
else:
salida.append(x)
return salida
def errores(calibracion, filtro):
datos = filtrar(calibrar(lecturas(), calibracion), filtro)
e = [datos[i] - real(i) for i in range(DESCARTE, N)]
sesgo = sum(e) / len(e)
rms = math.sqrt(sum(v * v for v in e) / len(e))
return sesgo, rms, max(abs(v) for v in e), sum(1 for v in e if abs(v) > 2)
print("calibración filtro sesgo RMS máx lecturas con error > 2 °C")
for cal in ("ninguna", "un punto", "dos puntos"):
for fil in ("ninguno", "media de 8", "mediana de 5", "exponencial"):
s, r, m, malas = errores(cal, fil)
print(f"{cal:<11} {fil:<13} {s:>7.2f} {r:>6.2f} {m:>6.2f} {malas:>6}")
Resultado con los valores iniciales: sin calibrar y sin filtrar el sesgo es de 1,60 °C, el RMS 1,83 °C y el error máximo 9,67 °C, con 10 lecturas desviadas más de 2 °C. Filtrar sin calibrar no quita el sesgo: la mediana de 5 deja el RMS en 1,42 °C. Calibrando con un punto, el sesgo baja a 0,30 °C; con dos puntos, a 0,09 °C. Sin filtrar, el RMS sigue en 0,85 a 0,93 °C por el ruido y los picos (error máximo cercano a 8 °C). La combinación de calibración de dos puntos y mediana de 5 da el mejor resultado: RMS de 0,19 °C y error máximo de 0,57 °C. La media de 8, en cambio, deja un error máximo de 0,91 °C, y el filtro exponencial, de 1,42 °C, porque arrastran los picos.
Tres conclusiones. Una: calibración y filtro atacan problemas diferentes y se complementan; ninguno reemplaza al otro. Otra: para los picos aislados, la mediana vence al promedio. Y una tercera, sutil: con dos puntos y mediana el sesgo queda en −0,09 °C, un residuo que proviene del retraso del filtro sobre una señal que sube. Todo filtro cobra un impuesto en retraso.
08 · Exploración interactiva
Corregir un sensor imperfecto, de extremo a extremo
Este laboratorio ejecuta el mismo modelo del código anterior, con las mismas lecturas. Elegí la calibración y el filtro. En el gráfico, la línea celeste es la temperatura real, los puntos grisáceos son las lecturas crudas del sensor y la línea naranja es el resultado que entregaría el dispositivo. Los errores y el ruido son valores didácticos.
Calibración y filtro
Elegí los parámetros y presioná «Aplicar».
Recorrido guiado
- Poné Ninguna y Ninguno. Sesgo de 1,60 °C, RMS de 1,83 °C y error máximo de 9,67 °C: un sensor con errores de ganancia y offset, ruido y picos.
- Mantené «Ninguna» y probá cada filtro. El RMS apenas baja (1,46; 1,42 y 1,43 °C): el sesgo de unos 1,4 °C sigue ahí. Filtrar no corrige un error sistemático.
- Pasá a De un punto sin filtro: el sesgo baja a 0,30 °C, pero el error máximo sigue en 8,37 °C por los picos. Calibrar no limpia ruido ni picos.
- Con calibración de un punto, probá la media móvil de 8: el error máximo baja a 1,20 °C. Ahora la mediana de 5: 0,53 °C. La mediana descarta el pico; el promedio lo reparte.
- Con De dos puntos y mediana: RMS de 0,19 °C, la mejor combinación del modelo. Con el filtro exponencial el error máximo es 1,42 °C: arrastra los picos varias lecturas.
- Mirá el sesgo de dos puntos con filtro: es ligeramente negativo (−0,08 a −0,11 °C). Es en buena parte el retraso del filtro: la señal sube y el resultado siempre llega un poco atrás.
Desafío: cuánto atrasa un filtro
La temperatura sube 10 °C en 200 minutos, es decir 0,05 °C por minuto. Una media móvil de 8 lecturas atrasa la señal unas 3,5 muestras: 3,5 × 0,05 = 0,175 °C de error por retraso. Un filtro exponencial con α = 0,2 atrasa (1 − α) / α = 4 muestras, o sea 0,20 °C. Con una mediana de 5, el atraso es 2 muestras: 0,10 °C. El de la mediana coincide con el sesgo del laboratorio con calibración de dos puntos (−0,09 °C). En la media y en el exponencial el retraso se mezcla con el empuje positivo de los picos que arrastran, por eso su sesgo neto resulta menor que el teórico. En una variable lenta es despreciable; si la variable sube 5 °C por minuto en una alarma, el mismo filtro atrasa casi 20 °C. La longitud del filtro tiene que ser corta respecto de la rapidez de la variable que importa.
09 · Método de trabajo
Cómo mejorar la calidad de una medida
Seguí este orden, que va del problema más grave al más sutil:
- Registrá lecturas crudas durante un tiempo, junto a una referencia mejor, en las condiciones reales.
- Diagnosticá. Compará con la referencia y clasificá el error: ¿sesgo?, ¿ruido?, ¿picos?, ¿fallos?
- Resolvé la causa física primero. Si el sesgo viene del autocalentamiento, mové el sensor; si el ruido viene de un cable, blindalo. Corregir por software lo que se puede arreglar en el hardware es una deuda.
- Calibrá con uno o dos puntos y guardá los coeficientes con su versión.
- Validá cada lectura: rango, tasa de cambio, valores centinela, congelamiento.
- Filtrá con el mínimo necesario: mediana contra picos, exponencial o promedio contra ruido, y verificá el retraso admisible.
- Reportá la calidad junto con el valor.
- Vigilá la deriva y definí cuándo se recalibra o se reemplaza el sensor.
Y un criterio de cierre: la calidad necesaria la fija el requisito (tema 6). Un sensor de un termostato doméstico con ±0,5 °C es suficiente; un registro de cadena de frío sujeto a una norma puede exigir ±0,2 °C y calibraciones certificadas. Pasarse de calidad cuesta tanto como quedarse corto.
10 · Comprensión
Confusiones frecuentes
«Con un buen filtro no necesito calibrar»
Un filtro quita ruido, no sesgo. Un sensor que lee 1,3 °C de más seguirá leyendo 1,3 °C de más por muy suave que salga la curva. Se necesitan las dos técnicas porque corrigen cosas diferentes.
«Promediar siempre mejora la medida»
Mejora el ruido aleatorio, pero un valor atípico arrastra todo el promedio, y ante un sesgo no hace nada. Contra picos aislados es mejor la mediana. Además, todo promedio retrasa la señal.
«Si una lectura es rara, la reemplazo por la anterior»
Esconde una falla: el panel muestra un valor perfecto durante horas mientras el sensor está roto. Lo correcto es marcar la lectura como inválida y avisar, no inventar un dato.
«Un sensor calibrado de fábrica ya está calibrado en mi producto»
La calibración de fábrica corresponde al sensor suelto, en condiciones de laboratorio. Dentro de tu caja, con el calor de la placa y la alimentación real, el error cambia. Para exactitud, hay que verificar en el producto armado.
«Más decimales significan más calidad»
Informar 22,3478 °C con un sensor de ±0,5 °C es engañoso y gasta bytes. Se informa con la resolución que la exactitud justifica; los decimales falsos hacen creer que el dato es mejor de lo que es.
«Los datos se pueden corregir después en la nube»
Se pueden corregir los errores sistemáticos si se conservaron las lecturas crudas y la versión de calibración. Los picos y los fallos, en cambio, conviene resolverlos en el origen, donde se conoce el contexto, y reportar la calidad junto con cada dato.
11 · Práctica guiada
Predecí antes de comprobar
1. Calibrar con dos puntos
Un sensor lee 21,3 °C cuando la temperatura real es 20,0 °C y lee 31,7 °C cuando es 30,0 °C. Calculá la ganancia y la fórmula de corrección, y el valor corregido para una lectura de 26,5 °C.
Ver solución
La ganancia es (30 − 20) / (31,7 − 21,3) = 10 / 10,4 ≈ 0,9615. La corrección es 20 + (x − 21,3) × 0,9615. Para x = 26,5: 20 + 5,2 × 0,9615 ≈ 25,0 °C. Verificación: con x = 31,7 da 20 + 10,4 × 0,9615 = 30,0 °C.
2. Sesgo o ruido
Un sensor da 25,31, 25,29 y 25,30 °C en tres lecturas seguidas, mientras un termómetro de referencia marca 24,0 °C. ¿Qué error predomina y cómo se corrige?
Ver solución
Las lecturas casi no varían (ruido de unas centésimas), pero están 1,3 °C por encima de la referencia. Predomina el error sistemático (offset). Se corrige con una calibración de un punto que reste 1,3 °C. Promediar más lecturas no cambiaría nada.
3. Mediana contra promedio
Las últimas cinco lecturas son 21,0, 21,2, 29,0, 21,1 y 21,3 °C. Calculá el promedio y la mediana. ¿Cuál representa mejor la realidad?
Ver solución
Promedio: (21,0 + 21,2 + 29,0 + 21,1 + 21,3) / 5 = 22,72 °C. Mediana: ordenadas son 21,0, 21,1, 21,2, 21,3, 29,0; la del medio es 21,2 °C. La mediana ignora el pico de 29,0 y refleja mejor la realidad; el promedio queda 1,5 °C por encima.
4. El filtro exponencial
Un filtro exponencial con α = 0,2 está en 20 °C y la entrada salta a 30 °C y queda ahí. ¿Cuánto vale la salida tras 1, 2 y 3 lecturas? ¿Cuántas lecturas tarda en alcanzar el 95 % del salto?
Ver solución
La salida es 30 − 10 × 0,8n: tras 1 lectura, 22,0; tras 2, 23,6; tras 3, 24,88. Para llegar al 95 % (29,5 °C) hace falta 0,8n ≤ 0,05, o sea n ≥ 13,4: 14 lecturas. Con una lectura por minuto, el filtro tarda 14 minutos en reflejar un cambio, un retraso importante para una alarma.
5. Reducir el ruido
El ruido de un sensor es de 0,3 °C. ¿Cuánto baja al promediar 16 lecturas? ¿Cuántas lecturas hacen falta para llegar a 0,03 °C?
Ver solución
El ruido baja por √N: con 16 lecturas, 0,3 / 4 = 0,075 °C. Para 0,03 °C hace falta √N = 10, es decir N = 100 lecturas. El esfuerzo crece rápido: diez veces menos ruido cuesta cien veces más lecturas.
6. Validar
Un sensor de una habitación informa 22,1; 22,2; 37,4; 22,2 °C en lecturas cada minuto y, otro día, −127 °C. Proponé una regla de validación para cada caso y qué hacer con las lecturas.
Ver solución
El 37,4 °C es un pico espurio: la regla de tasa de cambio (una habitación no sube 15 °C en un minuto) lo detecta. El −127 °C es un valor centinela de fallo, fuera de todo rango físico. En ambos casos se marca la lectura como inválida, no se usa en los filtros, se registra el evento y, si se repite, se envía una alarma de sensor defectuoso. Nunca se reemplaza por un cero.
12 · Síntesis
Ideas para recordar
- Un sensor entrega un número con errores sistemáticos, ruido, picos espurios y a veces fallos; cada clase tiene su remedio.
- La calibración corrige el sesgo: con un punto el offset, con dos el offset y la ganancia, con varios la no linealidad; requiere una referencia mejor y se hace con el producto armado.
- Los filtros corrigen ruido y picos pero no el sesgo: el promedio y el filtro exponencial alisan el ruido, la mediana descarta los picos aislados.
- Todo filtro retrasa la señal; su longitud debe ser corta respecto de la rapidez de la variable que importa.
- Antes de filtrar, se validan las lecturas con rango físico, tasa de cambio, valores centinela y detección de congelamiento.
- Una lectura inválida se marca y se reporta; nunca se reemplaza por un cero ni por el valor anterior sin avisar.
- Conviene guardar los coeficientes en memoria no volátil, versionarlos y enviar una bandera de calidad con cada dato.
- La deriva se vigila comparando con una referencia o entre equipos iguales, y se planifica recalibración o reemplazo.
- Primero se resuelve la causa física del error; el software corrige lo que el hardware no puede.
¿Listo para el tema 11?
Antes de avanzar, tomá un sensor y registrá cien lecturas seguidas junto a una referencia. Calculá el sesgo y el ruido, y decidí qué corrección aplicarías: calibración, filtro, validación o una mejora física. Si podés justificar cada decisión con los números, ya sabés dar calidad a un dato.
En el próximo tema pasamos de medir a actuar: los actuadores y las salidas remotas, como relés, LEDs, motores y válvulas manejados desde la red, y las precauciones para que un comando remoto no cause un daño.