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

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.

esquema de conexion leds arduino uno y bluetooth

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.

Arduino-BLE-Tutorial

Código para controlar Bluetooth con Arduino

codigo en arduino IDE

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.

terminal aplicacion bluetooth

Una vez que se establezca la conexión, pulsa la tecla «M1» para asignarle un valor. Asigne «M1» = 1 y «M2» = 2.

edit macro en terminal

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.

conexiones leds bluetooth arduino

¡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.

Pin It on Pinterest

Shares