Encendido de LED desde celular con Bluetooth

Smelpro > Tutoriales  > Arduino  > Encendido de LED desde celular con Bluetooth

Encendido de LED desde celular con Bluetooth

La transmisión inalámbrica de datos es de gran ayuda ya que reduce costos de cableado e instalación, evitando instalaciones innecesarias.

Existen diversas tecnologías de conexión inalámbrica. En los tutoriales anteriores estuvimos usando WiFi para leer datos y controlar dispositivos.

En esta ocasión utilizaremos Bluetooth, siendo más específicos controlaremos un led desde una app.

 

¿Qué es bluetooth?

Bluetooth es una tecnología diseñada para Redes Inalámbricas de Área Personal (WPAN). Suelen ser de distancias cortas, llegando a abarcar unos cuantos metros.

Una de sus ventajas es el bajo consumo que requiere para funcionar, por lo que la fabricación y compra de módulos no es elevada. Además, utiliza radiofrecuencia permitiendo que varios dispositivos se conecten mientras estén en la misma zona de alcance, mucho mejor que el infrarrojo en el que los dispositivos tenían que estar alineados para comunicarse.

Para emparejar o vincular dispositivos con Bluetooth haremos mención de dos términos: maestro y esclavo, o en inglés master y slave.

Un dispositivo que inicia el emparejamiento se denomina maestro, este puede vincularse a varios dispositivos (máximo 7), que serán esclavos, pero estos últimos solo pueden conectarse a un maestro.

Por ejemplo, tu laptop puede ser un maestro emparejado a diversos dispositivos que serían esclavos.

 

HC-06 y HC-05

En la gama de los HC estos dos son los modelos más comerciales, dejando al HC-03 y al HC-04 para nivel industrial.

A simple vista pueden parecerte iguales, a excepción de la cantidad de pines que tienen. Sin embargo, la mayor diferencia no se encuentra en su hardware, está en su firmware.

Debido a la diferencia de firmware el HC-06 solo se puede usar como esclavo, mientras que el HC-05 puede ser un maestro o un esclavo.

Es posible convertir un HC-06 a un HC-05, pero no es algo que se necesite comúnmente.

En esta ocasión disponemos de un HC-05 para realizar el tutorial.

Descargar datasheet aquí.

 

App Inventor

Gracias a App Inventor puedes crear aplicaciones para Android sin necesidad de usar código. Este servicio online usa un método de drag and drop (arrastrar y soltar) para insertar y organizar los elementos que quieres que aparezcan en tu aplicación.

Lo mismo al momento de programar, solo necesitas seleccionar unos bloques en los que están las instrucciones. Es sencillo, y puede ser usado en diversos idiomas incluyendo el español.

Puede entrar dando clic aquí.

 

Conexión

Puedes conectar el módulo directamente a Arduino, el orden de conexión sería el siguiente.

Como puedes observar los pines de Vcc y GND se mantienen como de costumbre. En cambio, los otros dos pines van cruzados. Conecta el pin RXD del HC-05 al pin 2 (TX) de Arduino, y el TXD al pin 4 (RX) de Arduino.

 

Vincular

Vincular este módulo a tu teléfono no es diferente a lo que estás acostumbrado.

Puedes conectar únicamente los pines Vcc y GND del módulo HC y proceder.

Para conectar el modulo bluetooth al celular debemos primero saber el nombre del modulo y su contraseña o PIN. Si el modulo es nuevo es muy probable que el nombre sea HC-05 ó Linvor, en caso este no sea el nombre podemos modificar tanto el nombre y el PIN usando comandos AT.

 

Comandos AT

Los comandos AT (attetion) servían para configurar un módem. Con el tiempo la tecnología ha sido desarrollada pero estos comandos quedaron como un estándar en, por ejemplo, los puertos serie.

Los módulos pueden ser configurados mediante estos comandos, podemos ver y cambiar el nombre, la velocidad de transmisión, la contraseña y muchos otros aspectos. Pero por ahora nos centraremos en lo básico.

Realiza la siguiente conexión.

Luego sube el siguiente código:

#include <SoftwareSerial.h>   // Librería software serial
SoftwareSerial BT1(4, 2);   //RX Y TX

void setup()
{
  BT1.begin(9600);       // Puerto serie
  Serial.begin(9600);   // Se inicia el puerto serie
}

void loop()
{
  if (BT1.available())         //Si un dato llega por el puerto BT1
  {
    Serial.write(BT1.read());  //se mostrará en el monitor serie
  }

  if (Serial.available())       // Si se introduce un dato por el monitor serie
  {
    BT1.write(Serial.read());  //se enviará al puerto BT1
  }
}

Abre el Monitor serie (Ctrl+Mayús+M), después presiona el botón de tu módulo HC-05.

Ingresa el comando “AT” y presiona la tecla Enter. Si después de eso aparece un OK quiere decir que puede recibir los comandos AT.

AT

Este comando es, como vimos, para verificar si el módulo está en modo AT.

Escribir: AT

Recibir: OK 

AT+NAME

Con este comando podemos cambiar el nombre de nuestro módulo. 

