Tutorial de Bluetooth Low Energy (BLE) para Arduino
Tutorial de Bluetooth de baja energía (BLE) para Arduino
Estoy de vuelta con un simple tutorial de electrónica para principiantes. En este post, les mostraré cómo empezar con el módulo Bluetooth de baja energía (BLE) 4.0 para controlar los LEDs. Este proyecto puede ser adaptado para controlar también relés o robots. El BLE no es como los módulos normales HC05/06, porque funciona con el Bluetooth V4.0. Para poder conectarse a este módulo, su smartphone debe tener la versión 4 de bluetooth o superior.
Materiales para el proyecto Arduino del BLE
- Arduino Uno
- Módulo Bluetooth (AT-09 o HM-10)
- Kit de tablero, LED y resistencias
- Smartphone o tablet (con Bluetooth 4.0 o superior.)
- Apk de Bluetooth en serie.
La mayoría de las aplicaciones de control GUI no funcionan con los módulos BLE.
Diagrama de cableado de Arduino BLE
Primero, conecta el módulo bluetooth en el tablero. El pin RXD del módulo bluetooth requiere 3.3V, mientras que el Arduino suministra una salida de 5V. Por lo tanto, crearemos un divisor de voltaje usando resistencias de 1K y 2K Ohm para ajustar este voltaje.
Cuando termines, haz las siguientes conexiones (Módulo Bluetooth -> Arduino):
VCC -> 5v
GND -> GND
TX -> RX
RX -> TX
Asegúrate de conectar las resistencias al módulo bluetooth como se muestra en la imagen. Luego, conecta un extremo de la resistencia (2 KΩ) a GND y el otro extremo (1 KΩ) a la clavija TX del Arduino. Los módulos BLE tienen diferentes pinouts, así que asegúrese de leer las etiquetas cuidadosamente antes de conectarlos.
Ahora, conecta dos LEDs en la placa base en serie con 1 KΩ resistencias. A continuación, conecte los LEDs a los pines 8 y 9 del Arduino. Así es como debería verse cuando termines.
Código para controlar Bluetooth con Arduino
Ahora, vamos a escribir el código para controlar los LED’s usando el Smartphone por Bluetooth. Lo realizaremos usando la comunicación en serie. Primero, inicializa las variables y los pines como se muestra a continuación:
int led1 = 8; //First LED to Arduino pin 8 int led2 = 9; //Second LED to pin 9 int data; //Variable to store serial data int flag1 = 0; //Variable to store LED1 state int flag2 = 0; //Variable to store LED2 state
Entonces define el método setup() para poner los pines como salidas y habilitar la comunicación en serie.
void setup() { Serial.begin(9600); //Start serial communication pinMode(led1, OUTPUT); //Set pin 8 as output pinMode(led2,OUTPUT); //Set pin 9 as output }
Finalmente, necesitamos definir el método loop() para ejecutar la lógica principal de control.
void loop() { while(Serial.available()) //While bluetooth is receiving data { data == Serial.read(); //Accept & store data in the variable "data" if(data == '1') //If received data = 1 { if(flag1 == 0) //Check if flag = 0 { digitalWrite(led1,HIGH); //turn led1 on Serial.println("LED 1 is on"); //print message on serial monitor flag1 = 1; //set flag as 1 } else if(flag1 == 1) //If flag is already 1 { digitalWrite(led1,LOW); //Turn off led1 Serial.println("LED 1 is off"); //print message flag1 = 0; //set flag as 0 } } if (data == '2') //if data received is 2 { if(flag2 == 0) //if flag value is 0 { digitalWrite(led2,HIGH); //turn led2 on Serial.println("LED 2 is on"); //print message flag2 = 1; //set flag2 as 1 } else if(flag2 == 1) //if flag2 is already 1 { digitalWrite(led2, LOW); //turn led2 off Serial.println("LED 2 is off"); //print message flag2 = 0; //set flag as 0 } } } }
Con esto hecho, ahora podemos cargar el código a nuestro Arduino. Asegúrate de desconectar el módulo bluetooth antes de subir el código. (Los pines TX/RX son usados por la Comunicación Serial al subir el código).
Código definitivo:
/*
* Connect LEDs to pin 8 & 9.
* Connect Bluetooth as :-
* ACC -> 5v of arduino
* GND -> GND
* TX -> RX
* RX -> TX
* NOTE :- Antes de subir este código asegúrate de quitar los pines de TX y RX del arduino o de lo contrario obtendrás un error
*/
//Set Arduino pin no. 8 & 9 as LEDs
int led1 = 8;
int led2 = 9;
//Random variable to store input data
int data;
//Two variables to store LED state wheather On/Off
int flag1 = 0;
int flag2 = 0;
void setup()
{
Serial.begin(9600); //Set baud rate for serial communication
pinMode(led1,OUTPUT); //Set LED pins as output
pinMode(led2,OUTPUT);
}
void loop()
{
while(Serial.available()) //while data is available
{
data = Serial.read(); //read the input and store in variable data
if(data == '1') //Check if data is '1'
{
if(flag1 == 0) //check if flag is set to 0
{
digitalWrite(led1,HIGH); //if flag is 0 turns LED 1 on
Serial.println("LED 1 is On"); //prints on terminal
flag1 = 1; //sets flag to 1
}
else if(flag1 == 1) //checks if flag is 1
{
digitalWrite(led1,LOW); //if flag is 1 turns LED 1 off
Serial.println("LED 1 is off");
flag1 = 0; //sets flag to 0
}
}
if(data == '2') //checks if data is '2'
{
if(flag2 == 0) //checks if flag is 0
{
digitalWrite(led2,HIGH); //if flag is 0 turns LED 2 on
Serial.println("LED 2 is on"); //prints on terminal
flag2 = 1; //sets flag to 1
}
else if(flag2 == 1) //checks if flag is 1
{
digitalWrite(led2,LOW); //if flag is 1 turns LED 2 off
Serial.println("LED 2 is off");
flag2 = 0; //sets flag to 0
}
}
}
}
Usa tu Smartphone BLE con Arduino
Para conectar el teléfono a Bluetooth primero necesitas una aplicación de serie de Bluetooth. He usado la aplicación Terminal serial Bluetooth.
Una vez que se establezca la conexión, pulsa la tecla «M1» para asignarle un valor. Asigne «M1» = 1 y «M2» = 2.
Ahora enciende el Arduino y haz clic en M1 en la aplicación para Smartphone. Deberías ver que el primer LED se enciende. Haz clic en M1 de nuevo para apagar el LED. Repite este proceso con M2 para el segundo LED.
¡Y eso es todo! Ahora que ya sabes cómo controlar los LEDs con Arduino a través de Bluetooth, puedes jugar con este tutorial y modificar el código para controlar tus propios proyectos.
Debe estar conectado para enviar un comentario.