Menu
in

Comandos AT para el módulo Bluetooth HC-06

El módulo Bluetooth HC-06 es, sin duda alguna, un dispositivo inalámbrico que puede resolver la mayoría de las comunicaciones inalámbricas en nuestros desarrollos domésticos cuando no se requieran demasiadas distancias de cobertura. Este módulo podrá incorporarse en nuestro sistema y adaptarse a las condiciones de trabajo que las comunicaciones seriales ya tenían en, por ejemplo, una red RS485 trabajando a 38400BPS o en un sistema RS232 que opere a velocidades tan altas como 115,2KBPS. Para lograr este tipo de ajustes existen los Comandos AT del módulo que nos permitirán adaptar, además de la velocidad de manejo de datos, otros parámetros que ahora veremos. ¿Deseabas personalizar tu módulo? ¡Descubre como hacerlo en este artículo!

Hace pocos días, mirando una increíble fotografía de un transbordador espacial, listo para el despegue, Martín me comentaba: “qué gratificante sería saber que, al menos un tornillo de todo lo que está allí, lo coloqué yo”, mientras pensaba lo mismo por mí. Y es natural que todos pensemos similar, que todos deseemos ser parte, cuando entendemos la importancia del evento. Personalizar un trabajo acarrea una sensación similar, una emoción de ver que nuestras manos e inteligencia alcanzaron el objetivo, el logro. Y llegando a actividades más cotidianas para nosotros, puedo asegurar que ver nuestro sello, “nuestra marca”, en cualquier circuito, montaje o desarrollo, siempre es y será gratificante. Un ejemplo de esto que hablamos es, por ejemplo, personalizar el nombre de un dispositivo Bluetooth. Desde el transbordador de Martín hasta un pequeño módulo Bluetooth, cualquier aporte nuestro puede ser muy importante. Ojalá Martín llegue mucho más allá de un transbordador, el día de mañana, ejerciendo su profesión, pero lo que puedes estar seguro es que tú llegarás hoy mismo a trabajar y personalizar tu dispositivo Bluetooth HC-06 gracias a un grupo de instrucciones muy sencillas conocidas como “Comandos AT” y que veremos en este artículo.

Los “Comandos AT” fueron en sus comienzos, un pequeño grupo de instrucciones para comunicar el ordenador con un módem telefónico. Con los años, a este tipo de comandos para comunicarse con diversos dispositivos (por ejemplo, teléfonos móviles) se los populariza como Comandos AT y los módulos Bluetooth se pueden comunicar con un ordenador, con un microcontrolador y con cualquier otro dispositivo que posea una conexión serie (Tx/Rx) mediante el tipo de instrucciones que hoy nos convocan. Por supuesto, no existe un conjunto de comandos que sean universales para todos los dispositivos, sin embargo, la mayoría adopta una estructura muy similar. Por ejemplo, a cualquier equipo que pueda trabajar con este tipo de instrucciones, el envío del comando “AT” originará la devolución, por parte del dispositivo remoto, de un “OK” indicando que está en condiciones de recibir instrucciones y/o devolver condiciones de estado y funcionamiento ante la requisitoria del ordenador. En los módulos Bluetooth este enlace se realiza (en la mayoría de los casos) por dos métodos: mediante instrucciones durante el enlace inalámbrico con un ordenador (una vez enlazados los dispositivos) o, como en el caso del HC-06, mediante los pines Tx/Rx del módulo y durante una situación específica, no cualquier instancia.

