En la sesión anterior presentamos algunos conceptos básicos sobre las redes Bluetooth y las funciones que se suelen realizar con ellos. Presentamos el concepto de Master y Slave y configuramos el modulo HC-06 que solo podía trabajar en el modo Slave.
En esta sesión, vamos a utilizar su hermano mayor el modulo HC-05, que puede configurarse tanto como Master que como Slave, y que además dispone de bastante más parámetros de configuración y capacidades de interrogación.
El aspecto externo es bastante similar y la mejor manera de diferenciarlos es por los pines el soporte, 4 para el HC-06 y 6 pines para el HC-05.
En la última sesión insistimos en que no hay diferencias hardware entre ambos modelos, pero sí que hay diferencias muy importantes en el firmware (La programación interna del módulo).
Además, mientras que el HC-06 entra en modo de programación en cuanto lo enciendes y mientras no haya nadie conectado por Bluetooth, el HC-05 es ligeramente más complicado de colocar en modo comandos y requiere una cierta manera de arrancado, concretamente requiere que el pin KEY, (Que no estaba conectado el caso del HC-06) este en HIGH cuando encendemos el modulo.
He visto bastante información he internet que recomendaba unos ciertos procesos para arrancar el modulo que siempre me han parecido confusos y tienden a despistar a los que se acercan al tema por primera vez.
Por eso hemos decidido implementar este procedimiento en un Sketch de Arduino, para que podamos correrlo cuando necesitemos programar el módulo.
El procedimiento normal con estos módulos, suele ser conectarlos, ver la configuración y reprogramarlos con nuestras preferencias. Después mantendrá la programación hasta que decidamos cambiarla.
Pero parece que el proceso da bastante guerra, así que vamos a ver si podemos ayudar.
La conexión es muy sencilla aunque requiere algún cable:
Arduino - Módulo HC-05
Arduino - Módulo HC-06
Conversor USB-TTL - Módulo HC-05
Luego de la comunicación queda así:
Programa de control
Caso1: Sirve para Módulo de 5 ó 6 pines
Programando el Módulo con comandos AT - comandos
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+NAME Ejm: AT+NAMERobot
Respuesta: OKsetname
El nombre puede ser de hasta 20 caracteres como máximo
Cambiar Código de Vinculación
Por defecto viene con el código de vinculación (Pin) “1234”, para cambiarlo hay que enviar el siguiente comando AT
Enviar: AT+PIN Ejm: AT+PIN1465
Respuesta: OKsetPIN
Configurar la velocidad de comunicación:
La velocidad por defecto es de 9600 baudios, para cambiarlo se hace uso del siguiente comando AT:
Enviar: AT+BAUD
Respuesta: OK
Donde equivale a una velocidad de , los valores pueden ser:
Numero---baudrate
1 ---------1200
2 ---------2400
3 ---------4800
4 ---------9600
5 ---------19200
6 ---------38400
7 ---------57600
8 ---------115200
Ejemplo:
Enviar: AT+BAUD3
Respuesta: OK9600
Otros comandos AT de utilidad:
Obtener la versión del firmware:
Enviar: AT+VERSION
Respuesta: OK Ejm: OKLinvor1.8
Configuración de Paridad (solo configurable para versiones V1.5 o superiores)
Sin Paridad (Este es el valor por defecto)
Enviar: AT+PN
Respuesta: OK NONE
Paridad Impar
Enviar: AT+PO
Respuesta: OK ODD
Paridad Par
Enviar: AT+PE
Respuesta: OK EVEN
Más Información
En
la siguiente imagen podemos ver la secuencia de datos recibidos por el
monitor serial en el mismo orden en que se listaron los comandos AT:
No tendría demasiado sentido revisar aquí todos los posibles comandos AT, y por eso he preferido mostrar media docena de ellos, los más típicos, para que podáis experimentar y configurar el modulo.
Aquí tenéis una lista con algunos comandos a los que más o menos he encontrado sentido (Porque hay montones que no tengo ni idea para que sirvan).
AT COMMAND LISTING | |
---|---|
COMMAND | FUNCTION |
AT | Test UART Connection |
AT+RESET | Reset Device |
AT+VERSION | Query firmware version |
AT+ORGL | Restore settings to Factory Defaults |
AT+ADDR | Query Device Bluetooth Address |
AT+NAME | Query/Set Device Name |
AT+RNAME | Query Remote Bluetooth Device’s |
AT+ROLE | Query/Set Device Role |
AT+CLASS | Query/Set Class of Device CoD |
AT+IAC | Query/Set Inquire Access Code |
AT+INQM | Query/Set Inquire Access Mode |
AT+PSWDAT+PIN | Query/Set Pairing Passkey |
AT+UART | Query/Set UART parameter |
AT+CMODE | Query/Set Connection Mode |
AT+BIND | Query/Set Binding Bluetooth Address |
AT+POLAR | Query/Set LED Output Polarity |
AT+PIO | Set/Reset a User I/O pin |
Para aquellos que sientan curiosidad por saber que más se puede hacer con los comandos AT (Alguien habrá, ¿No?), les remito a un documento de Instructables que incluye un listado mayor de ellos. La dirección es:
Cuando hayamos programado el modulo como deseemos, podemos retirar la conexión del pin rotulado como KEY y el HC-05 está listo para trabajar normalmente sin aceptar ya comandos AT.
Bajar Material de aquí