Tutorial Arduino Y Bluetooth

by Samuel_R in Circuits > Arduino

446 Views, 0 Favorites, 0 Comments

Tutorial Arduino Y Bluetooth

vishnu-mohanan-vtg8tAdoWVQ-unsplash.jpg

Tutorial para usar módulo HC-06 de bluetooth en cualquier proyecto Arduino.

Supplies

  • Placa Arduino y cable para conectar al ordenador
  • Módulo bluetooth HC-06 (el que tiene 4 pines)
  • Ordenador con Arduino IDE para programar
  • Jumpers
  • Led y resistencia
  • LDR y resistencia
  • Móvil

Primera Conexión Entre Placa Y Movil

Paso 1 circuito.jpg
Screenshot_2022-03-22-17-49-42-52_b5a5c5cb02ca09c784c5d88160e2ec24.jpg
Screenshot_2022-03-22-14-35-35-92_8ecb18ff21726a42693957ff5a148085.jpg
IMG_20220412_130729.jpg

Lo primero que vamos a hacer es aprender a conectar un móvil al módulo HC-06.

Para ello, lo primero es conectar el HC-06 a la placa Arduino (como en la imagen) :

  • Pin VCC : 5V
  • Pin GND : GND
  • Pin TX : 2
  • Pin RX : 3

Si conectamos ahora la placa al ordenador, veremos parpadear la luz del módulo. Ahora hay que copiar el siguiente programa :

#include //incluimos librería para usar el módulo

SoftwareSerial hc06(2,3); //establecer hc06 en los puertos 2 (TX) 3 (RX)

char mensaje; //variable para almacenar los mensajes

void setup() {

Serial.begin(9600); //iniciar monitor serial

hc06.begin(9600); //iniciar hc06

}

void loop() {

if (hc06.available()) { //si esta disponible (conectado)

mensaje = hc06.read(); //variable mensaje = lectura del hc06

Serial.print("Mensaje recibido: "); // imprimir mensaje recibido

Serial.println(mensaje);

}

}

Ahora subimos el programa a la placa, y en el móvil vamos a instalar la aplicación "Bluetooth terminal". Mientras la aplicación se instala, vamos a vincular el módulo al móvil. Para ello nos vamos dentro de ajustes a la sección "Bluetooth" donde tenderemos que buscar dispositivos hasta encontrar el módulo "HC-06" (puede tardar unos segundos en aparecer). La contraseña por defecto es 0000 o 1234.

Una vez vinculado el bluetooth (ya no tendremos que volver a hacerlo en este móvil), vamos a la aplicación y en el desplegable seleccionamos el dispositivo. Le damos a conectar y veremos como la luz del módulo deja de parpadear.

Ahora, todo lo que enviemos desde la aplicación del movil lo veremos en el monitor serial del arduino.

Encender Y Apagar Led Con Móvil

IMG20220322145509.jpg
Screenshot_2022-03-22-14-52-41-65_baef74c35ee6edeb8cc0011176f5ed45.jpg
Paso 2 circuito.jpg

Una vez podemos recibir datos, utilizar para algo esos datos es muy facil. En este caso vamos a encender y apagar un led :

Lo primero es conectar el led a la placa como en la imagen, en el puerto 13. En el programa, añadiremos que cuando el mensaje sea "D" (o cualquier carácter) se encienda el led, y que cuando sea "E" se apague.

Quedaría algo así :

#include //incluimos la librería

SoftwareSerial hc06(2, 3); //TX RX

#define led 13 // definir led en puerto 13

char mensaje; //variable mensaje

void setup() {

pinMode(led, OUTPUT); //led commo input

Serial.begin(9600); //iniciar monitor serie

hc06.begin(9600); //iniciar hc06

}

void loop() {

if (hc06.available()) { //si esta disponible (conectado)

mensaje = hc06.read(); //variable mensaje = leer hc06

Serial.println(mensaje); //imprimir mensaje

if(mensaje == 'D'){digitalWrite(led, HIGH);} //si el mensaje es D apagar led

if(mensaje == 'E'){digitalWrite(led, LOW);} //si el mensaje es E encender led

}

}

Subimos el programa a la placa, conectamos el móvil al módulo y cuando deje de parpadear probamos a encender y apagar el led. Si enviamos "D" desde el móvil se encenderá, y si enviamos E se apagará.

