Conexión del módulo Bluetooth HC05 con Arduino

El Bluetooth se ha convertido en una tecnología omnipresente en nuestra vida diaria. Desde auriculares y teléfonos móviles hasta laptops y controladores de videojuegos, la capacidad de conectarse de forma inalámbrica ha transformado la manera en que interactuamos con la tecnología. En el mundo de la electrónica embebida, el Bluetooth representa una solución ideal para transmitir pequeños volúmenes de datos de manera efectiva a distancias cortas, generalmente menos de 100 metros. Este tutorial se centra en uno de los módulos Bluetooth más populares y accesibles: el HC-05.

Con un precio aproximado de $5, el HC-05 es una opción económica para incorporar conectividad Bluetooth a tus proyectos. Ya no más enredos ni cables molestos. En este artículo, te guiaremos a través de los pasos necesarios para utilizar el módulo HC-05, desde su conexión básica hasta aplicaciones prácticas que puedes desarrollar con él.

Índice de contenido
  1. Descripción general del hardware del HC-05
    1. Modos de operación del HC-05
    2. Roles de conexión del HC-05
    3. Alimentación del HC-05
    4. LED de estado del HC-05
  2. Pinout del HC-05
  3. Controlando el módulo HC-05
  4. Conexión del módulo HC-05 a un Arduino
  5. Código de pasaje de serie Bluetooth
  6. Conexión al teléfono Android
  7. Proyecto Arduino: Relé controlado por Bluetooth
    1. Conexiones
    2. Código Arduino
    3. Prueba del código
  8. Explorando más allá

Descripción general del hardware del HC-05

El HC-05 es un módulo que actúa como un puente Bluetooth a serie, permitiendo la comunicación inalámbrica entre microcontroladores o entre un microcontrolador y dispositivos como smartphones, laptops o PCs con capacidad Bluetooth. Su diseño lo hace perfecto para reemplazar interfaces de serie asíncronas por cable.

Este módulo cuenta con un transceptor Bluetooth, lo que significa que puede enviar y recibir datos. Como dispositivo Bluetooth de Clase 2, el HC-05 tiene un alcance nominal de 10 metros en espacios abiertos. Sin embargo, el alcance puede verse afectado por obstáculos como paredes, especialmente en un entorno doméstico.

Una de las mayores ventajas del HC-05 es su facilidad de uso. No es necesario lidiar con complejos protocolos Bluetooth; simplemente necesitas enviar datos a través de una interfaz serie, y el módulo se encargará de transmitirlos al dispositivo Bluetooth conectado.

Modos de operación del HC-05

El HC-05 opera en dos modos distintos: Modo AT y Modo de Datos.

  • Modo AT: Permite configurar diversas configuraciones del módulo, como el nombre, la tasa de baudios y el código PIN.
  • Modo de Datos: El HC-05 actúa como un puente de datos transparente, eliminando encabezados y tráilers Bluetooth al enviar datos a través del puerto UART y viceversa.

Roles de conexión del HC-05

El HC-05 puede asumir dos roles principales: Máster y Esclavo.

  • Rol Esclavo: El módulo espera que otros dispositivos inicien la conexión, siendo su rol predeterminado en proyectos donde se controla mediante un smartphone.
  • Rol Máster: El HC-05 busca activamente otros dispositivos Bluetooth para establecer conexión, ideal para proyectos que requieren la comunicación entre dos microcontroladores.

Para cambiar entre roles, es necesario configurar el HC-05 en Modo AT y enviar los comandos correspondientes a través del puerto UART.

Alimentación del HC-05

El módulo HC-05 opera con un voltaje máximo de 3.3V. Incluye un regulador lineal que permite utilizar voltajes entre 3.6V y 6V. Es crucial recordar que el nivel lógico del HC-05 es de 3.3V, lo que significa que el pin Rx del módulo no puede conectarse directamente a un pin digital de un microcontrolador de 5V, como el Arduino UNO, ya que no es tolerante a 5V.

La corriente consumida por el HC-05 varía según su estado. A continuación se presenta una tabla con estimaciones de este consumo:

EstadoConsumo (mA)
Conexión Bluetooth activa30
En modo de sueño1
Sin conexión8

LED de estado del HC-05

Muchos módulos HC-05 incluyen un LED a bordo que indica su estado mediante diferentes patrones de parpadeo:

  • Cuando está encendido y en modo de emparejamiento, el LED parpadea rápidamente (aproximadamente 2 Hz).
  • Si el módulo está emparejado, el patrón de parpadeo cambia a dos parpadeos rápidos seguidos de una pausa.
  • En Modo AT, el LED parpadea de manera constante y lenta.

Pinout del HC-05

El módulo HC-05 presenta seis pines que son esenciales para su conexión y funcionamiento. A continuación, se detallan sus funciones:

  • PIN STATE: Indica el estado actual del módulo; LOW cuando no está emparejado y HIGH cuando está emparejado.
  • PIN RXD: Recibe datos seriales del microcontrolador; debe conectarse al pin TX del microcontrolador.
  • PIN TXD: Envía datos seriales al microcontrolador; debe conectarse al pin RX del microcontrolador.
  • PIN GND: Conexión a tierra común de todos los dispositivos conectados al módulo.
  • PIN VCC: Conexión del voltaje de alimentación, que debe estar entre 3.6V y 6V.
  • PIN EN: Conectado al pin de habilitación del regulador a bordo; al bajarlo, se desactiva el regulador.

Controlando el módulo HC-05

Controlar el HC-05 requiere una interfaz serie. Funciona como un canal de datos: los datos que entran al módulo se transmiten a través de la conexión Bluetooth, y los datos que llegan del lado Bluetooth se envían al puerto serie.

