En el mundo de la electrónica y la programación, la conexión de dispositivos es esencial para crear proyectos innovadores. En este artículo, te enseñaremos cómo conectar el módulo Bluetooth HC05 a tu placa Arduino para establecer una comunicación inalámbrica con tus creaciones. ¡Sigue leyendo para descubrir todos los detalles y desatar tu creatividad técnica!
Bluetooth es omnipresente en estos días. Es una palabra que escuchamos todo el tiempo y está en millones de productos que usamos todos los días, incluidos auriculares, teléfonos celulares, computadoras portátiles, controladores de juegos, rastreadores de actividad, etc.
En nuestro mundo de electrónica integrada, Bluetooth es una excelente manera de transmitir pequeñas cantidades de datos de forma inalámbrica en distancias cortas (menos de 100 metros). Se puede utilizar para registrar datos en tiempo real o para controlar un proyecto mediante un teléfono inteligente.
Este es uno de los módulos Bluetooth más baratos y más utilizados. HC-05. Puede encontrarlo fácilmente en línea por alrededor de $5, lo que lo convierte en una opción económica para agregar conectividad Bluetooth a su proyecto. ¡No más cables enredados y molestos cables!
En este tutorial lo ayudaremos a comenzar con el HC-05. Pero como no queremos abrumarte con demasiada información a la vez, la dividiremos en tres tutoriales fáciles de seguir. El primer tutorial le muestra cómo enviar y recibir datos entre el HC-05 y su teléfono inteligente. En el siguiente tutorial le mostraremos cómo configurar el HC-05 con comandos AT. Y en el tutorial final aprenderás cómo hacer que dos placas Arduino se comuniquen de forma inalámbrica utilizando módulos Bluetooth HC-05.
Al final de estos tutoriales, comprenderá bien cómo utilizar el módulo Bluetooth HC-05 en sus proyectos. ¡Entonces empecemos!
Descripción general del hardware HC-05
El HC-05 es un módulo puente de Bluetooth a serie que permite la comunicación inalámbrica entre dos microcontroladores o entre un microcontrolador y un teléfono inteligente, computadora portátil o de escritorio con funcionalidad Bluetooth. ¡Es perfecto para el reemplazo directo de un puerto serie asíncrono cableado!
Cada uno de estos módulos contiene un transceptor Bluetooth, es decir. h. pueden enviar y recibir datos.
Como dispositivo Bluetooth de clase 2, el HC-05 tiene un alcance nominal de 10 m en exteriores, por supuesto. El alcance es algo reducido en interiores, principalmente a causa de las paredes.
Y la mejor parte: estos módulos son muy fáciles de usar. No tienes que preocuparte por los protocolos Bluetooth ni la pila. Simplemente envíe datos a través de un puerto serie y se reenviarán al dispositivo Bluetooth al que está conectado.
Modos de funcionamiento
Controlar el módulo HC-05 y enviar datos a través del módulo son dos operaciones diferentes, pero ambas se realizan a través del puerto serie. Para distinguir entre estos dos tipos de datos, el HC-05 utiliza dos modos de comunicación diferentes: modo AT y modo de datos.
En Modo ATPuede configurar varios ajustes del módulo HC-05, como nombre, velocidad en baudios, código PIN y velocidad de datos.
En Modo de datosEl módulo HC-05 actúa como una puerta de enlace de datos transparente. Cuando el HC-05 recibe datos, elimina los encabezados y trailers de Bluetooth y los envía al puerto UART. Cuando se escriben datos en el puerto UART, el HC-05 crea un paquete Bluetooth y lo envía a través de la conexión inalámbrica Bluetooth.
Conectando roles
El módulo Bluetooth HC-05 puede funcionar en dos funciones principales: maestro y esclavo.
En rol de esclavoEl módulo HC-05 espera a que se conecten otros dispositivos. Esta es la función predeterminada del módulo y se utiliza a menudo en proyectos en los que desea controlar cosas con un teléfono inteligente.
En rol maestroEl HC-05 busca activamente otros dispositivos Bluetooth e intenta establecer una conexión. Este modo se utiliza en proyectos donde dos microcontroladores necesitan comunicarse de forma inalámbrica.
Para cambiar entre roles, debe configurar el módulo HC-05 poniéndolo en modo AT y enviando comandos AT a través del puerto UART.
Actuación
El voltaje de funcionamiento máximo del chip HC-05 desnudo es de 3,3 V. Por lo tanto, el módulo tiene un regulador lineal de 3,3 V, que permite que un voltaje de 3,6 V a 6 V alimente el módulo.
Es importante señalar que el módulo HC-05 tiene un nivel lógico de 3,3V. Por lo tanto, no podemos conectar directamente el pin Rx del módulo HC-05 a un pin digital de un microcontrolador de 5V como un Arduino UNO. En otras palabras, el pin Rx del módulo HC-05 no tolera 5V. Por lo tanto, la señal Tx del microcontrolador debe reducirse a 3,3 V antes de conectarlo al módulo HC-05.
El consumo de energía del módulo HC-05 depende de su estado. Esta tabla de la hoja de datos proporciona algunas buenas estimaciones:
modo | Consumo actual |
Asociado con la transmisión de datos. | 45mA |
Conectado mientras está inactivo | 8mA |
LED de estado
Muchos módulos HC-05 tienen un LED integrado.
Parpadea a diferentes frecuencias para indicar el estado:
- Cuando se enciende, el módulo ingresa al modo de emparejamiento Bluetooth y el LED parpadea rápidamente a aproximadamente 2 Hz.
- Cuando el módulo está emparejado con un dispositivo, el patrón de parpadeo del LED cambia a dos parpadeos rápidos, seguidos de una pausa y luego se repite.
- Cuando el módulo se coloca en modo AT, el LED parpadea lenta y constantemente.
Modo AT
El modo AT es el modo de configuración donde puede enviar comandos estilo AT de Hayes al módulo HC-05 para cambiar sus configuraciones como nombre, velocidad en baudios, contraseña, etc.
Normalmente el módulo HC-05 está en modo de datos. Para ponerlo en modo AT, debe mantener presionado el botón integrado mientras enciende el módulo. Luego, el LED comenzará a parpadear lenta y constantemente, indicando que el módulo está en modo AT.
En modo AT, puede enviar comandos AT al módulo a través del puerto UART. El módulo responde a los comandos reconociendo el comando, proporcionando los datos solicitados o informando un error. Los comandos suelen comenzar con “AT+” seguido del comando específico. Por ejemplo, «AT+NAME?» consulta el nombre del módulo o «AT+NAME=MyHC05» cambia el nombre a «MyHC05».
Los comandos AT deben enviarse a la velocidad en baudios especificada para el modo AT, que a menudo es diferente de la velocidad en baudios utilizada para la transmisión de datos. La velocidad en baudios predeterminada para el modo AT es 38400 bps, pero se puede cambiar si es necesario.
Distribución de pines HC-05
El módulo HC-05 tiene seis pines. Veamos el pinout.
CONDICIÓN El pin se puede utilizar para determinar el estado actual del módulo HC-05. El pin de estado es BAJO cuando el módulo no está emparejado y ALTO cuando está emparejado.
RXD El pin recibe datos en serie del microcontrolador. Debe estar conectado al TX del microcontrolador. Tenga en cuenta que este pin no tolera 5V. Por lo tanto, la señal Tx del microcontrolador debe reducirse a 3,3 V antes de conectar el módulo a un microcontrolador de 5 V.
TXD Pin envía datos en serie al microcontrolador. Debe estar conectado al RX del microcontrolador.
Dimensiones es el pin de tierra común a todos los demás dispositivos conectados al módulo.
VCC Aquí es donde se conecta el voltaje de suministro positivo. Esta señal de voltaje de suministro se transmite al chip HC-05 a través de un regulador de 3,3 V. Debe estar entre 3,6 V y 6 V.
ES está conectado al pin de habilitación del regulador integrado y es levantado por una resistencia de 220k. Cuando este pasador se baja, el regulador se desactiva, lo que en consecuencia apaga el HC-05.
Control del módulo HC-05
Para controlar el módulo Bluetooth HC-05 y enviar datos a través de él, sólo se requiere una interfaz serie. Básicamente, actúa como una tubería de datos: los datos en serie que ingresan al módulo (desde el pin RXD) se enrutan a través de la conexión Bluetooth. Los datos que llegan desde el lado Bluetooth se enrutan a través del lado serie (a través del pin TXD).
Para configurar este canal de datos, seguimos un proceso de dos pasos:
- Conecte el módulo HC-05 a un dispositivo que pueda enviar y recibir datos en serie, como un Arduino o cualquier microcontrolador con UART.
- Por el lado de Bluetooth, establecemos una conexión inalámbrica entre el módulo HC-05 y otro dispositivo habilitado para Bluetooth, como por ejemplo un teléfono Android. Esta conexión implica un proceso de emparejamiento similar al de conectar otros dispositivos Bluetooth. También necesita un programa de terminal instalado en su teléfono que pueda comunicarse a través de Bluetooth. Para ello recomendamos utilizar el “Terminal Bluetooth Serie” disponible en Play Store. Sin embargo, también hay muchas otras opciones gratuitas que puedes probar.
En resumen, todo lo que tenemos que hacer es configurar el puerto serie entre el HC-05 y nuestro microcontrolador y luego emparejar el HC-05 con el otro dispositivo Bluetooth y ¡estamos listos para comenzar!
Cableado de un módulo HC-05 a un Arduino
Conectar el módulo HC-05 a un Arduino es increíblemente fácil: sólo necesitas encenderlo y cablear los pines seriales RX y TX.
En lugar de conectar el módulo HC-05 al hardware UART del Arduino, utilizamos SoftwareSerial y conectamos los pines RX y TX del HC-05 a uno de los pines digitales libres del Arduino. Esto ayuda a evitar conflictos de bus y garantiza que el HC-05 no reciba datos no deseados al cargar un boceto.
Por lo tanto, TXD del módulo HC-05 está conectado a D3 del Arduino, RXD a D2, GND a GND y VCC a 5V. Los pines TXD y RXD en realidad se pueden conectar a cualquier pin digital (excepto 0 y 1). Entonces, si los pines 2 y 3 son necesarios para otros fines, no dudes en intercambiarlos.
Sin embargo, como recordará, el pin Rx del módulo HC-05 no tolera 5V. Por lo tanto, no puede conectar directamente el pin Rx del HC-05 al pin digital de Arduino (5V MCU). La señal Tx del Arduino debe transformarse a 3,3 V. Esto se puede lograr de varias maneras, pero la más sencilla es utilizar un divisor de resistencia. Una resistencia de 1K entre Rx del HC-05 y D2 del Arduino y una resistencia de 2K entre Rx y GND del HC-05 funcionan bien.
En resumen, estas son las conexiones que haremos para el código de muestra más adelante en este tutorial:
Módulo HC-05 | arduino | Observaciones | |
VCC | 5V | – | |
Dimensiones | Dimensiones | – | |
TXD | T3 – El maravilloso mundo de la locura | – | |
RXD | T2 – El segundo día | Si usa una MCU de 5 V, use un convertidor de nivel |
La siguiente imagen muestra cómo conectar el módulo HC-05 al Arduino Uno.
Bosquejo de paso a través de serie de Bluetooth
Con un poco de ingenio podemos utilizar el Arduino como medio entre nosotros y el módulo HC-05. A continuación se muestra un boceto simple que pasa datos entre el monitor serie Arduino y el módulo HC-05.
#include <SoftwareSerial.h>
//Create software serial object to communicate with HC-05
SoftwareSerial mySerial(3, 2); //HC-05 Tx & Rx is connected to Arduino #3 & #2
void setup()
{
//Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
Serial.begin(9600);
//Begin serial communication with Arduino and HC-05
mySerial.begin(9600);
Serial.println("Initializing...");
Serial.println("The device started, now you can pair it with bluetooth!");
}
void loop()
{
if(Serial.available())
{
mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
}
if(mySerial.available())
{
Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
}
delay(20);
}
Después de cargar el boceto, abra el monitor serie con una velocidad de baudios de 9600. Debería ver el siguiente mensaje: «¡El dispositivo se ha iniciado, ahora puedes emparejarlo mediante Bluetooth!».
Conexión al teléfono Android
Configuremos una conexión inalámbrica entre el módulo HC-05 y un teléfono Android. El proceso puede variar dependiendo de tu dispositivo, pero los pasos generales son bastante similares.
1. Asegúrese de que el módulo HC-05 esté encendido y listo para conectar. El LED integrado debería parpadear rápidamente a unos 2 Hz, lo que indica que se reconoce el dispositivo.
2. Ahora deslízate hacia abajo desde la parte superior de la pantalla de tu teléfono Android. y asegúrese de que Bluetooth esté activado.
3. Mantén presionado el ícono de Bluetoothluego toque «Emparejar nuevo dispositivo» y espere unos segundos.
4. Toque el nombre del dispositivo Bluetooth que desea emparejar con su dispositivo (en nuestro caso HC-05). Sigue las instrucciones en la pantalla.
5. Cuando se le solicite, ingrese 1234 como su código PIN. Este es el PIN predeterminado para cada módulo HC-05.
6. Para los siguientes pasos de este tutorial, necesitará una aplicación de terminal Bluetooth instalada en su teléfono inteligente. Recomendamos utilizar la aplicación de Android “Serial Bluetooth Terminal”, disponible en Play Store.
7. Después de la instalación, inicie la aplicación «Serial Bluetooth Terminal». Haga clic en el icono en la esquina superior izquierda y seleccione «Dispositivos».
8vo. Debería ver una lista de dispositivos a los que se ha conectado anteriormente. Seleccione “HC-05” de esta lista.
9. Debería recibir un mensaje «Conectado». El patrón de parpadeo del LED integrado de su HC-05 ahora debería cambiar a dos parpadeos rápidos seguidos de una pausa. ¡Eso es todo! Su teléfono inteligente ahora está emparejado exitosamente con el módulo Bluetooth del HC-05 y listo para la comunicación.
10. Ahora ingresa algo en el campo de entrada en la parte inferior de la aplicación.por ejemplo «¡Hola!»
11. Debería recibir inmediatamente este mensaje en el Arduino IDE Serial Monitor.
12. También puede intercambiar datos entre su monitor serie y su teléfono inteligente. Ingrese algo en el campo de entrada superior del monitor en serie y presione el botón «Enviar».
13. Debería recibir este mensaje inmediatamente en la aplicación Serial Bluetooth Terminal.
Proyecto Arduino: relé controlado por Bluetooth
Creemos un proyecto simple que le permita controlar los relés de forma inalámbrica a través de Bluetooth. Esto puede resultar útil para la domótica, la iluminación inteligente, los sistemas de seguridad y otras aplicaciones similares.
En este proyecto estamos utilizando un módulo de relé de doble canal. Si no estás familiarizado con esto, lee el siguiente tutorial.
alambrado
Usaremos la misma configuración de Arduino que en el ejemplo anterior, pero esta vez agregaremos un módulo de relé de dos canales para alimentar una lámpara.
La siguiente imagen muestra cómo se construye el circuito.
código arduino
Cuando haya terminado de realizar el cableado, pruebe el siguiente esquema.
#include <SoftwareSerial.h>
// GPIO where relay is connected to
const int relayPin = 6;
// Handle received messages
String message = "";
// Create software serial object to communicate with HC-05
SoftwareSerial mySerial(3, 2); //HC-05 Tx & Rx is connected to Arduino #3 & #2
void setup() {
// Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
Serial.begin(9600);
// Initialize relayPin as an output
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH);
//Begin serial communication with Arduino and HC-05
mySerial.begin(9600);
Serial.println("Initializing...");
Serial.println("The device started, now you can pair it with bluetooth!");
}
void loop() {
if (mySerial.available()){
char incomingChar = mySerial.read();
if (incomingChar != 'n'){
message += String(incomingChar);
}
else{
message = "";
}
Serial.write(incomingChar);
}
// Check received message and control output accordingly
if (message == "on"){
digitalWrite(relayPin, LOW);
}
else if (message == "off"){
digitalWrite(relayPin, HIGH);
}
delay(20);
}
Probando el código
Después de cargar el boceto, abra el monitor serie con una velocidad de baudios de 9600. Debería ver el siguiente mensaje: «¡El dispositivo se ha iniciado, ahora puedes emparejarlo mediante Bluetooth!».
Inicie la aplicación Serial Bluetooth Terminal y conéctese a su módulo HC-05.
Si ahora ingresa «on» en el campo de entrada en la parte inferior de la aplicación, el relé debería activarse inmediatamente. Al ingresar “off” también se desactivará el relé inmediatamente.
Además, recibirá estos mensajes con fines de monitoreo en Arduino IDE Serial Monitor.
La aplicación ofrece varias macros que puedes personalizar para guardar mensajes estándar. Por ejemplo, puede asociar M1 con el mensaje «Encendido» y M2 con el mensaje «Apagado». Esto le permite controlar fácilmente el relé usando los botones predefinidos, agregando una capa adicional de conveniencia a su proyecto.
Siga adelante
Esperamos que este tutorial te haya preparado para una emocionante incursión en el mundo de Bluetooth. Ahora que tiene una buena idea de cómo enviar y recibir datos entre el HC-05 y su teléfono inteligente, es hora de profundizar más y aprender a controlar el HC-05 mediante la configuración de comandos AT.
Y aprenda cómo habilitar la comunicación inalámbrica entre dos placas Arduino utilizando módulos Bluetooth HC-05, abriendo aún más posibilidades para sus proyectos inalámbricos.
Conexión del módulo Bluetooth HC05 a Arduino
El Bluetooth está en todas partes en la actualidad. Es una palabra que escuchamos todo el tiempo y está en millones de productos que usamos todos los días, incluidos auriculares, teléfonos celulares, computadoras portátiles, controladores de juegos, rastreadores de actividad, entre otros.
Visión general del hardware HC-05
El módulo HC-05 es un puente Bluetooth a serie que permite la comunicación inalámbrica entre dos microcontroladores o entre un microcontrolador y un teléfono inteligente, computadora portátil o PC de escritorio con capacidad Bluetooth. ¡Es perfecto para reemplazar directamente una interfaz serie asíncrona con cable!
¿En qué modos puede operar el HC-05?
El HC-05 se puede poner en modo AT para configurar diversos ajustes del módulo o en modo de datos para actuar como una pasarela de datos transparente.
¿Qué roles de conexión puede tener el HC-05?
El módulo Bluetooth HC-05 puede funcionar en dos roles principales: Maestro y Esclavo, dependiendo de la configuración necesaria para su proyecto.
¿Cómo se alimenta el HC-05?
El módulo HC-05 tiene un regulador lineal de 3.3V para garantizar que la tensión de alimentación esté dentro del rango adecuado.
Conclusión
Al final de estos tutoriales, tendrás una buena comprensión de cómo utilizar el módulo Bluetooth HC-05 en tus proyectos. Así que, ¡vamos a empezar!
Referencias
Para obtener más información detallada sobre la conexión del módulo Bluetooth HC-05 a Arduino, te recomendamos visitar los siguientes enlaces: