Modulo Bluetooth
Modulo Bluetooth
TALLER AULAROBOT
Electrónica, Programación y Arduino
Profesor a cargo: Tec. Julián Andrés Goinhex
1° Cuatrimestre 2020
Practicas:
Modulo Bluetooth
Módulos Bluetooth
Es necesario saber que existen diferentes modelos de módulos Bluetooth entre los más populares
se encuentran HC-06 y el HC05, y entre otros.
Ambos módulos son prácticamente idénticos a simple vista, pero hay una simple diferencia, y es que
el módulo HC-06 funciona como Slave (Esclavo) y el HC-05 puede funcionar tanto como Salve
como Master (Maestro).
Cuando un dispositivo se comporta como esclavo, significa que, esta siempre esperando que otro
dispositivo (el Maestro) se conecte a él. A diferencia del Master que puede ser él mismo quien se
conecte a otros dispositivos (Esclavos).
El Módulo HC-06 viene configurado de fábrica como "Esclavo" (Slave) y no puede ser cambiado a
"Maestro" como si lo permite el módulo HC-05.
El Módulo Bluetooth HC-06 tiene dos estados de funcionamiento los cuales es importante conocer:
Modo AT (Desconectado):
Entra a este modo tan pronto alimentamos el módulo, y cuando no se ha establecido una conexión
bluetooth con ningún otro dispositivo. El LED del módulo estará parpadeando (frecuencia de
parpadeo del LED es de 100ms aproximadamente).
En este modo es cuando se debe enviar los comandos AT en caso se quiera configurar algún
parámetro, si se envían otros datos diferentes a los comandos AT, el HC-06 los ignorará.
Modo Conectado:
Entra a este modo cuando se establece una conexión con otro dispositivo bluetooth. El LED
permanece encendido sin parpadear.
Todos los datos que se ingresen al HC-06 por el Pin RX se trasmiten por bluetooth al dispositivo
conectado, y los datos recibidos se devuelven por el pin TX. La comunicación es transparente para el
programador.
Módulo HC-05
El módulo Bluetooth HC-05 viene configurado de fábrica como "Esclavo" (slave), pero se puede
cambiar para que trabaje como "maestro" (master), además al igual que el HC-06, se puede cambiar
el nombre, código de vinculación, velocidad y otros parámetros más.
Estado Desconectado:
Entra a este estado tan pronto alimentas el módulo, y cuando no se ha establecido una conexión
bluetooth con ningún otro dispositivo. El LED del módulo en este estado parpadea rápidamente
En este estado a diferencia del HC-06, el HC-05 no puede interpretar los comandos AT
Todos los datos que se ingresen al HC-05 por el Pin RX se trasmiten por bluetooth al dispositivo
conectado, y los datos recibidos se devuelven por el pin TX. La comunicación es transparente
Modo AT 1:
Para entrar a este estado después de conectar y alimentar el módulo es necesario presionar el botón
del HC-05. El LED del módulo en este estado parpadea rápidamente igual que en el estado
desconectado.
En este estado, podemos enviar comandos AT, pero a la misma velocidad con el que está
configurado.
Modo AT 2:
Para entrar a este estado es necesario tener presionado el botón al momento de alimentar el módulo,
es decir el módulo debe encender con el botón presionado, después de haber encendido se puede
soltar y permanecerá en este estado. El LED del módulo en este estado parpadea lentamente.
En este estado, para enviar comandos AT es necesario hacerlo a la velocidad de 38400 baudios,
esto es muy útil cuando nos olvidamos la velocidad con la que hemos dejado configurado nuestro
modulo.
Lo que hace es leer los datos enviados de la PC a través del monitor serial y se lo envía hacia los
pines RXD y TXD de nuestro módulo Bluetooth.
En la parte inferior del monitor debemos escoger “No hay fin de línea” y la velocidad “9600 baud” (la
velocidad por defecto de nuestro HC-06, si se lo ha cambiado poner la velocidad correspondiente).
Test de comunicación:
Lo primero es comprobar si nuestro bluetooth responde a los comandos AT.
• Enviar: AT
• Recibe: OK
Si recibimos como respuesta un OK entonces podemos continuar, sino verificar las conexiones o los
pasos anteriores.
Cambiar nombre de nuestro módulo HC-06:
Por defecto nuestro módulo bluetooth se llama “HC-06” o “Linvor” esto se puede cambiar con el
siguiente comando AT
• Enviar: AT+BAUD<Número>
• Respuesta: OK<baudrate>
Donde <Número> equivale a una velocidad de <baudrate>, los valores pueden ser:
1 ---------1200
2 ---------2400
3 ---------4800
4 ---------9600
5 ---------19200
6 ---------38400
7 ---------57600
8 ---------115200
Ejemplo:
• Enviar: AT+BAUD3
• Respuesta: OK4800
Nota: Después de cambiar la velocidad, para continuar enviando comando AT, hay que hacerlo con
la nueva velocidad, para eso si se está usando un conversor USB serial tan solo hay que cambiar la
velocidad en el monitor Serial (parte inferior); pero si está enviando los comandos AT a través de una
Arduino es necesario volver a programar y cargar un nuevo sketch con la nueva velocidad.
Obtener la versión del firmware:
• Enviar: AT+VERSION
• Respuesta: OK<Versión> Ejm: OKLinvor1.8
• Para entrar al modo AT 1: después de alimentar el módulo y haber encendido tan solo basta
presionar el botón que tiene el módulo HC-05, el LED del módulo seguirá parpadeando
rápidamente, por lo que para saber si hemos entrado al Modo AT 1 es necesario enviar
comandos AT y ver si responde, estos comandos se verán más adelante.
• Para entrar al modo AT 2: antes de alimentar o encender el módulo es necesario presionar
su botón, mantener presionado y alimentar el módulo, después que enciende recién podemos
soltar el botón. Si el LED Parpadea lentamente es porque ya está en Modo AT 2.
En este tutorial enviaremos los comandos AT usando el Modo AT 2, pero también es válido si están
en el Modo AT 1, con la diferencia que tendrán que cambiar a la velocidad con la que tienen
configurado su Bluetooth (si es la primera vez que configuran, la velocidad por defecto es de 9600).
En la parte inferior debemos escoger “Ambos NL & CR” y la velocidad “38400 baud” (la velocidad
para comunicarse en el MODO AT 2).
Test de comunicación:
Lo primero es comprobar si nuestro bluetooth responde a los comandos AT
• Enviar: AT
• Recibe: OK
Si recibimos como respuesta un OK entonces podemos continuar, sino verificar las conexiones o los
pasos anteriores.
Se puede saber cuál es el pin actual de nuestro modulo, para eso hay que enviar el siguiente
comando: AT+ PSWD?
Configurar la velocidad de comunicación:
La velocidad por defecto es de 9600 baudios, con Stop bit =0 (1 bit de parada), y sin Paridad, para
cambiar estos parámetros, se hace uso del siguiente comando AT:
Donde:
< Baud > equivale a una velocidad, los valores pueden ser: 4800, 9600, 19200, 38400, 57600,
115200, 23400, 460800, 921600 o 1382400.
< StopBit> es el Bit de parada, puede ser 0 o 1, para 1 bit o 2 bits de parada respectivamente, Para
aplicaciones comunes se trabaja con 1 bit por lo que este parámetro normalmente se lo deja en 0.
< Parity> Es la paridad, puede ser 0 (Sin Paridad), 1 (Paridad impar) o 2 (Paridad par). Para
aplicaciones comunes no se usa paridad, por lo que se recomienda dejar este parámetro en 0.
Ejemplo:
• Enviar: AT+UART=9600,0,0
• Respuesta: OK
Se puede saber cuál es la configuración actual, para eso hay que enviar el siguiente comando:
AT+UART?
Donde:<Role>
0 -> Esclavo
1 -> Maestro
Para saber cuál es la configuración actual, enviar el siguiente comando: AT+ ROLE?
0 -> Conectarse a un dispositivo con la dirección especificada (Se utiliza otro comando AT para
especificar esta dirección).
Enviar el siguiente comando para averiguar el modo actual de conexión: AT+ CMODE?
Especificar la dirección del dispositivo al cual nos vamos a conectar:
Esta configuración aplica cunado nuestro modulo está configurado como maestro, y a la vez el modo
de conexión está en 0 (CMODE=0) el cual indica que nos vamos a conectar al dispositivo esclavo en
particular. Para especificar la dirección al cual nos vamos a conectar se usa el siguiente comando AT
• Enviar: AT+BIND=<Address>
• Respuesta: OK
Donde:
< Address > Es la dirección del dispositivo al cual nos vamos a conectar, la dirección se envía de la
siguiente forma: 1234,56,ABCDEF la cual equivale a la dirección 12:34:56:AB:CD:EF
Ejemplo:
• Enviar: AT+BIND=E668,46,9277F2
• Respuesta: OK
Para ver la dirección actual en este parámetro hay que enviar el siguiente comando: AT+ BIND?
• Enviar: AT+ADDR?
• Respuesta: +ADDR:<dirección> Resp Ej: +ADDR: 98d3:31:2052e6
Resetear nuestro Modulo, después de hacer esto salimos del MODO AT:
• Enviar: AT+RESET
• Respuesta: OK
• Enviar: AT+ORGL
• Respuesta: OK
*Al hacer esto todos los parámetros del módulo se restablecen, a los valores por defecto de fábrica.
En algunas versiones la velocidad cambia a 38400 baudios y en otros a 9600.