Select Page

Descripción

HC05-JY-MCU HC05-JY-MCU_1

En este nuevo post vamos a explicar el funcionamiento, configuracion y conexion de los modulos HC-05. Los mismos vienen maestro y esclavo en una misma placa y via comandos AT se configura cual de los dos modos queremos usar. El chip en si trabaja en 3.3v pero viene soldado sobre una placa que adapta todos sus pines para poder usarlo en 5V y asi sea 100% compatible con Arduino. En primer lugar tenemos configurar nuestro modulo via comandos AT para usarlo o como maestro o esclavo, cambiarle el nombre, la contraseña, setearle la velocidad de transmicion. Estas son algunas de las cosas que vamos a ver en este post, aunque los HC-05 ofrecen opciones muchisimo mas complejas, como conectarse a dispositivos con una direcccion deterrminada, usarlo en modo esclavo para que reenvie todo lo que recibe, etc. Si queres saber mas sobre esto ultimo hace click aca y vas a encontrar el listado completo de configuraciones posibles.

Recordar siempre que la pc, el celular o la tablet, funcionan como maestros, entonces si queremos conectarnos con alguno de los dispositivos antes mencionados necesitaremos el modulo configurado como esclavo. El modulo bluetooth configurado como maestro, nos sirve para comunicarnos con otro modulo configurado como esclavo.

Podemos destacar dos versiones a la vista ditinguibles, una que viene con un boton el pin KEY y otra sin boton (imagenes a continuacion) este post esta basado en el que nosotros comercializamos sin boton.

FF2579YI1EU52SE.LARGE

Caracteristicas Técnicas

Hardware features

  •  Typical -80dBm sensitivity
  •  Up to +4dBm RF transmit power
  •  Power 5v
  •  UART interface with programmable baud rate
  •  With integrated antenna
  •  With edge connector

Software features

  •  Default Baud rate: 38400, Data bits:8, Stop bit:1,Parity:No parity, Data control: has.
  • Supported baud rate: 9600,19200,38400,57600,115200,230400,460800.
  •  Given a rising pulse in PIO0, device will be disconnected.
  •  Status instruction port PIO1: low-disconnected, high-connected;
  •  PIO10 and PIO11 can be connected to red and blue led separately. When master and slave
    are paired, red and blue led blinks 1time/2s in interval, while disconnected only blue led
    blinks 2times/s.
  •  Auto-connect to the last device on power as default.
  •  Permit pairing device to connect as default.
  •  Auto-pairing PINCODE:”0000” as default
  •  Auto-reconnect in 30 min when disconnected as a result of beyond the range of connection.

Led:

Si el led parpadea constantemente sin parar esta esperando una conexion.

Si esta 2 segundos encendido y 2 segundos apagado suscesivamente esta en modo de comandos AT

Si parpadea 2 veces y se mantiene apagado 3 segundo y vuelve a parpadear 2 veces esta conectado a algun dispositivo.

Conexionado y Codigo

Para proceder con la configuración del modulo debemos realizar la siguiente conexión CON EL ARDUINO DESCONECTADO DE LA PC. es decir nada debe estar alimentado:

  • HC-05 GND — Arduino GND Pin

  • HC-05 VCC (5V) — Arduino 5V

  • HC-05 TX — Arduino Pin 10 (soft RX)

  • HC-05 RX — Arduino Pin11 (soft TX)

  • HC-05 Key (PIN 34) — Arduino Pin 9

Como bien dice el texto de la imagen el orden de los pines en nuestro modulo puede ser distinto asique PRESTAR ATENCION. En el caso del modulo comercializado por PATAGONIATECNOLOGY el orden de los pines es distinto.

FM8W4A2HKZAVRT9.LARGE

Realizada la conexion anterior debemos desconectar el pin VCC del modulo, conectar el arduino a la pc y cargarle el siguiente programa:

Descargar ProgramaComandos AT

Luego de que cargamos el scketch volvemos a conectar el pin VCC y el modulo debe mantenerse encendido 2 segundos y 2 segundos apagado. Esto quiere decir que esta en modo Comandos AT. Debemos cargar el programa con el pin vcc del modulo desconectado porque esto hace que cuando lo alimentamos el modulo  el PIN KEY ya este en HIGH lo que lo inicia directamente para que lo configuremos. Si no hacemos esto el modulo inicia esperando una conexion entrante ya que por defecto esta en modo esclavo.

Ahora tenemos que abrir el puerto serie de nuestro compilador arduino. En la segunda imagen se puede ver un recuadro rojo abajo a la derecha. Esta es la configuracion en la que tenemos que tener el puerto serie ya que sino NO VA A FUNCIONAR la comunicacion que intentamos realizar. Luego de setear lo anterior si enviamos «AT» sin comillas debemos recibir como respuesta un «OK» como muestra la imagen.

Si no reciben OK luego de mandar AT, hicieron una conexion mal, repasen los pasos anteriores. Importante que la luz del modulo este encendida 2 segundos y luego 2 seg apagada. Si esto no pasa, el modulo no esta en modo comandos AT.

Sin título

1

Si ya estan leyendo esta parte del post felicitaciones por haber hecho correctamente todo hasta aca. Las configuraciones que veremos a continuacion son aplicables tanto al modulo en rol maestro como esclavo:

De fabrica el modulo viene con el nombre HC-05, la contraseña 1234 y en rol esclavo. Obviamente podemos usar el modulo con las configuraciones anteriores sin problemas, aunque siempre es bueno tenerlo personalizado.

Enviamos por el puerto serie:

«AT+NAME?» (sin las comillas, pero Si con el signo de pregunta)

Este comando es para preguntarle al modulo como se llama.

Debemos recibir como respuesta:

+NAME:HC-05
OK

Si lo queremos llamar «Arduino» debemos en enviar:

AT+NAME=Arduino

Y como respuesta debemos recibir OK. Podemos cambiar el nombre «Arduino» por cualquier otro, siemre que el comando sea AT+NAME=

Luego si volvemos a enviarle el comando para saber cual es el nombre es decir:

AT+NAME?

Debemos recibir como respuesta:

+NAME:Arduino
OK

El mismo procedimiento es para la contraseña. El comando que debemos enviarle para saber cual es es:

AT+PSWD?

Esto nos tiene que dar como respuesta:

+PSWD:1234
OK

Para poner como contrasea «1111» debemos enviar AT+PSWD=1111. y debemos recibir OK como respuesta. Al igual que con el nombre podemos poner cualquier contraseña que deseemos, siempre enviando AT+PSWD=

Luego volvemos a consultarla con el primer comando AT+PSWD?

Y el modulo nos debe responder

+PSWD:1111
OK

El manejo de todos los comandos AT es similar a los dos ejemplos anteriores. Se le envia un signo de pregunta al final por ej: AT+NAME? para consultar cual es el valor de este comando. Y se le envia el comando con un = y el nuevo valor para cambiarlo. AT+NAME=VALOR (Cambiamos «VALOR» por el que elijamos). Si queres saber mas sobre todos los comandos AT disponibles, hace click aca y vas a encontrar el listado completo de configuraciones posibles.

Lo explicado hasta aca es para personalizar minimamente el modulo para conectarse desde el celular por ej. En el siguiente link vas a encontrar una lista de algunas aplicaciones para conectar tu arduino a tu celular via bluetooth.

10 app para controlar tu Arduino desde Android

Veamos como configurar el modulo como maestro:

En primer lugar vamos a preguntarle en que modo se encuentra. De fabrica viene como esclavo. Para lo anterior debemos enviar el siguiente comando:

AT+ROLE?

Si es la primera vez que enviamos este comando vamos a recibir la siguiente respuesta:

+ROLE:0
OK

Es decir que esta configurado como esclavo. Para cambiar esto, el proceso es similar a los anteriores, enviamos:

AT+ROLE=1

y debemos recibir como respuesta OK.

Para poder conectar el HC-05 configurado como maestro a un esclavo, ambos deben tener configurados la misma contraseña y la misma velocidad de transmicion de datos. Luego automaticamente cuando alimentamos los modulos estos se conectan, pero todavia estamos viendo las configuraciones.