La condición necesaria, según la hoja de datos, para acceder a alterar los valores que trae por defecto el módulo Bluetooth HC-06, debe suceder con el módulo sin vinculación (o apareamiento) alguna a otro dispositivo, es decir, mientras el LED de estado se encuentra en funcionamiento intermitente indicando que no hay vínculo con otro dispositivo. El método es, como mencionamos en el párrafo anterior, por comunicación serie a través de los pines Rx/Tx, a una velocidad de 9600, 8, N, 1 durante la programación inicial. Luego, deberás tener en cuenta la nueva velocidad de trabajo para futuras comunicaciones mediante comandos AT. La comunicación entre el módulo HC-06 y un ordenador (vía puerto serie y conversor RS232/TTL-CMOS) puede hacerse respetando un tiempo mayor a un segundo entre envío de comandos AT. Es decir, si deseas cambiar la velocidad (en BPS) y luego la clave de acceso al módulo deberás esperar, al menos, un segundo entre un comando y otro. Si no deseas utilizar un ordenador para realizar este trabajo, o no dispones de uno con salida de puerto serie (COM1, como pide la hoja de datos del dispositivo) puedes hacerlo, de manera muy sencilla, con un microcontrolador. En nuestro caso, utilizamos el mismo PIC que luego empleamos como aplicación para, en una instancia inicial, programar los comandos AT antes de programarlo para la aplicación final. Es decir, por ICSP realizamos el primer paso de ajustar los comandos AT a nuestra necesidad, luego, con un segundo programa, pasamos a la aplicación (que te mostramos en el artículo anterior). Por lo tanto de este modo, sin mover al PIC de su lugar (de la aplicación final, por ejemplo), realizamos todo el trabajo necesario. Más fácil y práctico imposible.

Los Comandos AT para el módulo HC-06 están en el capítulo 9 de la hoja de datos que entregamos en el artículo anterior y que volvemos a ofrecerte en éste. Son pocos, sencillos y hay algo importante que debes tener en cuenta al momento de enviar los comandos desde el PIC: Debes enviar caracteres ASCII. Por lo tanto, y a modo de ejemplo en AMICUS con el 18F25K20 que utilizamos nosotros, el ajuste de velocidad a 115,2KBPS deberá ser escrito de la siguiente manera: HSEROUT [065, 084, 043, 066, 065, 085, 068, 056]. Traduciendo los caracteres ASCII eso se podría leer como HSEROUT [AT+BAUD8]. Luego, hacer una pausa de 1 segundo, enviar otro comando y así hasta completar todos los que quieras cambiar. Si sólo deseas cambiar la velocidad, envías el mencionado y listo. Al final del artículo te dejamos un pequeño programa (hecho en AMICUS) con los comandos elementales y que siempre son objeto de variación por parte de los usuarios de estos módulos. Debes quitar el tilde a todas las instrucciomes HSEROUT que quieras enviar para ajustar los valores que te resulten necesarios en cada aplicación particular. Recuerda, debes trabajar en código ASCII.  Observa este trozo de código de ejemplo:

Los “Comandos AT” son pocos, sencillos y hay algo importante que debes tener en cuenta al momento de enviarlos desde el PIC: Deben ser caracteres ASCII.

La secuencia entonces es, enciendes el sistema y programas el PIC con el programa que se encarga de modificar los comandos AT. Al correr ese programa al menos una vez, los comandos AT llevarán al módulo a su nueva condición de funcionamiento. Si observas con detenimiento, al finalizar esta programación, el LED indicador de estado variará su intermitencia indicando que ha sido programado  (no siempre es tan notable este efecto). De todos modos, nosotros incluimos un intermitente en la salida RB0 para indicar que la programación de los comandos AT ha finalizado. Luego, programas el PIC para la aplicación final, y de este modo ya tienes ajustado el dispositivo con los nuevos comandos AT y la aplicación llevará tu nombre (como el tornillo de Martín en el transbordador), cambiará el código de acceso y todo lo que quieras alterar. Tú decides que parámetros modificar. Por último vale decirte que es redundante colocar y enumerar aquí los comandos AT necesarios para programar el HC-06. Lee la hoja de datos (capítulo 9) o el código fuente que te dejamos al pié de este artículo y te darás cuenta lo sencillo que es trabajar con este módulo Bluetooth. ¡Disfrútalo!

Escrito por Mario

Leave a Reply