La semana pasada hablamos de cómo el mantenimiento predictivo está cambiando la forma de intervenir motores y equipos críticos. Hoy bajamos esa idea a un proyecto práctico y de bajo costo: armar tu propio sensor de vibración con un ESP32 para monitorear, de forma básica, el estado de un motor. No reemplaza un analizador de vibraciones profesional, pero es un excelente punto de entrada para entender el concepto y experimentar en el taller o en el aula.
Materiales necesarios
- 1 placa ESP32 (o un Arduino Uno/Nano si prefieres empezar sin WiFi).
- 1 módulo acelerómetro MPU6050 (giroscopio + acelerómetro, económico y fácil de conseguir). Alternativa más orientada a vibración: ADXL345.
- Cables jumper macho-hembra.
- Protoboard.
- Cable USB (Universal Serial Bus – Bus Serie Universal) para programar y alimentar la placa.
- Opcional: base magnética o cinta doble faz resistente para fijar el sensor a la carcasa del motor.
Conexión (wiring)
El MPU6050 se comunica por protocolo I2C (Inter-Integrated Circuit – Circuito Inter-Integrado), así que la conexión es sencilla:
- VCC (Voltage Common Collector – Voltaje de Colector Común; en la práctica, el pin de alimentación positiva) → 3.3V del ESP32
- GND (Ground – Tierra) → GND del ESP32
- SCL (Serial Clock Line – Línea de Reloj Serie) → pin GPIO (General Purpose Input/Output – Entrada/Salida de Propósito General) 22 en la mayoría de placas ESP32 DevKit
- SDA (Serial Data Line – Línea de Datos Serie) → pin GPIO 21 en la mayoría de placas ESP32 DevKit
Nota: en Arduino Uno, VCC va a 5V y SCL/SDA a los pines A5/A4 respectivamente.
Código básico (Arduino IDE)
Instala desde el Gestor de Librerías de Arduino IDE (Integrated Development Environment – Entorno de Desarrollo Integrado): Adafruit MPU6050 (y sus dependencias Adafruit Unified Sensor y Adafruit BusIO). Luego carga este código de prueba:
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
Adafruit_MPU6050 mpu;
void setup(void) {
Serial.begin(115200);
if (!mpu.begin()) {
Serial.println("No se encontró el MPU6050");
while (1) delay(10);
}
mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
}
void loop() {
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
Serial.print("Accel X: "); Serial.print(a.acceleration.x);
Serial.print(" | Y: "); Serial.print(a.acceleration.y);
Serial.print(" | Z: "); Serial.println(a.acceleration.z);
delay(200);
}
Con esto ya puedes ver en el Monitor Serial los valores de aceleración en los tres ejes. El siguiente paso es fijar un umbral: cuando la variación de la aceleración supere cierto valor (por ejemplo, picos superiores a 2 g respecto a la lectura en reposo del motor), el ESP32 puede encender un LED (Light Emitting Diode – Diodo Emisor de Luz), activar un buzzer o – aprovechando que el ESP32 tiene WiFi – enviar una alerta a una plataforma IoT (Internet of Things – Internet de las Cosas) como Blynk o ThingSpeak.
Del prototipo a un monitoreo real
Para que el proyecto se acerque un poco más a un caso real de mantenimiento predictivo, considera:
- Tomar una lectura base ("firma de vibración") del motor sano y compararla periódicamente contra nuevas lecturas.
- Fijar el sensor siempre en el mismo punto y orientación del motor, para que las comparaciones sean válidas.
- Registrar también la temperatura (el MPU6050 trae un sensor de temperatura integrado) como variable complementaria.
- Enviar los datos a la nube (Blynk, ThingSpeak o un dashboard propio) para llevar un historial en el tiempo, en lugar de solo mirar el Monitor Serial.
Importante: este proyecto es educativo y de bajo costo. Para decisiones críticas de mantenimiento en equipos de planta, sigue apoyándote en equipos de medición certificados y en el criterio de un técnico calificado.
Videos recomendados para profundizar
- Arduino Accelerometer Tutorial – ADXL345 & MPU-6050 Motion Sensing – comparación práctica de los dos sensores más usados.
- PROJECT #001: Vibration Monitoring with Sensor MPU6050 using Arduino and ESP8266 on IoT Blynk – un proyecto muy cercano al que planteamos aquí, con dashboard en Blynk.
- La guía definitiva para monitoreo IoT con ESP32 y Blynk (funciona con todos los sensores) – en español, para dar el salto de "ver datos en el Monitor Serial" a un dashboard real.
- ESP32: Conexión con Blynk – configuración paso a paso de la app y las credenciales.
Para seguir profundizando
- In-Depth: Interface MPU6050 Accelerometer & Gyroscope Sensor with Arduino
- Lección: Módulo de Giroscopio y Acelerómetro (MPU6050) con ESP32 (en español)
- ADXL345 Accelerometer Interfacing with ESP32
¿Te animas a construirlo? Cuéntanos en los comentarios si lo probaste en algún motor de tu casa o tu planta, y qué diferencias notaste entre el equipo en reposo y en marcha.
