ESP8266 - Bluetooth
Este tutorial te enseña cómo usar el ESP8266 para controlar el módulo Bluetooth HC-05. En detalle, aprenderemos:
- Utilizando Bluetooth con ESP8266
- Transmitiendo datos desde ESP8266 a una app para teléfono inteligente a través de Bluetooth
- Recibiendo datos en ESP8266 desde la app para teléfono inteligente a través de Bluetooth
- Controlando ESP8266 desde la app para teléfono inteligente a través de Bluetooth

El propósito de este tutorial es:
- Demostrar cómo el ESP8266 puede intercambiar datos con una aplicación para teléfono inteligente.
- Explicar el uso del módulo Bluetooth HC-05.
- Mostrar cómo usar la Bluetooth Serial Monitor en Android.
- Ilustrar cómo controlar un LED y un servomotor desde una aplicación para teléfono inteligente.
Este tutorial se centra en Bluetooth Clásico (Bluetooth 2.0). Si estás buscando información sobre Bluetooth de baja energía - BLE (Bluetooth 4.0), consulta este tutorial similar: ESP8266 - Bluetooth Low Energy
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del módulo Bluetooth HC-05
HC-05 es un módulo Bluetooth serie que funciona como un convertidor de serie a Bluetooth. Tiene la capacidad de:
- Tomar datos desde el pin RX del puerto serie y transmitirlos al dispositivo emparejado (como un teléfono inteligente) vía Bluetooth
- Recibir datos desde Bluetooth (del dispositivo emparejado) y transferirlos al pin TX del puerto serie.
Específicamente, cuando el ESP8266 se comunica con una aplicación para smartphone (Android/iOS):
- Se conecta al módulo Bluetooth HC-05 a través de sus pines Serial/SoftwareSerial.
- El módulo Bluetooth HC-05 está emparejado con la aplicación del teléfono inteligente.
- Para enviar datos a la aplicación del teléfono inteligente, ESP8266 simplemente los envía al Serial/SoftwareSerial.
- Para recibir datos de la aplicación del teléfono inteligente, ESP8266 los lee desde el Serial/SoftwareSerial.
- No es necesario código especial de Bluetooth en el ESP8266.
Pinout del módulo Bluetooth HC-05

El módulo Bluetooth HC-05 tiene 6 pines:
- Pin de habilitación/clave: Este pin se utiliza para cambiar entre el modo de datos (configurado en LOW) y el modo de comandos (configurado en HIGH). Si no está conectado, estará en modo de datos por defecto.
- Pin VCC: pin de alimentación, debe estar conectado al +5V de la fuente de alimentación.
- Pin GND: pin de alimentación, debe estar conectado a GND de la fuente de alimentación.
- Pin TX: pin de datos en serie, debe estar conectado al pin RX del ESP8266. Los datos recibidos a través de Bluetooth serán enviados a este pin como datos en serie.
- Pin RX: pin de datos en serie, debe estar conectado al pin TX del ESP8266. Los datos recibidos por este pin serán enviados al Bluetooth.
- Estado: El pin de estado está conectado al LED a bordo; puede usarse como retroalimentación para comprobar si el Bluetooth está funcionando correctamente.
Sin embargo, para el funcionamiento básico, solo cuatro pines del módulo HC-05 Bluetooth son necesarios para conectarse al ESP8266.
El módulo Bluetooth HC-05 tiene dos componentes integrados:
- Un LED que indica el estado del módulo:
- Parpadea una vez cada dos segundos significa que el módulo ha entrado en el Modo de Comando
- Parpadeo rápido indica que está esperando una conexión en el Modo de Datos
- Parpadeo dos veces por segundo significa que la conexión en el Modo de Datos fue exitosa
- Un botón que se puede usar para controlar el pin Key/Enable para seleccionar el modo de operación (Datos o Modo de Comando)
Cómo funciona
El módulo Bluetooth HC-05 tiene dos modos de operación:
- Modo de datos que se utiliza para intercambiar datos con el dispositivo emparejado
- Modo de comandos que se utiliza para configurar parámetros
Por suerte, el módulo Bluetooth HC-05 es capaz de operar con ESP8266 sin necesidad de ninguna configuración, utilizando la configuración predeterminada.
Ajustes predeterminados de HC-05
| Default Bluetooth Name | “HC-05” |
|---|---|
| Default Password | 1234 or 0000 |
| Default Communication | Slave |
| Default Mode | Data Mode |
| Default Data Mode Baud Rate | 9600, 8, N, 1 |
| Default Command Mode Baud Rate | 38400, 8, N, 1 |
Acerca de la Aplicación Bluetooth Serial Monitor
La aplicación Bluetooth Serial Monitor es una aplicación móvil con una interfaz de usuario similar al Monitor Serial del IDE de Arduino. Se puede utilizar para comunicarse con ESP8266 vía Bluetooth sin requerir ningún código especial para el módulo Bluetooth en el código del ESP8266. Para ello, deben seguirse los siguientes pasos:
- Conecta el ESP8266 al módulo Bluetooth HC-05
- Instala la Bluetooth Serial Monitor App en tu teléfono inteligente
- Abre la App y empareja con el módulo Bluetooth HC-05
Ahora, puedes transmitir y recibir datos desde el ESP8266 de la misma manera que lo harías con el Monitor Serial del IDE de Arduino. No necesitas hacer ningún cambio en tu código existente para ESP8266 ni añadir ningún código Bluetooth a tu nuevo código para ESP8266.
Diagrama de Cableado

