Como Configurar HC-05


XBee HC-05 & Componentes

El Módulo HC-05.


Como configurar el Módulo HC-05 a través de sus comandos AT con diversos componentes, entre ellos la propia placa Arduino UNO R3, un MAX3232  puerto serie RS232 a TTL, el adaptador PL2303HX  USB to RS232 TTL y el Adaptador XBee USB, al final de este blog  podrás decidir con  cual  de estas opciones te quedas  para programar el modulo HC-05 

Si ya conoces el módulo HC-05 y su tabla de  comandos  pasa al punto siguiente, en este apartado mi idea es explicar un poco el módulo basando  en información que he recopilado  de la red y que a mí me ha servido de gran ayuda.

El primer paso es reconocer  como están situados los pines  del dispositivo, podemos encontrar el módulo HC-05 en diversos formatos, montado en el adaptador XBee, en formato para Protoboard  o  simplemente el módulo "solo", en cualquier caso es el mismo dispositivo, solo debemos localizar la posición de sus pineslos principales a localizar son: VccGNDTX, RX  KEY o PIO 34 y RESET.
En la siguiente imagen podemos ver la posición de sus pines montado en adaptador XBee y la posición de sus pines del módulo solo,  el módulo con formato para Protoboard normalmente sus pines vienen etiquetados claramente.



HC-05 es un módulo que puede hacer de Master ,Slave o Loopback, de serie normalmente viene establecido en modo Slave, si se desea cambiar el modo de funcionamiento a Master  o Loopback se debe  hacer  mediante sus comandos AT, en este mismo blog he insertado una página con estos comandos " HC-05 Comandos AT ", el objetivo de este blog es el modo de acceder al él para introducir estos comandos. La diferencia entre HC-05 y el HC-06  aparentemente es poca, el precio es similar y también prácticamente sus características, la mayor diferencia esencialmente es el firmware que viene cargado de fábrica, el hardware es el mismo para los dos. La funcionalidad de estos módulos  pueden ser muy prácticas si por ejemplo, queremos establecer comunicación con otros dispositivos como un  teléfono móvil  o una  tablet, en estos dos casos con el HC-06 que hace de Slave ya seria suficiente, pero si queremos establecer una comunicación con otro módulo  y que estos se pasen información entre ellos, uno de los dos debe hacer de  Master y el otro Slave, por tanto necesitamos al menos un HC-05 para que haga la función de Master.

Como ya he dicho antes, la manera de programar estos módulos es mediante sus comandos AT, hay una página que a mi parecer explica bastante bien su estructura y la historia de estos comandos, si te apetece consultarla puedes hacer clic  aqui.

Para acceder al modo de programación mediante los comandos AT estos dispositivos nos proponen dos opciones. 
  - Primera opción, Pulsando  RESET o REINICIAR EL MODULO a la misma vez que ponemos en estado alto su pin KEY ( PIO 34 ) ,en este caso el módulo responde con una configuración de 38400 Bauds, Paridad 0, Bits de Parada 0.
 - Segunda opción, Pulsando  RESET o REINICIAR EL MODULO y posteriormente ponemos en estado alto su entrada KEY ( PIO 34 ), en este caso el módulo responde con la configuración con la que ha sido programado, normalmente de serie su configuración es de  9600 Bauds, Paridad 0, Bits de Parada 0.
Tener en cuenta estos pasos es importante, debemos elegir una correcta comunicación con el módulo, si no,  o no se comunican o se pasan información ilegible.


Reconocer el parpadeo de sus Led's :

Es necesario reconocer en que estado se encuentra el módulo HC-05  en cada momento y esto lo indica el parpadeo de sus led's, el módulo con formato para Protoboard suele tener un solo led para indicar su estado, mientras que en el formato encapsulado en XBee lo hace mediante dos.

Reconocer el parpadeo si el módulo  tiene un  led.

-          Si el led parpadea constantemente sin parar está esperando una conexión.
-          Si el led esta 2 seg encendido y 2 seg apagado constantemente esta en modo AT.
-          Si parpadea 2 veces y se mantiene apagado 3 seg sucesivamente, está conectado a  un dispositivo.


Reconocer el parpadeo si el módulo tiene dos led's.

Un led muestra su estado de modo, es decir, si esta esperando una conexión o esta en modo AT, el otro muestra si se ha establecido la conexión, el comportamiento es el siguiente;

Led de estado de modo.

-   Si parpadea constantemente, está esperando una conexión.
-   Si esta 2 seg encendido y 2 seg apagado  esta en modo AT.

Led de estado de conexión.

 -  Si esta encendido  de forma fija sin parpadeo esta conectado a otro dispositivo, si esta apagado no hay conexión.

Conocer la posición de sus pines, los comandos AT básicos para su programación, elegir una correcta  comunicación para entrar en sus comandos AT, y reconocer su estado mediante el parpadeo de sus led´s es importante para empezar a utilizar este módulo, ahora necesitamos el medio para comunicarse con él, propongo los siguientes.....


 Programar el Módulo XBee Bluetooth con la Placa  Arduino UNO R3.


Si ya dispones de una placa Arduino UNO R3 y no deseas adquirir ningún dispositivo para programar el módulo HC-05 lo puedes hacer de forma bastante sencilla. La placa Arduino UNO R3 dispone de un chip que realiza la función de "traductor" del protocolo USB a un protocolo serie mas sencillo, se trata del ATmega16U2, por tanto, con la placa Arduino UNO R3,  un pequeño sketch  que introduciremos en el IDE de Arduino  y que dejaré al final de esta  entrada, se puede  programar el módulo Bluetooth HC-05  de una  manera bastante sencilla, no importa como esté presentado el módulo, encapsulado en el módulo XBee, en formato para Protoboard o simplemente el módulo "suelto", solo hay que identificar donde están situados los pines VCCGNDRXTX ,KEY y RESET. ( En la primera imagen de este blog tenemos un esquema donde podemos identificar estos pines).

Para facilitar el acceso  al  modo AT  he montado en una Protoboard un pequeño circuito con el que poder  cambiar fácilmente el estado  ALTO o  BAJO del pin KEY del módulo HC-05, recordar que para entrar en su modo AT debe haber un cambio de ( bajo "0", a Alto "1") de su PIO 34 o  pin KEY. 

Esquema del circuito montado en Protoboard.

IMPORTANTE : Conectar los cables RX, TX de nuestra placa Arduino con el Módulo  CRUZADOS tal y como se muestra en la imagen anterior.


Programación.

Copiar este pequeño programa en  un sketch del IDE de Arduino y cargarlo  en placa Arduino UNO R3.

//---------------------------------------------------------------------------------
#include <SoftwareSerial.h>  // Es importante incluir la librería 

SoftwareSerial BT(10,11); 

void setup()
{
  BT.begin(9600); //Velocidad del puerto del módulo Bluetooth
  Serial.begin(9600); //Abrimos la comunicación serie con el Pc
}

void loop()
{
  if(BT.available())
  {
    Serial.write(BT.read());
  }

  if(Serial.available())
  {
     BT.write(Serial.read());
  }
}
//----------------------------------------------------------------------------------------------
 El Serial monitor se debe configurar de la siguiente manera.

Una vez el serial monitor esta configurado como la imagen anterior ya se puede iniciar la comunicación con el módulo, para ello NO hay que reiniciar el módulo ni pulsar RESET, ya que se encarga el propio Serial monitor de hacerlo, solo hay que mantener la entrada KEY en estado alto, si has montado el circuito de la imagen anterior, solo debes mantener apretado el pulsador de  la Protoboard unos pocos  segundos mientras se abre el Serial monitor, una vez  abierto si se introduce el comando AT en la caja de texto y  se hace clic el botón Enviar deberías recibir OK, si no es así ,prueba reiniciar el Serial monitor jugando con el tiempo que mantienes apretado el pulsador, no puede ser excesivo ni muy breve, normalmente no es muy critico el tiempo que se mantiene pulsado y  suele funcionar a la primera, una vez establecida la comunicación se puede continuar con la  programación del módulo mediante sus comandos AT, AT+VERSIÓN?, AT+ROLE?........



MAX3232 puerto serie RS232 a TTL.


El dispositivo MAX3232 puerto serie RS232 a TTL es otra de las opciones que disponemos para programar el módulo HC-05, si el Pc dispone de  al menos un puerto Serie, si es el caso, hay varios modelos en el mercado y tienen un precio bastante razonable, según el modelo que adquiramos siempre es aconsejable consultar su datasheet, el modelo que yo he adquirido es el JY-R2T V1.3 es el  que se muestra en la imagen, su conexión es  sencilla, se alimenta mediante la entrada micro USB ( DC IN ), se comunica con el Pc mediante el puerto Serie RS232 y se conecta al módulo HC-05 mediante los  Pines indicados como RXD, TXD.


 Una vez todo conectado correctamente tenemos que saber en que puerto Serie  se ha establecido la comunicación con el Pc, si esté  dispone de  un solo puerto Serie, esto no es necesario ya que se estable en el puerto serie predeterminado, pero si el Pc tiene mas de un puerto serie hay que consultar el COM asignado y se hace en el  administrador de dispositivos, Puertos(COM y LPT).



Se necesita  un programa que haga de mediador entre el dispositivo y el PC, hay muchos que se pueden encontrar en la red , por ejemplo HyperTerminal, Terminal, SScom32, PuTTy, X-CTU. Yo he utilizado Terminal v1.9b, su funcionamiento ha sido estupendo y fácil de configurar, seguro que  cualquiera de los anteriores debe ir igual de bien.
Si eliges Terminal v1.9b  se debe configurar como se muestra en la imagen siguiente  he introducir el COM  consultado anteriormente en administrador de dispositivos del  Pc, en mi caso es COM1.

Nota : El programa Terminal v1.9b tiene el botón "COMs" que te informa del puerto serie disponible en el sistema.

Esquema de conexión en  Protoboard


Para iniciar la programación hay que reiniciar la alimentación del módulo mediante el switch al mismo tiempo que mantenemos apretado el pulsador unos segundos, hay que observar que cambia en parpadeo del led, debe pasar de un parpadeo constante a un parpadeo mas pausado, de mas o menos dos segundos encendido, dos segundos apagado, si es así esta en modo AT, si se abre el programa Terminal v1.9b y esta configurado como la imagen anterior , al introducir el comando AT en la caja de texto y hacer clic en enviar debería responder OK, a partir de aquí se puede continuar con la programación del módulo mediante sus comandos.




PL2303 USB to RS232 TTL.


Otra opción que tenemos para programar el módulo HC-05  y seguramente el accesorio mas económico es con el adaptador PL2303 USB to RS232 TTL, es una buena opción si el Pc no dispone de puerto Serie, un pequeño inconveniente que puede aparecer cuando conectamos el adaptador al Pc es que esté no lo reconozca, si esto  sucede, aparece en el Administrador de dispositivos un triangulo amarillo con un interrogante como en la imagen siguiente.





Debemos descargar  he instalar su Driver , lo que hace es crear un puerto virtual, el Driver lo puedes encontrar copiando la siguiente dirección en el navegador.   PL2303_Prolific_DriverInstaller_v1_10_0_20140925

Una vez el Driver está instalado si volvemos al  Administrador de Dispositivos podemos ver que reconoce el dispositivo y que numero de puerto  tiene asignado.

Esquema de conexión en  Protoboard.




Configurar Terminal v1.9b como en la imagen siguiente, sobre todo eligiendo el puerto asignado  en el Administrador de Dispositivos, en mi caso es el COM3.
Solo queda poner  el módulo HC-05  en modo AT, se hace reiniciando el módulo mediante el switch al mismo tiempo que  se mantiene apretado el pulsador para poner en estado Alto el Pin KEY, si la maniobra a sido correcta, el led debe cambiar el estado de su parpadeo y hacerlo de una manera mas pausada , mas o menos dos segundos encendido, dos segundos apagado. El siguiente paso, es introducir el comando AT en la caja de texto y enviarlo al módulo mediante ->Send, si todo esta correcto  debería responder con OK, si es así ya puedes continuar con la programación del módulo mediante los comandos AT, si no,vuelve a repasar los pasos anteriores.


Adaptador XBee USB.


El adaptador XBee USB es la última opción que propongo para programar el módulo HC-05, de entre los dispositivos presentados en  este blog es la opción mas cara pero a la vez mas versátil, es una tarjeta compacta
equipada con los pines para el Módulo XBee, incorpora
el integrado FT232, y se puede usar para programar el módulo por USB ( con programadores seriales) o con cualquier micro controlador que no tenga USB a través del puerto serial. 


Especificaciones del Adaptador:
-3.3V y 5V de voltaje de salida (Puedes alimentar tus -Circuitos con el puerto USB).
-Compatible con logica de 3.3V y 5V.
-USB 2.0.
-BitBang.
-Conector mini USB.



Programación del Módulo XBee mediante el Adaptador.

El  mismo adaptador  indica la posición de como hay que acoplar el Módulo XBee sobre de él, una vez asegurado que esta montado correctamente se conecta el adaptador al Pc por el puerto micro USB, se necesita un programa para lograr la comunicación entre ellos, como ya he dicho antes hay muchos, utilizaré Terminal v1.9b  para realizar todas la pruebas  con el mismo programa, una vez el programa está abierto hay que  introducir  la misma configuración de la imagen sucesiva, asegurándose que se ha elegido el puerto correcto, que en mi caso es el COM3.
Para saber que puerto tiene asignado el Adaptador podemos hacer clic en COMs


Solo queda reiniciar el Módulo a la misma vez que ponemos en estado alto su KEY o PIO 34, comprobar que el parpadeo del led cambia de un estado  rápido y continuado a un parpadeo ,mas pausado ( +/- dos segundos )
  llegado hasta aquí si se introduce el Comando AT en la caja de texto y se hace clic en -> Send, el módulo  debería  responder con OK, ya esta preparado para seguir con la  programación de los comandos AT que se quieran cambiar o consultar.

Bueno esto es todo, espero que este blog te haya servido de ayuda, al menos ese era mi propósito, he creído conveniente hacer este blog por que creo que es un poco mas complicado acceder al módulo que programarlo,si tienes alguna duda ponte en contacto con migo he intentaré responderte lo mas pronto posible.

PGCArduinO.

No hay comentarios:

Publicar un comentario

Gracias por participar, gracias por compartir.