Configuración del módulo bluetooth HC-06 usando comandos AT
En este tutorial aprenderemos a configurar algunos parámetros del Módulo Bluetooth HC-06, como: cambiar la velocidad de transmisión, el nombre y código de vinculación, entre otras cosas.
Este tutorial solo se aplica al Módulo Bluetooth HC-06, para el HC-05 la configuración es diferente para el cual hemos realizado un tutorial aparte.
El Módulo Bluetooth HC-06 permite la configuración de algunos de sus parámetros de funcionamiento mediante el uso de comando AT. Los comandos AT son una lista de comandos que inician siempre con las letras AT, estos comandos son enviados por medio de un puerto Serie por lo que necesitaremos un Arduino o Conversor USB Serial para poder enviar los comandos desde nuestra PC.
Algunos parámetros que vienen por defecto se muestran a continuación:
- Nombre por defecto: “linvor” o “HC-06”
- Código de emparejamiento por defecto: 1234
- La velocidad por defecto (baud rate): 9600
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.
1. Modos de trabajo del HC-06:
El Módulo Bluetooth HC-06 tiene dos estados de funcionamiento los cuales es importante conocer:
E1. Modo AT (Desconectado):
- Entra a este modo tan pronto alimentamos el modulo, y cuando no se ha establecido una conexión bluetooth con ningún otro dispositivo..
- EL LED del módulo está parpadeando (frecuencia de parpadeo del LED es de 102ms).
- 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á.
E2. Modo Conectado:
- Entra a este modo cunado 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.
- En este Modo el HC-06 no puede interpretar los comandos AT.
2. Conexión entre la PC y el Módulo HC-06:
Entendido lo anterior, veamos las conexiones para configurar el HC-06.
Se puede hacer un programa o "sketch" en Arduino que haga toda la configuración, pero nosotros lo haremos manualmente desde la PC, esto lo podemos hacer de dos formas:
2.1. Hacer la comunicación entre la PC y el módulo de forma indirecta a través de un Arduino:
Las conexiones serían las siguientes:
Ahora es necesario compilar y cargar el siguiente sketch que hemos preparado, que como vemos lee el Monitor Serial de nuestro IDE y se lo envía serialmente hacia los pines RXD y TXD de nuestro módulo HC-06.
2.2. Hacer la comunicación entre la PC y el módulo de forma Directa usando un Conversor USB-Serial:
Las conexiones serían las siguientes:
Como se observa los datos le llegan directamente desde la PC a través del módulo USB a Serial, para esto se pueden usar cualquier modelo de Conversor como el CP2102 y PL2303 pero también se puede hacer a través de un módulo MAX232 en caso tengan un puerto físico serial en su PC.
3. Configurando nuestro Módulo HC-06:
En nuestro ejemplo usaremos un conversor USB serial PL2303 que se ha instalado en nuestra PC como puerto serial "COM5", por lo que antes de abrir el Monitor serial en el IDE Arduino debemos escoger dicho puerto.
Es bueno recordar que para enviar los comandos AT, nuestro HC-06 debe estar en Modo AT, esto significa sin conexión bluetooth con otro dispositivo o verificar que LED del HC-06 esté parpadeando.
Una vez hecho las configuraciones y conexión correspondientes, abrimos el Monitor serial del IDE de Arduino, también podemos usar cualquier otro monitor serial como: Termite.
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)
Realizado lo anterior, podemos ahora enviar los comandos AT a nuestro Bluetooth:
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<Nombre> 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<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<Número>
Respuesta: OK<baudrate>
Donde <Número> equivale a una velocidad de <baudrate> , los valores pueden ser:
Número---baudrate
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.
Otros Comandos AT de utilidad:
Obtener la versión del firmware:
Enviar: AT+VERSION
Respuesta: OK<Versión> Ejm: OKLinvor1.8
Configuración de Paridad (solo configurable para versiones V1.5 o superiores):
Sin Paridad (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
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:
ma** 24/09/2023 Responder
Hola,tengo un problema al tratar de conectar el hc-05 con el hc-06. ya realice las configuraciones correspondientes y se habían conectado pero ya no se logran conectar nuevamente. ¿Qué puede ser? y ¿Cómo puedo solucionarlo?. Puedes ayudarme por favor.
Se**** 04/03/2021 Responder
Hola amigo el monitor serie de mi arduino no tiene la opcion de "No hay fin de línea", y sera que por eso no me responde a los comandos AT, ya que intente con todas las opciones que tiene y nadaIs*** 08/10/2020 Responder
Este modulo ¿se puede usar solo conectándolo al convertidor USB y usarlo para otra cosa (como modulo externo para pc o convertir un dispositivo en bluetooth)?GU***** 25/02/2020 Responder
Disculpa, el arduino conectado al hc-06 no me responde al AT para iniciar, sabes a que se debe?An****** 01/05/2024 Responder
Es porque tal vez estás usando el enter en vez del intro derecho, prueba con eso, tal vez te funcioneVA******* 07/09/2019 Responder
disculpa,como pudiste hacer el circuito en tinkercad con el modulo bluetooth.?Es que yo no he podidoTo**** 03/09/2019 Responder
sería posible visualizar la intensidad de la intensidad de la señal del bluetooth en el monitor?em****** 26/03/2019 Responder
buenas tardes, quiero conectar dos Hc05 q emitan un peso y el otro imprima el peso optenido de un indicardor, alquien q me pueda ayudaMa**** 31/10/2018 Responder
Escribo esto para que otros no pierdan tiempo si les ocurre lo mismo que a mí.En la consola serie del IDE de Arduino, si pongo "No hay fin de línea", no me responde a los comandos AT
En cambio, cuando lo pongo a "Both NL & CR" sí recibe correctamente comandos AT y los responde correctamente
Estoy usando un conversor USB-Serie
Por lo demás muy buen artículo.
GA***** 26/10/2018 Responder
hice todo como esta en las instrucciones pero no aparece para conectarse en celulares ni computadoras¿alguien sabe porque?
Fe****** ***** ****es 25/08/2018 Responder
Tengo un modulo HC06 que no se conecta a mi bluetooth de mi telefono, en el telefono me dice que el HC06 no esta configurado para acoplarceFe****** 11/07/2018 Responder
Tengo un modulo h06 que cuando ledoy alimentación parpadea diez segundos en rojo y nada mas estará malo ???Lu*** 01/06/2018 Responder
Hola, estoy queriendo configurar el HC-06. El problema que tengo es que me permite variar el PIN, los baudios pero no el nombre. Cuando escribo el comando no recibo ninguna respuesta. Ademas, mis dispositivos no lo reconocen, no se si sera algún problema en la velocidad, pero ni la pc ni el celular me permiten conectarme. Espero puedan orientarme, muchas graciasMa**** 20/05/2018 Responder
¿Qué puede pasarme que sólo me responde al comando "OK" e ignora todos los demás?VA****** 01/02/2022 Responder
A MI ME PASA LO MISMO , ¿QUE PUEDE SER?ne**** 01/03/2018 Responder
" 'class softwareserial' has no member named 'available' ". por que me sale esto???An**** 02/06/2020 Responder
Porque es con mayúsuclas "SoftwareSerial" en C se consideran las mayúsculas como otra letra.Ja**** 16/02/2018 Responder
Hola tengo un modulo ya configurado pero no recuerdo el pin ni la velocidad y cuando envio los AT no funcionan Ayuda!Jo** 24/01/2018 Responder
Hola, envio comandos AT pero no responde a nada, he probado con otros modulos pero sigue pasando lo mismo, y esta todo bien conectado. Si alguien me puede ayudar, gracias.Cr****** ******in 11/08/2020 Responder
me pasó lo mismo... si está todo bien, debe agregar NL y CR(nueva linea y carrier return)Ra****** 21/03/2021 Responder
Para el HC-06, NO DEBE PONERSE NUNCA NL y/o CR.De otro nodo, algunos comandos que envíen sin datos, se interpretan como con dato adjunto, ej.:
AT+NAME (con NL y/o CR) se interpreta como:
AT+NAME" " (Es decir adopta el nombre -Espacio- aka: CHR$(32) ).
Si no ve respuesta, pruebe a seguir exactamente esta secuencia:
SIN CONECTAR el FTDI, conecte las señales, pero...
La línea que va al RX del HC-06, NO DEBE PASAR NUNCA de 3.3v
Por lo que,deberá poner:
Una resistencia entre ese pin y GND de 2K2 y
Una resistencia en serie con la señal TX desde el FTDI que va al RX del HC-06.
Es decir, un divisor de tensión simple.
Si no hizo esto, su módulo pudo haberse averiado ya y será INSERVIBLE.
(Por experiencia lo afirmo).
Una vez conectado de ese modo, conecte el FTDI al PC.
Con un móvil (p.ej...) busque dispositivos cercanos BT.
Deberá aparecer HC-06.
Conecte a él, con password 1234.
Pruebe de nuevo la comunicación vía FTDI con cualquier programa terminal serie o inlcuso con el MONITOR SERIE del IDE de Arduino a 9k6bds.
En cualquier caso, deberá configurar para que se utilice el COM que proporcione el FTDI.
Configuración del COM:
9600 bds
8 N 1
Flujo: OFF
Ciao,
Rafael.
Se******* *****as 15/09/2017 Responder
HolaHe echo estos pasos, tambien he descargado una aplicacion para usarla con el modulo, peroc cuando conecto el modulo, el LED deja de parpadear y se apaga, no queda encendido, por lo que el envio de datos no se ejecuta.
¿que sucede y como se puede corregir?
Gu******* 01/08/2017 Responder
Hola, muy bueno el tuto! Me sale todo correctamente y he visto que este módulo va con Bluetooth v2.0, menos eficiente que los BLE v4.0. Si me compro uno con la especificación BLE 4.0, ¿La programación implementada en este tutorial me serviría igual o tendría que hacer una implementación diferente? Gracias!Gu******* 01/08/2017 Responder
Hola, muy bueno el tuto! Me sale todo correctamente y he visto que este módulo va con Bluetooth v2.0, menos eficiente que los BLE v4.0. Si me compro uno con la especificación BLE 4.0, ¿La programación implementada en este tutorial me serviría igual o tendría que hacer una implementación diferente? Gracias!La**** 11/07/2017 Responder
Hola, existe algun comando?, si se puede??, para poner el modulo Hc-06 en modo sleep????, graciasNa***** 16/07/2017 Responder
Hola, Si es por el lado de energía es automático, mientras el modulo no tenga ninguna conexión bluetooth entra en modo de bajo consumo que es alrededor de 3mA, también por hardware tiene un pin EN para habilitar o deshabilitar el modulo.Al**** 19/06/2017 Responder
Hola una pregunta hice todo pero no me responde nada y aparecen letras como esta AVœ no sé si es que el modulo viene mal o si es otra cosa.SaludosFR**** ******EZ 21/11/2017 Responder
ESO SE DEBE A LA VELOCIDAD, SETEALA EN AT+BAUD4, Y YA CON ESO ESTA, POR LO GENERAL TODO EL MUNDO TRABAJA A ESA VELOCIDADMi**** 24/05/2017 Responder
Hola,Compre el módulo bluetooth HC-06, mi consulta es que aplicación funciona para poder utilizarla con IOS de un iphone. Casi todas las aplicaciones que he visto son para android.
Saludos,
Miguel
Na***** 27/05/2017 Responder
Hola Miguel el HC-06 es Bluetooth 2.0 y no son compatibles con los iPhone, Para esto necesitas un HM-10 (Bluetooth 4.0 BLE)re****** 23/08/2019 Responder
hola amigo deseo hacerle una pregunta referente al modulo hac06yo me conecto con el hc06 le envio informacion casi todo ok, el problema esta en que cuando no interactuo con el a los 30 segundos de desconecta, eso es asi o hay alguna forma de mantenerlo conectado aunque no este recibiendo datos, por favor envie respuesta a mi email pues no reviso con frecuencia estos sitios, por no tener internet a full, disculpe las molestias..