This image is created using Fritzing. Click to enlarge image
Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.
Tabla de cableado. Gráfico de cableado. Diagrama de cableado
| ESP8266 Pins | HC-05 Bluetooth Pins |
|---|---|
| Pin D7 | TX |
| Pin D6 | RX |
| 5V | VCC |
| GND | GND |
| Enable/Key (NOT connected) | |
| State (NOT connected) |
※ Nota:
Puedes usar otros pines del ESP8266 modificando el objeto Serial en el código del ESP8266 para otro diferente, como Serial1, Serial2 o SoftwareSerial si está disponible.
Cómo programar para Bluetooth
No es necesaria ninguna programación específica para Bluetooth. Solo necesitamos utilizar el código Serial.
ESP8266 envía datos a la aplicación Bluetooth en el teléfono inteligente
Para transmitir datos desde un ESP8266 a una aplicación de Bluetooth en un teléfono inteligente, debe utilizarse el siguiente código en el Arduino:
En este caso, haremos que el ESP8266 transmita “ESP8266 aquí, dame órdenes!” a la aplicación Bluetooth en un teléfono inteligente en intervalos de un segundo.
Pasos R\u00e1pidos
Para empezar con ESP8266 en el IDE de Arduino, siga estos pasos:
- Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
- Conecta los componentes como se muestra en el diagrama.
- Conecta la placa ESP8266 a tu computadora usando un cable USB.
- Abre Arduino IDE en tu computadora.
- Elige la placa ESP8266 correcta, como por ejemplo NodeMCU 1.0 (ESP-12E Module), y su puerto COM correspondiente.
- Instala la Bluetooth Serial Monitor App en tu teléfono inteligente. Conecta el módulo Bluetooth HC-05 al ESP8266 según el diagrama de cableado. Copia el código y ábrelo con Arduino IDE. Haz clic en el botón Upload en Arduino IDE para cargar el código en ESP8266. Si no puedes cargar el código, desconecta los pines TX y RX del módulo Bluetooth, carga el código y luego vuelve a conectar el pin RX/TX. Abre el Monitor Serial en Arduino IDE. Abre la aplicación Bluetooth Serial Monitor en tu teléfono inteligente y selecciona el modo Bluetooth clásico.

- Conéctalo con el módulo Bluetooth HC-05.

- Consulta el resultado en la aplicación de Android.

- Ver el resultado en el Monitor Serial del Entorno de Desarrollo Integrado ESP8266.
Notarás que la información mostrada en el Monitor Serial del IDE de Arduino y en la aplicación de Android es la misma.
Aplicación Bluetooth envía datos a ESP8266
El siguiente código habilita:
- Envío de datos desde una aplicación Bluetooth a un ESP8266
- Lectura de los datos por el ESP8266, seguida del envío de una respuesta de vuelta a la aplicación Bluetooth
Pasos R\u00e1pidos
- Conecte los componentes como se muestra en el diagrama.
- Conecte la placa ESP8266 a su computadora usando un cable USB.
- Abra el IDE de Arduino en su computadora.
- Elija la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (Módulo ESP-12E)), y su puerto COM respectivo.
- Copie el código y ábralo con el IDE de Arduino.
- Haga clic en el botón Upload en el IDE de Arduino para compilar y cargar el código al ESP8266.
- Abra el Monitor Serial en el IDE de Arduino.
- Conecte la aplicación Android al módulo Bluetooth HC-05, como se hizo en el ejemplo anterior.
- Una vez conectado, escriba ya sea "LED ON" o "LED OFF" en la aplicación Android y presione el botón "SEND".

- El ESP8266 recibe los datos y imprime la respuesta en el puerto serie. Estos datos se envían luego a la aplicación Bluetooth, y el resultado se puede ver en la aplicación de Android.

- Revisa el resultado en la ventana del Monitor Serial del Entorno de Desarrollo Integrado ESP8266.
Notará que la información mostrada en el Monitor Serial del IDE de Arduino y en la aplicación de Android es la misma.
Código ESP8266 - Controla el LED con la app del teléfono inteligente vía Bluetooth
Este código de ejemplo para ESP8266 responderá a dos comandos: “ON” y “OFF”. Cuando se reciban, estos comandos se utilizarán para encender o apagar un LED incorporado a través de la aplicación Bluetooth Serial Monitor.
Puede encontrar una explicación más detallada de las instrucciones en el tutorial ESP8266 controla LED vía Bluetooth/BLE.
Código ESP8266 - Control del servomotor con la app del teléfono inteligente mediante Bluetooth
El código ESP8266 que se muestra a continuación recibe el valor del ángulo desde la aplicación Bluetooth Serial Monitor para controlar el ángulo del servomotor.
Puedes ver las instrucciones con más detalle en el tutorial ESP8266 controls Servo Motor via Bluetooth/BLE. Para una mirada más exhaustiva de las instrucciones, consulta el tutorial ESP8266 controls Servo Motor via Bluetooth/BLE. Si necesitas ver las instrucciones con mayor profundidad, consulta el tutorial ESP8266 controls Servo Motor via Bluetooth/BLE. Para obtener una visión más amplia de las instrucciones, ve al tutorial ESP8266 controls Servo Motor via Bluetooth/BLE.
Si encuentra útil la aplicación Bluetooth Serial Monitor, por favor dé una calificación de 5 estrellas en Play Store. ¡Agradezco su apoyo!
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.