Para establecer este canal, seguimos un proceso de dos pasos:

  1. Conectar el módulo HC-05 a un dispositivo capaz de enviar y recibir datos serie, como un Arduino.
  2. Establecer una conexión inalámbrica entre el HC-05 y otro dispositivo Bluetooth, como un teléfono Android, mediante un proceso de emparejamiento.

Conexión del módulo HC-05 a un Arduino

Conectar el HC-05 a un Arduino es sencillo. Se recomienda utilizar la biblioteca SoftwareSerial para evitar conflictos en el bus y garantizar que el módulo no reciba datos no deseados durante la carga de un sketch.

Los pines de conexión son los siguientes:

  • TXD del HC-05 a D3 del Arduino.
  • RXD del HC-05 a D2 del Arduino, utilizando un divisor de voltaje para reducir la señal a 3.3V.
  • GND a GND.
  • VCC a 5V.

El divisor de voltaje se puede hacer con un resistor de 1kΩ y otro de 2kΩ para adaptar la señal.

Código de pasaje de serie Bluetooth

A continuación, se presenta un código simple que permite transmitir datos entre el Monitor Serie de Arduino y el módulo HC-05:

#include <SoftwareSerial.h>

// Crear objeto de serie de software para comunicarse con HC-05
SoftwareSerial mySerial(3, 2); // HC-05 Tx & Rx conectado a Arduino #3 & #2

void setup() {
  Serial.begin(9600); 
  mySerial.begin(9600);
  Serial.println("Inicializando...");
  Serial.println("El dispositivo ha iniciado, ahora puedes emparejarlo con bluetooth!");
}

void loop() {
  if (Serial.available()) {
    mySerial.write(Serial.read()); // Reenviar lo que se recibe a través de Serial
  }
  if (mySerial.available()) {
    Serial.write(mySerial.read()); // Reenviar lo que se recibe a través de Software Serial
  }
  delay(20);
}

Una vez subido el sketch, abre el Monitor Serie a 9600 bps para ver el mensaje de inicialización.

Conexión al teléfono Android

Ahora conectaremos el módulo HC-05 a un teléfono Android. Los pasos son los siguientes:

  1. Enciende el HC-05 y asegúrate de que está en modo de emparejamiento (LED parpadeando rápidamente).
  2. Activa Bluetooth en tu teléfono.
  3. Toca y mantén presionado el icono de Bluetooth y selecciona "Emparejar nuevo dispositivo".
  4. Selecciona el HC-05 de la lista de dispositivos disponibles.
  5. Ingresa el PIN 1234 para emparejar.
  6. Instala la aplicación "Serial Bluetooth Terminal" desde Play Store.
  7. Abre la aplicación y selecciona "Dispositivos", luego elige HC-05.
  8. Confirma la conexión, el LED del HC-05 debe cambiar su patrón de parpadeo.
  9. Envía un mensaje desde la aplicación, como "Hola".
  10. Verifica en el Monitor Serie que recibiste el mensaje.

Proyecto Arduino: Relé controlado por Bluetooth

Vamos a desarrollar un proyecto simple que permite controlar relés de manera inalámbrica mediante Bluetooth, útil para aplicaciones de automatización del hogar, iluminación inteligente y sistemas de seguridad.

Conexiones

Usaremos la misma configuración de Arduino que en el ejemplo anterior, pero añadiremos un módulo de relé de dos canales para manejar una lámpara.

Código Arduino

A continuación, el código que permite controlar el relé a través del HC-05:

#include <SoftwareSerial.h>

const int relayPin = 6; // GPIO donde se conecta el relé
String message = ""; // Manejar mensajes recibidos

SoftwareSerial mySerial(3, 2); // HC-05 Tx & Rx conectado a Arduino #3 & #2

void setup() {
  Serial.begin(9600);
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, HIGH); // Asegúrate de que el relé esté apagado al inicio
  mySerial.begin(9600);
  Serial.println("Inicializando...");
  Serial.println("El dispositivo ha iniciado, ahora puedes emparejarlo con bluetooth!");
}

void loop() {
  if (mySerial.available()){
    char incomingChar = mySerial.read();
    if (incomingChar != 'n'){
      message += String(incomingChar); // Construir el mensaje
    }
    else{
      message = ""; // Reiniciar mensaje
    }
    Serial.write(incomingChar);  
  }
  // Controlar el relé según el mensaje recibido
  if (message == "on"){
    digitalWrite(relayPin, LOW); // Activar el relé
  }
  else if (message == "off"){
    digitalWrite(relayPin, HIGH); // Desactivar el relé
  }
  delay(20);
}

Prueba del código

Después de subir el sketch, abre el Monitor Serie a 9600 bps. Conecta tu HC-05 desde la aplicación Serial Bluetooth Terminal.

Al escribir "on" en la aplicación, el relé debe activarse instantáneamente. Escribe "off" para desactivarlo. También verás mensajes en el Monitor Serie para monitorear la actividad.

Explorando más allá

Esperamos que este tutorial te haya proporcionado una buena base para adentrarte en el mundo del Bluetooth. Ahora que sabes cómo enviar y recibir datos entre el HC-05 y un smartphone, es el momento de profundizar en la configuración del HC-05 utilizando comandos AT, y explorar cómo hacer que dos placas Arduino se comuniquen de manera inalámbrica con módulos HC-05, lo que abre un abanico de posibilidades para tus proyectos inalámbricos.

Estos temas te pueden interesar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tu puntuación: Útil

Subir