Leer Ldr Desde El Movil

paso 3 circuito.jpg
IMG20220328133524.jpg
Screenshot_2022-03-28-13-44-23-63_baef74c35ee6edeb8cc0011176f5ed45.jpg

Ya hemos aprendido a enviar información del móvil a la placa, ahora vamos a ver como hacer lo contrario.

Para ello lo primero es desconectar el LED y conectar el LDR al puerto A0 como en la imagen. En el programa vamos a añadir el ldr y una variable nueva, donde almacenaremos el valor del ldr. Entonces cuando el hc06 esté conectado, cada segundo (o el tiempo que se elija) se enviará el valor del LDR.

El programa quedará así :

#include //incluir libreria

SoftwareSerial hc06(2, 3); //hc06

#define ldr A0

int ldrV = 0;//variable ldrV

void setup() {

Serial.begin(9600); //iniciar puerto seria

hc06.begin(9600); //

}

void loop() {

ldrV = analogRead(ldr);

if (hc06.available()) {

hc06.println(ldrV);

delay(1000);

}

}

Subimos el programa, conectamos el bluetooth y veremos como se envían los datos del ldr al movil, y se muestran en la consola de la aplicación.

Aplicación Con App Inventor

Screenshot 2022-04-04 11.40.44.png
Screenshot 2022-04-12 13.48.32.png
Screenshot 2022-04-12 13.51.43.png

Ahora vamos a crear una aplicación con AppInventor para hacer lo que hemos hecho hasta ahora (o descargar la que he hecho yo desde aquí).

Accedemos aquí y creamos un nuevo proyecto. Como hemos visto, para encender y apagar un led solo hace falta que la placa reciba ciertos caracteres (en este caso "D" y "E").

Ahora veremos una pantalla de móvil en blanco. Esta pantalla es lo que se verá en nuestra aplicación cuando la exportemos a Android. Para añadir cosas basta con arrastrarlas del menú de la izquierda (Palette).

Nuestra aplicación solo necesita de 4 elementos para funcionar: Un Labell (texto), ListPicker (lista), dos Buttons (botones) y el cliente bluetooth (En el apartado conectivity, BluetoothClient).

Ahora podemos editarlos para darle una mejor imagen. Podemos cambiar los textos y moverlos por la aplicación, pero no es necesario para esta aplicación.

Para programar estos elementos accedemos al panel BLOCKS, donde vamos a copiar lo que hay en la imagen.

Básicamente, el programa funciona de este modo: El ListPicker nos va a mostrar todos los dispositivos bluetooth vinculados a nuestro teléfono y cuando pulsemos uno nos va a conectar a él. Entonces los botones tienen la función de enviar los caractéres asignados (en este caso "D" y "E"). Cuando el módulo reciba estas letras, las leerá la placa y hará la acción correspondiente.

Utilizar Bluetooth En Cualquier Proyecto Arduino

Para resumir, el módulo HC06 funciona de este modo :

Primero vamos a pensar que acciones queremos controlar mediante el bluetooth (Por ejemplo encender y apagar un led, o controlar la rotación de un servo). A cada acción le vamos a asignar un carácter, para que cuando el módulo reciba ese carácter haga esa acción (Por ejemplo, si recibe el carácter "D" que encienda el led o si recibe el carácter "A" que mueva un servo hacia la derecha). En el programa vamos a escribir estas condiciones como ya hemos hecho antes :

if(mensaje == 'D') {digitalWrite(led, HIGH);} //si el mensaje es D encender el led

Y desde la consola de la aplicación del móvil vamos a enviar esos caracteres, o si utilizamos app inventor, asignaremos a un botón la función de enviar el carácter. El módulo recibirá el mensaje, lo leerá y hará la acción correspondiente

Si por ejemplo queremos hacer que un buzzer suene cada vez que pulsamos un botón en el móvil, le asignaremos una letra a esa acción y lo pondremos como condición en el programa "si el mensaje es "A", tocar X nota". Entonces desde el móvil enviaremos ese carácter y el buzzer sonará.

Una vez entendido como funciona el módulo, aplicar todo esto a cualquier proyecto Arduino es muy simple.