Vamos a programar #28 - Inútil Apps #2 - Configurando el bluetooth

El dia de hoy continuaremos con la parte del software para Clock View.
En la entrega anterior prometí agregar una forma para modificar todos los ajustes que pueda llevar Clock View, al carecer de botones, solo hay un par de formas para cambiarlos; una de ellas es mediante un cable USB e introducir el comando adecuado (solo para recordar, es: >SETHXXXXXXXXX), lo cual resultará en algo tedioso o in-practico si no disponemos de una computadora portátil o si la computadora de escritorio está muy lejos del reloj.
La segunda solución y más practica, consiste en agregar un modulo bluetooth, en el post anterior vimos que podemos hacer uso de esa función con simplemente agregar un modulo cuyo precio es de un par de dolares.

Los modelos más comunes son los HC-06 y HC-05, al comprarlos y emparejarlos por primera vez, verás que tienen un nombre por default, pero que pasa si queremos mostrar un nombre más apropiado para nuestro arduino (ClockView por ejemplo).
En este caso el dispositivo se llama Siqueiros Printer.



Para realizar esta operacion vamos a usar comandos AT, para el modulo HC-06 podemos usar los siguientes:
  • Prueba de funcionamiento:
    • Comando AT: AT
    • Respuesta: OK
  • Configurar el Baudrate:
    • Enviar: AT+BAUD<Numero>
    • El parámetro número es un carácter hexadecimal de ‘1’ a ‘c’ que corresponden a los siguientes Baud Rates:
      • 1=1200
      • 2=2400
      • 3=4800
      • 4=9600
      • 5=19200
      • 6=38400
      • 7=57600
      • 8=115200
      • 9=230400
      • A=460800
      • B=921600
      • C=1382400
  • Respuesta: OK<baudrate>
  • Configurar el Nombre de dispositivo Bluetooth:
    • Comando: AT+NAME<Nombre>
    • Respuesta: OKsetname
  • Configurar el código PIN de emparejamiento:
    • Comando: AT+PIN<pin de 4 dígitos>
    • Recibe: OK<pin de 4 dígitos>
  • Obtener la versión del firmware:
    • Enviar: AT+VERSION
    • REspuesta: VERSION
En el caso del modulo HC-05, basta con enviar el comando seguido de un <ENTER>, pero para el caso del módulo HC-06, solo tendremos un segundo para enviar el comando, todo lo que se envie en ese periodo sera tratado como tal, por lo que si no es lo suficientemente rápido, el comando no será aceptado. para simplificar las cosas, vamos a usar el siguiente código que se encargará de enviar los comandos.
#include <SoftwareSerial.h>
/*CONEXIONES:
 5V - VCC
 GND - GND
 PIN 2 - TX
 PIN 3 - RX
 */
//Crea conexion al BlueToothModuletooth - PIN 2 a TX y PIN 3 a RX
SoftwareSerial BlueToothModule(2, 3);
//Nombre de 20 caracteres maximo
char NOMBRE[21] = "ClockView"; 
// 1=1200 , 2=2400, 3=4800, 4=9600, 5=19200, 6=38400, 7=57600, 8=115200
char BPS = '4';
//PIN O CLAVE de 4 caracteres numericos
char PASS[5] = "0000";

void setup()
{
// inicialmente la comunicacion serial a 9600 Baudios (velocidad de fabrica
 BlueToothModule.begin(9600);
 pinMode(13,OUTPUT);
 delay(4000);
// Inicializa comando AT
 BlueToothModule.print("AT");
 delay(1000);
// Configura el nuevo nombre
  BlueToothModule.print("AT+NAME"); 
 BlueToothModule.print(NOMBRE);
 delay(1000);
// Configura la nueva velocidad  
 BlueToothModule.print("AT+BAUD");
 BlueToothModule.print(BPS); 
 delay(1000);
// Configura el nuevo PIN
 BlueToothModule.print("AT+PIN");
 BlueToothModule.print(PASS); 
 delay(1000);
}
 
void loop()
{
 //Nada
}

Para ver una lista completa de todos lo comandos disponibles, puedes ver el este documento. Para usar el código anterior, debemos de conectar el pin TX del bluetooth al pin 2 del arduino, el pin RX al pin 3 y antes de cargar el código, debemos de editar el nombre, la velocidad de transferencia (aunque recomindo dejarla en 9600 para usarse en Clock View) y la contraseña. Si no quieres complicarte, podemos usar los valores tal y como vienen en el código, solo debes recordar que el nombre del dispositivo será "ClockView" y la contraseña será 0000.
Y bien, ahora que tenemos listo todo, solo nos queda por hacer la parte de android para poder comunicarnos con el arduino mediante el telefono.

Al igual que siempre, el código lo puedes descargar de mi dropbox.

Por ahora es todo, los leo luego.

No hay comentarios.