Antes que
nada hay que saber un poco sobre la tecnología Bluetooth. Bluetooth es una
especificación tecnológica para redes inalámbricas que permite la transmisión
de voz y datos entre distintos dispositivos mediante una radiofrecuencia segura
de 2,4 GHz. Esta tecnológica permite crear redes inalámbricas domésticas para
sincronizar y compartir la información que se encuentra almacenada en diversos
equipos.
Por otro
lado, los comandos AT son instrucciones codificadas que conforman un lenguaje
de comunicación con un terminal módem, en este caso el módulo Bluetooth. Los comandos AT se denominan así por la
abreviatura de attention.
Este módulo
Bluetooth se puede configurar tanto como un dispositivo esclavo o un
dispositivo maestro y tiene una ligera diferencia con los demás módulos al
momento de enviar los comandos AT. El módulo viene por defecto en modo esclavo,
así que tanto el nombre como la contraseña están definidos.
Para este
caso se usan los siguientes comandos:
AT+ROLE=0\r\n
Este comando
define el modo en el que funcionará el modulo bluetooth, un 1 significa que se
desea configurar en modo maestro, mientras un 0 indica modo esclavo. Como
queremos configurar en modo esclavo usaremos "AT+ROLE=0\r\n"
AT+PSWD=4444\r\n
Este comando
define una contraseña, como el módulo está configurado como esclavo, el comando
indica la contraseña asociada al módulo.
Ahora vamos a
implementar el circuito para configurar el módulo. Para ello necesitamos los
siguientes componentes.
Componentes
a utilizar
- Arduino Uno
- Resistencia de 220 Ω
- LED
- Módulo Serial Bluetooth(maestro/esclavo)
- Protoboard
Circuito
Finalmente, en el código que vamos a escribir vamos a usar la librería SoftwareSerial,
la cual permite una comunicación serial a través de cualquier pin digital del
Arduino. En la página de Arduino pueden encontrar más información sobre la
librería SoftwareSerial.
Código
//Se declara esta libreria para la comunicacion bluetooth
#include<SoftwareSerial.h>//Se definen los pines TX y RX, en este caso pin 2 = Rx, pin 3 = Tx
SoftwareSerial mySerial(2,3);
//Variable para control de configuracion
boolean configurado = false;
void setup(){
pinMode(13,OUTPUT); //Pin 13 para control del proceso
Serial.begin(9600); //se inicia comunicacion serial
digitalWrite(8, LOW);
mySerial.begin(9600); //se inicia comunicacion bluetooth
digitalWrite(13, LOW); //se apaga el led 13
}
void loop(){
if (configurado){
digitalWrite(8, LOW);
/* Parpadeo para verificar su funcionamiento */
digitalWrite(13, HIGH); //se enciende el led
delay(1000); //Espera de 1 segundo
}
else{
digitalWrite(13, HIGH); // se inicia el tiempo de espera para reconectar
digitalWrite(8, HIGH); // se coloca el pin KEY en ALTA
delay(1000); // (asi se encontrara en modo AT)
digitalWrite(13, LOW); // Tiempo de espera agotado para reconectar
Serial.println("AT");
mySerial.write("AT\r\n"); //se inicia la comunicacion con modulo BT
delay(1000); //Espera de 1 segundo
while(mySerial.available()>0) {
Serial.write(mySerial.read());
}
Serial.println();
Serial.println("AT+ROLE=0\r\n");
mySerial.write("AT+ROLE=0\r\n");
delay(1000); //Espera de 1 segundo
while(mySerial.available()>0) Serial.write(mySerial.read());
Serial.println("AT+PSWD=4444\r\n");
mySerial.write("AT+PSWD=4444\r\n"); //se establece el pin de
delay(1000); //asociacion(contraseña)
while(mySerial.available()>0) Serial.write(mySerial.read());
digitalWrite(8,HIGH);
/* En este punto debe estar configurado */
digitalWrite(13, HIGH); //se mustra que todo ha funcionado
configurado = true; //segun lo esperado
}
}
}
//////////////////////////////////////////////////////////////////////////
Pasos a
seguir:
1: El módulo no debe estar vinculado a ningún
dispositivo.
2: La forma visual de conocer el estado del
módulo:
Led fijo --> Emparejado
Led intermitente --> Sin emparejar
Led fijo --> Emparejado
Led intermitente --> Sin emparejar
3: Definir mediante la librería
SoftwareSerial los nuevo pines TX, RX para el Arduino
Conectar el TX del módulo Bluetooth al
RX del arduino
Conectar el RX del módulo Bluetooth
al TX del arduino
4: Realizar las conexiones tal como se
muestra en el circuito
NOTA: Al momento de hacer las
conexiones asegurarse de que la tarjeta Arduino
no esté conectada.
no esté conectada.
5: Cargar el programa, seguidamente
verifique que el led del módulo bluetooth comience a parpadear de manera rápida. Esto indica que se encuentra en
modo AT a 9600 baudios, si por lo contrario el led parpadea de forma lenta
indica que el módulo está en modo AT a 38400 baudios. En el código se le ha configurado
a 9600 baudios. Hay que repetir el paso 5 y 6 hasta lograr que el LED parpadee
de manera rápida.
6: Probamos la comunicación con el módulo,
mediante el comando de testeo: AT\r\n. Seguidamente se deberá visualizar la respuesta en el Monitor Serial. Se
espera la respuesta OK. Si esta respuesta no aparece, verificar las conexiones.
7: Si se confirma la respuesta, ingresamos los
comandos AT según nuestro interés.
8: Verificar que los comandos AT son recibidos
correctamente mediante el monitor serial(se debe esperar una respuesta OK, después
de enviar los comandos AT).