BlueTooth HC-05

Existen dos modelos de módulos Bluetooth: el HC-05 que puede ser maestro/esclavo (master/slave), y el HC-06 que solo puede actuar como esclavo (slave). La diferencia entre maestro y esclavo es que en modo esclavo es el dispositivo quien se conecta al módulo, mientras que en modo maestro es el módulo quien se conecta con un dispositivo.

Físicamente, los dos módulos son muy parecidos, solo varían algunas conexiones. Los pins que encontraremos son los siguientes:

-Vcc: Alimentación del módulo entre 3,6V y 6V.

-GND: La masa del módulo.

-TXD: Transmisión de datos.

-RXD: Recepción de datos a un voltaje de 3,3V.

-KEY: Poner a nivel alto para entrar en modo configuración del módulo (solo el modelo HC-05)

-STATE: Para conectar un led de salida para visualizar cuando se comuniquen datos.

En esta sesión, vamos a utilizar el modulo HC-06, que puede configurarse como Slave,

Comandos AT

Los comandos AT son un tipo de comandos que sirven para configurar el módulo Bluetooth a través de un microcontrolador, . Son unas instrucciones que  permiten cambiar los baudios del módulo, el PIN, el nombre, etc.

Para usar los comandos AT el módulo Bluetooth no debe estar vinculado a ningún dispositivo (led rojo del módulo parpadeando). Según las especificaciones del módulo, el tiempo que se tiene que respetar entre el envío de un comando AT  y otro tiene que ser de 1 segundo. Si se envía un comando AT y en menos de un segundo se envía otro, el módulo no devuelve respuesta.

Ahora vamos a configurar el módulo Bluetooth a través de comandos AT enviados desde el Monitor Serial del Arduino.

Código ejemplo de configuración:

#includeSoftwareSerial.h; //Librería que permite establecer comunicación serie en otros pins
/* en caso de arduino mega no es necesario ponerlo
//Aquí conectamos los pins RXD,TDX del módulo Bluetooth.

SoftwareSerial BT(10,11); //10 RX, 11 TX.

setup()
{
 BT.begin(9600); //Velocidad del puerto del módulo Bluetooth
 Serial.begin(9600); 
}

loop()
{
 if(BT.available())
 {
 Serial.write(BT.read());
 
 if(Serial.available())
 {
 BT.write(Serial.read()); 
 }
}

 

El HC-05 es necesario poner el pin KEY del módulo a nivel alto (5V) para enviar comandos AT. Además, al enviar un comando AT hay que enviar un carácter de LF (nueva línea) y de CR (retorno de carro) al final del comando. Por lo tanto, en el Monitor Serial de Arduino pondremos Ambos NL & CR.

Los comandos AT que se pueden enviar en este módulo son los siguientes:

 

Comando AT

Descripción

Respuesta

AT

Test de comunicación.

Responde con un OK

AT+VERSION

Retorna la versión del Modulo

OKlinvorV1.9

AT+BAUDx

Configura la velocidad de trasmisión del modulo según el valor de “x”1 = 1200 bps

2 = 2400 bps

3 = 4800 bps

4 = 9600 bps (por defecto)

5 = 19200 bps

6 = 38400 bps

7 = 57600 bps

8 = 115200 bps

9 = 230400 bps

A = 460800 bps

B = 921600 bps

C = 1382400 bps

AT+BAUD4 Configura la velocidad a 9600 baud rate Responde con OK9600

AT+NAMEx

Configura el nombre con el que se visualizara el modulo, soporta hasta 20 caracteres AT+NAMEDIYMakers Configura el nombre del modulo a DIYMakers Responde con OKsetname

AT+PINxxxx

Configura el Pin de acceso al modulo (password).1234 por defecto. AT+PIN1122 Configura el pin a 1122 Responde con OKsetPIN