Escribir: AT+NAME=NOMBRE 

Recibir: OK

Ejemplo: AT+NAME=SMELPRO

AT+PSWD

Este comando nos sirve para modificar el pin para vincularnos con el módulo.

Escribir: AT+PSWD=PIN

Recibir: OK

Ejemplo: AT+PSWD=4729

AT+UART

Con este comando cambiamos los parámetros de baudios, stop bit y paridad.

Los baudios son la velocidad, puedes elegir entre: 4800, 9600, 19200, 38400, 57600, 115200, 23400, 460800, 921600 o 1382400.

En el Bit de parada puede ser 0 (para 1 bit) o 1 (para 2 bits). Se suele dejar esto en 0.

 En la paridad podemos escoger entre 0 (sin paridad), 1 (paridad impar) y 2 (paridad par). Esto también se suele dejar en 0, ya que no se usa la apridad en la mayoría de proyectos

Escribir: AT+UART=Baud,StopBit,Parity

Recibir: OK

Ejemplo: AT+UART=115200,0,0

AT+ROLE

Con esto cambiamos el rol a esclavo (0) o maestro (1). 

Escribir: AT+ROLE=ROL

Recibir: OK

Ejemplo: AT+ROLE=1

 

Conectando nuestro Bluetooth con Arduino

Entra a la ventana de configuración de Bluetooth en tu móvil, busca el que diga el nombre del modelo del sensor que usas (en algunos casos es “linvor”). Te pedirá una contraseña, la cual es 1234.

 

Programación

 

Arduino

El módulo Bluetooth HC-05 se comunica a través del puerto serie, haremos que el programa en Arduino reciba es información y lo almacene en una variable previamente declarada.

Después usaremos funciones de “if”para comparar lo recibido y ejecutar las instrucciones de encendido o apagado.

Les dejamos el código con su respectiva explicación.

 
#include <SoftwareSerial.h> //Librería para usar otros pines como Serial
SoftwareSerial BT1(4,2); //Harán de RX Y TX, respectivamente. También se cruzan.
char val; //Declaramos una variable para almacenar un caracter
int led = 13; //Declaramos al pin dentro de una variable llamada led
void setup() {
  BT1.begin(9600); //Lo que sería seríal se reemplaza con BT1
  pinMode(led, OUTPUT); //Declaramos al pin 13 como salida
}

void loop() {

  //Declaramos un if para ver los datos almacenados en BT1
  if (BT1.available()) {
    val = BT1.read(); //Se lee la información
    //Declaramos la condiciones. La app envía un caracter distinto
    //depeniendo del botón que presiones y se alamcena en la variable val.
    if ( val == '0' )
    {
      digitalWrite(led, LOW); //Si presionas Off enviará un 0. 
                              //Por lo que pondrá el pin en LOW.
    }

    if ( val == '1' )
    {
      digitalWrite(led, HIGH); //Si presionas On enviará un 1. 
                               //Por lo que pondrá el pin en HIGH.
    }
  }

}

La conexión es la misma que estábamos usando anteriormente

 

App Inventor

Entra a esta dirección: http://appinventor.mit.edu/explore/

Haz clic en el botón que diga “Create apps!”. Tendrás que iniciar sesión con tu cuenta de Gmail. Después de eso verás un panel en el que se mostrarán todos tus proyectos.

Puedes importar proyectos a App Inventor, por ejemplo, aquí dejamos la app que diseñamos para esta ocasión.

 

Descarga aquí.

En App Inventor ve al menú de Proyectos (Projects), luego a Importar proyecto (.aia) desde mi ordenador.

Luego busca el archivo .aia descargado y selecciónalo.

Verás que se ha agregado a tu panel de proyectos. Al abrirlo lo primero que notarás será la pantalla principal de aplicación.

Si das clic en el botón que dice Blocks verás la ventana en la que se programa la aplicación usando los bloques.

Lo que hace la aplicación es, en primer lugar, revisar si has presionado el Selector De Lista (Conectar), en caso de que lo hayas hecho abrirá un menú en el que deberás elegir de entre todos los dispositivos que estén en tu lista de vinculados, en el que debería estar el nombre del módulo.

 

Vamos a probar la app.

Descarga la aplicación de MIT AI2 Companion, y mantén el teléfono conectado a Wifi.

Al abrir la aplicación verás un cuadro de texto en el que tendrás que escribir un código.

Para obtener dicho código abre el menú de Conectar en App Inventor, y luego AI Companion. Te mostrará un código en QR y también escrito. Puedes escanear o escribir directamente el código en la aplicación.

Después de eso , en la aplicación, presiona en el botón Conectar para seleccionar el HC-05 previamente vinculado y usar los botones de On y off para controlar el LED.

 

 

Esperamos haberte ayudado con este tutorial. Recuerda comentar y compartirlo, nos ayuda a mejorar nuestro trabajo y mantenernos comunicados contigo.

Contáctanos para ayudarte y asesorarte en proyectos relacionados a IoT. Hasta la próxima.

Blog
No Comments

Post a Comment

Comment
Name
Email
Website