Configurar HC-05 bluetooth sin TTL con Arduino y modo AT

Introducción

Cuando conseguimos un módulo bluetooth HC-05 siempre será necesario cambiar el nombre y la contraseña. En casos más avanzados, vamos a necesitar incluso cambiar el modo (esclavo o maestro). Me he topado con muchos tutoriales por ahí, todos varían y algunos piden un módulo USB a TTL.

Al final de todo logré entrar en modo AT para configurar mi módulo. Y no necesité otra cosa más que un Arduino, el propio módulo y el cable con el que se suben los programas al Arduino.

Dicho esto, comencemos.

Pequeña nota: este tutorial supone que tenemos el módulo que se muestra en la imagen de abajo. Dicho módulo trae 6 pines y no trae bien especificado el pin KEY. Aunque si el nuestro sí lo trae, esto debería funcionar, sólo tendríamos que conectar el pin de configuración (9) al de la KEY en lugar del 34.

Materiales

Los acabo de mencionar arriba, pero aquí los dejo de nuevo

  • Cables dupont
  • Módulo Bluetooth HC 05
  • Arduino UNO (o cualquier otro; no he probado pero debería funcionar)

Circuito

El circuito no es nada complejo; no pude hacerlo en tinkercad ya que no existe ese módulo, pero en Fritzing sí lo tienen, así que aquí está:

Observemos algunas cosas…

  • Lo primero que quiero que se note es que el cable amarillo va al pin 34 del módulo bluetooth. Si somos valientes, podemos soldarlo (pero qué pereza y dificultad), y si no, simplemente lo tenemos que mantener ahí para que haga contacto. Le podemos pegar un cable con cinta, o algo que se nos ocurra; de todos modos, sólo será para entrar al modo AT.
  • El RX y TX van a cada pin del Arduino. Notar por favor que esos pines pueden ser cambiados desde el código que se detalla más abajo.
  • EL GND va a tierra y el VCC va a los 5 voltios. Ojo con este de VCC, ya que para configurar tendremos que desconectarlo y hacer unas cosas con él. Explicaré esto más abajo, pero no está de más recalcar que éste cable será el que estaremos moviendo.
  • Finalmente, el pin que dice EN no van a ningún lado. Al menos no para esto.

 

Programando Arduino para programar módulo

Lo primero que tenemos que hacer es subir un pequeño sketch a nuestro Arduino para comunicarnos directamente con el HC-05. Nuestro Arduino simplemente actuará como medio para enviar y traer los datos. Aquí les dejo el código:

Nota: recomiendo desconectar cualquier cosa del Arduino antes de subir este código. Una vez compilado y subido, ahora sí podemos conectar el módulo con el circuito que está arriba.

Pasemos al siguiente paso.

Poniendo modo AT

Una vez que nuestro circuito este correctamente conectado como lo muestro arriba, y nuestro código subido al Arduino, vamos a entrar en modo AT. Es importante seguir los pasos al pie de la letra. No tienen que ser al instante; es decir, podemos dejar que pase cualquier cantidad de tiempo entre cada paso.

Todo es cuestión de relajarnos y hacer lo siguiente:

  1. Configurar monitor serial del IDE de Arduino a 9600 baudios y en ajuste de línea elegimos NL & CR
  2. Cerrar monitor serial
  3. Dejar intactos todos los cables que van del Arduino al módulo, así como están en el circuito de arriba. No debemos mover ninguno.
  4. Desconectar Arduino de la PC y de cualquier fuente de alimentación
  5. Desconectar alimentación que va al módulo HC-05. Es decir, desconectar el cable que va al VCC (el rojo).
  6. Conectar alimentación de Arduino
  7. Conectar alimentación de módulo Bluetooth. Es decir, volver a conectar el VCC (el rojo).
  8. Abrir monitor Serial

Si el módulo parpadea cada 2 segundos (se enciende, espera dos segundos para apagarse, espera otros dos segundos y se enciende de nuevo, infinitamente) es que lo hemos hecho bien y podremos pasar al siguiente paso. Si no, verifica si te has saltado algún paso.

Configurando y hablando con nuestro módulo

Al abrir el monitor serial, debió aparecerse algo así:

Eso significa que estamos listos para enviar y recibir información. Lo primero que escribiremos será at y presionaremos Enter. Nos debe responder con OK.

Ahora sí viene lo interesante. Vamos a configurar contraseña y nombre. Pero antes, una pequeña explicación.

Leyendo valores

Para leer un valor (es decir, leer una variable del módulo) usaremos:

at+[variable] en donde variable puede ser name, pswd, etcétera. Notar por favor el signo de +, ya que ese signo debe ir literalmente antes del nombre de la variable. Ver los ejemplos de abajo para entenderlo mejor.

Estableciendo valores

at+[variable]=nuevoValor en donde variable puede ser name, pswd, etcétera. Notar por favor el signo de +, ya que ese signo debe ir literalmente antes del nombre de la variable. También es importante ver que usamos el signo =, y luego ponemos el nuevo valor. Ver los ejemplos de abajo para entenderlo mejor.

Nombre del módulo

Para ver el nombre que actualmente tiene el módulo, usamos at+name:

Si lo queremos cambiar, usamos at+name="nuevo nombre". Hay un límite de caracteres que el nombre puede llevar, así que no hay que usar uno muy grande. En este caso usaré at+name="Cambiar nombre":

Si ahora lo vuelvo a leer usando at+name obtengo:

Contraseña o código de acceso

Lo mismo que el nombre, sólo que ahora usamos at+pswd y at+pswd="pass".

Leer código con at+pswd:

Establecer código con at+pswd="345234" (número aleatorio). También debe tener su límite (así que no hay que establecer códigos tan largos); y podemos usar letras pero no recomiendo hacerlo, mejor usemos números:

Al volver a leer la contraseña o código de acceso con at+pswd obtenemos:

Guardando cambios

Me parece que no hay un comando para salvar los cambios, porque se guardan al ejecutar el comando. Sin embargo, es de personas educadas terminar la comunicación como debe ser, y para ello usamos at+reset:

Después de esto, debemos desconectar el cable que va al pin 34 del módulo para poder (ahora sí, al fin) conectarnos a nuestro módulo desde nuestros teléfonos, computadoras y cualquier dispositivo que soporte el estándar Bluetooth.

Más comandos

Claro que existen más comandos, aquí dejo un link con el archivo PDF que los trae todos: FKYZ0UTHX7OYY7I (sí, así se llamaba y no lo quise renombrar).

Referencias

Claramente; todo esto no salió de mi cabeza, simplemente me di a la tarea de explicarlo en español, agregarle mis propias palabras y de explicarlo de una mejor manera. Agradecimientos al autor de este link, pues me basé de casi todo lo que dice en su post para hacer el mío.

Finalmente te invito a leer más sobre Arduino en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario