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 pines, los principales a localizar son: Vcc, GND, TX, 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.
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.....
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 VCC, GND, RX, TX ,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.
//---------------------------------------------------------------------------------
#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?........
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.
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.
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.
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.
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.
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.
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.