Tras buscar por Internet un código con el que pudieses reconfigurar fácilmente  los módulos Bluetooth HC-05 y HC-06 con Arduino, no encontré nada que fuese cuasi-desasistido, y aún menos que fuese cómodo para cuando no recordases la configuración que le pusiste la última vez al módulo. Así que cogí como base el tutorial de [1], y automaticé un poco el proceso, con el resultado que muestro en esta entrada.

0 – Diferencias entre los módulos HC-05 y HC-06

La principal diferencia entre estos módulos es que el HC-05 se puede configurar como maestro y como esclavo, mientras que el HC-06 es siempre esclavo. Además, el HC-05 suele tener 6 pines conectados y un pulsador, sin embargo, el HC-06 sólo cuatro pines y no tiene ningún pulsador, tal y como se puede apreciar en la imagen.

Imagen de los módulos HC-05 (arriba) y HC-06 (abajo)

HC-05 (arriba) y HC-06 (abajo)

Con el conexionado y el código propuesto, no es necesario activar el pulsador del HC-05, así que omitiré la explicación sobre su uso.

1 – Conexionado

El conexionado propuesto es el siguiente:

Conexión entre HC-05 y Arduino

Conexión entre HC-05 y Arduino

Aunque puede cambiarse fácilmente usando estas variables, teniendo en cuenta siempre que no es recomendable usar los pines 0 y 1, ya que, como sabemos, son los de transmisión del puerto serie conectado al USB, y consultando las limitaciones de la librería SoftwareSerial [2], ya que es la que se usará en la comunicación. También cabe añadir, que a la entrada de Bluetooth “KEY”, a veces se le llama “EN”

2 – Configuración

Las opciones de configuración son las siguientes: velocidad de transmisión del puerto serie, nombre que se le va a dar al módulo BlueTooth (BT), velocidad de transmisión del BT, contraseña y rol (maestro o esclavo) del BT, y si se quiere configurar o se desea preguntar la configuración que tiene (variable configurar).

3 – Ejecución

Como está automatizado para que no tengas por qué saber el estado inicial de la configuración del módulo BT, prueba todas las velocidades de transmisión aceptadas por el módulo, hasta que la respuesta es la que se espera. Una vez conocida la velocidad de transmisión, envía toda la configuración (o las preguntas) al módulo. Una salida típica por el monitor serie es la siguiente:

Como podemos observar, podemos añadir configuraciones extras además de las típicas incluidas el programa.

4 – Descarga

En el siguiente enlace se encuentra el fichero completo:

https://github.com/Juan-A-Castro/ATFinder

Bibliografía

[1] http://www.instructables.com/id/Modify-The-HC-05-Bluetooth-Module-Defaults-Using-A

[2] https://www.arduino.cc/en/Reference/SoftwareSerial