Vibración con ESP32: de las muestras al análisis de anomalías en Python
Un acelerómetro puede generar un gráfico llamativo mucho antes de producir una señal confiable para mantenimiento. La frecuencia de muestreo, el montaje, la velocidad de la máquina, el rango del sensor y el estado de operación afectan la medición. Un buen experimento con ESP32 conserva ese contexto, calcula características reproducibles en Python y considera la alerta como motivo de revisión, no como diagnóstico.
Publicado el 28 de septiembre de 202614 min de lecturaTelemetría de condición de maquinaria
Sigue cada ventana por el pipeline
Conserva el contexto desde el sensor hasta la revisión
1 / MontarUbicación rígida y repetible, con ejes documentados.
2 / MuestrearFrecuencia conocida, rango calibrado y tiempo monotónico.
3 / EmpaquetarID de ventana, condición y firmware.
4 / AnalizarPython: tendencia, RMS, factor de cresta y espectro.
5 / RevisarTendencia, banda de referencia e investigación humana.
Elige sensor y frecuencia para las frecuencias que necesitas observar, no solo porque haya una placa económica. Revisa ancho de banda, ruido, rango, filtro antialias, rendimiento del bus y resonancia del montaje en la documentación del componente. Leer un sensor I2C a intervalos irregulares no produce una señal uniformemente muestreada.
Haz que la adquisición sea reproducible
Reúne muestras XYZ con marcas de tiempo en ventanas de duración fija. Registra cantidad real, plazos perdidos, rango, orientación, máquina y condición: reposo, carga o velocidad. Conserva ventanas crudas para una calibración representativa. Si el ESP32 no puede almacenar una ventana completa a alta tasa, transmite bloques con secuencia y detecta huecos en el receptor.
Elimina gravedad u offset estático de manera deliberada; restar la media puede ayudar con algunas características, pero también borrar movimientos lentos relevantes. Comprueba saturación y muestras faltantes antes de puntuar. Mide la frecuencia efectiva: Wi-Fi, almacenamiento e interrupciones pueden impedir que se cumpla el intervalo solicitado.
Construye la referencia antes del umbral
En Python, empieza con características transparentes: RMS por eje, pico a pico, factor de cresta, curtosis si aporta valor y energía por bandas. Para analizar frecuencia, estima densidad espectral de potencia con ventana y segmento documentados. El método de Welch promedia periodogramas modificados de segmentos solapados y suaviza el ruido; el tamaño del segmento intercambia resolución frecuencial por promedio. Etiqueta las unidades y conserva la frecuencia de muestreo.
Separa calibración y evaluación por fecha o ciclo de máquina, no mezclando ventanas vecinas al azar. Un umbral calibrado para una velocidad puede marcar como anómala otra operación normal. Compara estados equivalentes, calcula falsas alarmas y eventos omitidos y exige desviaciones repetidas antes de avisar a una persona.
Anomalía no significa avería
Una puntuación fuera de referencia significa “distinto según este modelo”, no “rodamiento roto”. Un montaje flojo, cambio de carga, temperatura, saturación o mantenimiento pueden explicar el cambio. Adjunta vector de características, referencia a la señal cruda, versión del modelo y contexto a la alerta para que pueda reproducirse. Empieza con monitorización consultiva; una parada de seguridad requiere un sistema de protección diseñado y validado por separado.
Señal o característica
Uso posible
Verifica antes de alertar
Aceleración RMS
Tendencia total de vibración
Velocidad, carga y rango comparables
Factor de cresta
Picos frente a energía promedio
Valores extremos, saturación y ventana
Energía por banda
Cambios en regiones frecuenciales
Muestreo, aliasing y resolución
Huecos de muestra
Salud de adquisición y transporte
Una ventana incompleta nunca parece normal
Diseña telemetría para investigar
Envía características con frecuencia y ventanas crudas solo cuando ancho de banda y privacidad lo permitan. Cada registro debe incluir ID estable de máquina, secuencia de ventana, configuración, versiones, calidad de adquisición, valores y hora de recepción. Limita colas y usa ingesta idempotente para que los reintentos no dupliquen datos. Los paneles deberían mostrar estado operativo y ausencia de muestras junto a la vibración.
Valida con cambios controlados
Establece primero una referencia saludable y repetible; después introduce variaciones seguras y conocidas en una bancada, como otra velocidad, desequilibrio controlado o soporte flojo de prueba con supervisión. No dañes equipos ni uses personas como carga. Mide alertas durante la variación normal y el tiempo de detección del cambio. Documenta el rango ensayado; no extrapoles a máquinas que no caracterizaste.
En resumen
ESP32 y Python forman un pipeline de aprendizaje sólido cuando la calidad de adquisición y el contexto de la máquina son datos prioritarios. Usa ventanas fijas, conserva evidencia cruda, compara estados equivalentes y calibra el costo de las alertas. Una anomalía puede priorizar una inspección humana, pero no certifica el estado de la máquina.