Para a que velocidad de transmicion se encuentran los modulos enviamos el siguiente comando: AT+UART? y como respuesta si nunca seteamos una velocidad distinta vamos a recibir:

+UART:9600,0,0
OK

El numero 9600 corresponde a la velocidad en baudios.

Las velocidades disponibles son:

4800
9600
19200
38400
57600
115200
23400
460800
921600
1382400

Para seleccionar cualquiera de las opciones anteriores el comando es AT+UART=(velocidad),0,0

Ejemplo 1:

AT+UART=9600,0,0

Ejemplo 2:

AT+UART=19200,0,

Y como respuesta recibiremos, dependiendo de la velocidad elegida :

+UART:9600,0,0
OK

Ejemplo 2:

+UART:19200,0,0
OK

Esta velocidad es la que seleccionamos para cuando la comunicacion es entre los 2 modulos, o con un celular es decir cuando NO estamos en el modo comandos AT.

Lo explicado hasta aca sobre el modulo utilizado como maestro, son las configuraciones minimas para poder conectar dos HC-05 entre si. Como comentabamos anteriormente existen otras mas que no abordaremos en este post. Si queres saber mas sobre todos los comandos AT disponibles, hace click aca y vas a encontrar el listado completo de configuraciones posibles.

Si no tuvieron inconvenientes con todo lo anterior ya tienen toda la info para configurar los modulos en ambos modos, dependiendo la conexion que quieran realizar. En este post van a encontrar escrita toda la info necesaria para ambos modos; modo esclavo para conectarse con un celular o con otro HC-05, y la configuracion en modo maestro.

El codigo que vimos anteriormente unicamente sirve para ingresar los comandos AT. El que veremos a continuacion envia por bluetooth todo lo que recibe por el puerto serie y viceversa. El mismo codigo nos sirve tanto para el modulo como esclavo y conectado a un celular, como tambien para comunicar dos modulos uno maestro y otro esclavo entre si.

Prestar muchisima atencion a que en el programa la velocidad del modulo (maestro o esclavo) esta configurada a 9600 baudios, como vimos anteriormente la velocidad en ambos modulos(en caso de comunicar 2 entre si) debe ser la misma.

bluetooth.begin(9600);
Es la linea que hay que cambiar en caso de que no estemos usando esta velocidad. Por ejemplo:
Si seleccionamos 19200 baudios la linea deberia decir:
bluetooth.begin(192000);

Descargar ProgramaPrograma

El esquema de conexion es el siguiente:

ads

Es indentico al de la primera imagen solo que no conectamos el pin KEY a ningun lado.

Una vez cargado el programa y hecha correctamente la conexion desconectamos el Arduino unos segundos y lo volvemos a conectar para que salga del modo comandos AT.

Para poder enviar datos desde nuestro celular necesitamos una aplicacion vamos a usar de ejemplo una muy comun y muy simple de usar llamada BlueTerm (click para descargar).

Nuestro modulo bluetooth debe estar parpadeando constantemente indicando que esta esperando un conexion.

Abrimos la aplicacion en nuestro celular, previamente activado el bluetooth, presionamos OPCIONES y ponemos CONECTARSE A UN DISPOSITIVO. Cuando comienza a buscar, va a encontrar el HC-05 con el nombre que le hallamos configurado, y lo mismo para la contraseña. Si no hicieron ninguna modificacion de los parametros anteriores el nombre sera HC-05 y la contraseña 1234.

Luego abrimos el monitor serie del compilador de arduino, (Herramientas/Monitor Serie),  y todo lo que enviemos desde el celular lo podremos ver ahi y viceversa.

Todo esto se podra ver ejemplificado en el video al final del post.

En caso de estar conectando un modulo configurado como maestro y otro como esclavo, obviamente necesitaremos 2 pc’s y lo unico que hay que realizar es abrir el monitor serie (Herramientas/Monitor Serie) en ambas pc y listo, comenzar a enviar datos. (Como explicamos varias veces en este post deben estar configurados con igual velocidad y contraseña).

Productos Necesarios para la Utilización

Si te es util toda la informacion tecnica de nuestro blog por favor no dejes de comprar nuestros productos:

HC-05

Arduino Uno

Cables