- El ESP32 permite gestionar tanto el protocolo Bluetooth Classic para flujos de datos continuos como BLE para aplicaciones de bajo consumo.
- La implementación de comunicación serie inalámbrica se facilita mediante la librería BluetoothSerial en entornos Arduino.
- La arquitectura de BLE se basa en un modelo cliente-servidor donde el ESP32 suele actuar como periférico ofreciendo servicios específicos.
Si te has hecho con un ESP32, probablemente ya sepas que es una auténtica bestia de microcontrolador. Una de sus joyas es que viene con conectividad inalámbrica dual, lo que significa que puedes jugar tanto con WiFi como con Bluetooth sin tener que añadir módulos externos que engorden el circuito.
Dependiendo de lo que quieras montar, tendrás que elegir entre dos caminos: el Bluetooth clásico, que es el de toda la vida para pasar datos sin complicaciones, o el BLE, que es la opción ideal si no quieres que la batería de tu proyecto vuele en un abrir y cerrar de ojos. En este artículo vamos a desmenuzar cómo configurar ambos para que tu dispositivo se hable con el móvil, el ordenador o cualquier otro gadget.
Bluetooth Classic: Comunicación Serial Sencilla

Para quienes vienen de usar módulos como el HC-06, el Bluetooth Classic en el ESP32 les resultará pan comido. Esta tecnología funciona en la banda de 2.4 GHz y es perfecta para transmitir datos a distancias cortas, normalmente hasta unos 10 metros, emulando un puerto serie inalámbrico.
La clave aquí es la librería BluetoothSerial. Esta herramienta implementa el perfil SPP (Serial Port Profile), que básicamente engaña al sistema para que crea que hay un cable conectado cuando en realidad todo viaja por el aire. Para ponerlo en marcha, solo necesitas instanciar el objeto BluetoothSerial y darle un nombre a tu dispositivo en el método begin().
Un punto que suele dar dolores de cabeza es el tema de la seguridad. Aunque existen métodos como setPin() para añadir una contraseña de emparejamiento, en muchas versiones actuales la configuración es abierta por defecto. Si necesitas recuperar la dirección MAC de tu chip para filtrar conexiones, puedes usar funciones específicas de la librería esp_bt_device.h para imprimirla en el monitor serial.
Implementación de Bluetooth Low Energy (BLE)

El BLE no es simplemente una versión «más lenta» del Bluetooth, sino que tiene una arquitectura totalmente distinta. Está pensado para enviar paquetes de datos muy pequeños de forma intermitente, lo que lo hace imbatible en eficiencia energética para dispositivos IoT o wearables.
En el mundo BLE, nos movemos en un esquema de cliente y servidor. El ESP32 normalmente actúa como servidor (periférico), exponiendo servicios y características que un cliente (como tu smartphone) puede leer o escribir. Para que esto funcione, es fundamental gestionar los UUID, que son identificadores únicos que evitan que tu dispositivo se confunda con otros servicios BLE cercanos.
Para configurar un servidor BLE, se utiliza la librería BLEDevice.h. El proceso implica crear el servidor, definir un servicio y añadir características con callbacks específicos. Estos callbacks son funciones que se disparan automáticamente cuando el cliente escribe un dato o cuando se establece la conexión, permitiendo que el ESP32 reaccione en tiempo real.
Pruebas y Herramientas de Conexión

Una vez que el código está cargado, llega el momento de ver si todo funciona. Para el modo clásico, cualquier terminal Bluetooth serie desde Android te servirá para enviar y recibir texto. Si prefieres usar un PC con Python, puedes recurrir a la librería socket, ya que otras opciones más antiguas como PyBluez suelen dar problemas de mantenimiento y no siempre conectan bien.
En el caso del BLE, la cosa es más técnica. Aplicaciones como nRF Connect o LightBlue son imprescindibles. Con ellas puedes escanear el entorno, localizar el UUID de tu ESP32 y suscribirte a las características para recibir notificaciones en tiempo real. Es la forma más fiable de depurar el flujo de datos antes de crear tu propia app móvil.
El ESP32 es una herramienta versátil que permite pasar de una comunicación robusta y continua con Bluetooth Classic a una gestión ultra eficiente de energía mediante BLE. Dominar ambos protocolos te permite adaptar tu hardware a cualquier necesidad, ya sea creando un mando a distancia simple o un sofisticado nodo de sensores inalámbricos que funcione durante meses con una sola pila.
