Este contenido es un complemento práctico para los contenidos teóricos de los temas 4. Fundamentos de Computación Física, 5. Internet de las Cosas y 6. Robótica, de la asignatura Computación y Robótica de 2º y 3º de ESO.
Tabla de contenidos
- 1. Introducción
- 2. El módulo Bluetooth HC-05
- 3. Configurar el módulo Bluetooth HC-05
- 4. Comunicarnos con Arduino UNO R3 a través del móvil usando el módulo Bluetooth HC-05
🛠️ Materiales:
- 1 x Placa Arduino.
- 1 x Protoboard.
- 1 x Módulo Bluetooth HC-05.
- 1 x LED.
- 1 x Resistencia de 220 ohmios.
- 6 x Cables Dupont (4 macho-hembra y 2 macho-macho).
1. Introducción
Cuando trabajamos la conectividad usando placas controladoras Arduino UNO R3 (como las que venimos usando a lo largo de todo el curso), tenemos una limitación importante: no dispone de conectividad Bluetooth ni tampoco WiFi. La buena noticia es que en el mundo del hardware libre todo es posible, por lo que podemos adquirir componentes que conectados con nuestra placa nos aporten la funcionalidad que buscamos.
2. El módulo Bluetooth HC-05
Como decíamos, nuestra placa Arduino UNO R3, no dispone de conectividad Bluetooth, pero podemos adquirir un módulo Bluetooth HC-05 (usa comunicación serial) y configurarlo con nuestra placa. Este es su aspecto:

Anverso del módulo Bluetooth HC-05

Reverso del módulo Bluetooth HC-05
Para usar nuestro módulo bluetooth, primero debemos configurarlo, ya que tenemos que asegurarnos de que está funcionando bien antes de que confiemos en enviar o recibir datos con él.
3. Configurar el módulo Bluetooth HC-05
Esta configuración la haremos una única vez después de comprar el módulo, para saber cuál es su dirección física, qué contraseña de emparejamiento trae, con qué nombre aparecerá cuando haya un escaneado Bluetooth, etc.; y también para poder cambiar todo lo anterior y colocar los valores que nosotros queramos.
Lo conectaremos así:

Y a continuación, subiremos a la placa nuestro programa de configuración:
#include <SoftwareSerial.h> SoftwareSerial BT1(10, 11); // RX | TX void setup() { pinMode(8, OUTPUT); pinMode(9, OUTPUT); digitalWrite(9, HIGH); // Forzar el modo AT delay (500); // Espera antes de encender el modulo Serial.begin(9600); Serial.println("Levantando el modulo HC-05"); digitalWrite (8, HIGH); //Enciende el modulo Serial.println("Esperando comandos AT:"); BT1.begin(38400); // Según el fabricante podría ser 57600, 38400 o 9600 } void loop() { if (BT1.available()) // Mostrar en el Serial Monitor lo que recibimos por Bluetooth Serial.write(BT1.read()); if (Serial.available()) // Enviar al Bluetooth lo que escribimos en el Serial Monitor BT1.write(Serial.read()); }
Si ahora desde nuestro «Serial Monitor» enviáramos el comando AT+PSWD? al Bluetooth, nos respondería con el PIN de emparejamiento que tiene configurado el Bluetooth.

De esta manera podemos ir lanzándole comandos AT tanto para conocer su configuración, como para cambiarla.
En este enlace tienes una larga lista de comandos AT con explicaciones sobre su modo de uso y su utilidad.
Ahora que ya sabemos configurarlo, vamos a hacer un pequeño proyecto donde hagamos uso de este interesante módulo.
4. Comunicarnos con Arduino UNO R3 a través del móvil usando el módulo Bluetooth HC-05
La idea es que seamos capaces de modificar el estado de algún sensor conectado a nuestra placa Arduino usando un teléfono móvil. De esta manera, podríamos encender la calefacción, abrir una cerradura o levantar las persianas. Todos estos ejemplos, y muchos otros que se te ocurran, son posibles simplemente si somos capaces de hacerle llegar a nuestra placa una señal eléctrica a través del móvil usando Bluetooth (recuerda que la comunicación es serial). Pues vamos a hacerlo de la manera más simple posible que es encender y apagar un LED.
Ahora, ya no queremos configurar el módulo, sino usarlo, así que presta atención a nuestro programa:
int led = 5; char letra; void setup() { pinMode(led,OUTPUT); Serial.begin(9600); } void loop() { if(Serial.available()) { letra = Serial.read(); } switch (letra) { case 'a': digitalWrite(led,HIGH); break; case 'b': digitalWrite(led,LOW); break; } }
Si te fijas, aquí ya no aparece nada de Bluetooth, sin embargo al funcionar nuestro módulo Bluetooth como la comunicación serial, vamos a usar los pines de lectura (Rx) y escritura (Tx) del USB de la placa para que nuestros datos vayan y vengan a través del Bluetooth, no a través del Monitor Serie del Arduino IDE.
Primero (es muy importante este orden), cargamos nuestro programa en la placa controladora, y luego conectamos los cables así:

El cable azul será el VCC del módulo e irá al pin 5V de la placa.
El cable verde será el GND del módulo e irá a un pin GND de la placa.
Los cables amarillo (Tx) y naranja (Rx) del módulo irán cruzados conectándose respectivamente al pin Rx y Tx de la placa. Esto último lo que hace es usar la comunicación serie del USB para ponerla al servicio del Bluetooth.
De esta manera, cuando enviemos por Bluetooth una «a» el LED se encenderá y cuando enviemos una «b» el LED se apagará.
Bien, nuestro circuito está listo, y nuestro programa también.
¿Cómo le enviamos esa ‘a’ o ‘b’ al Bluetooth de nuestro circuito?
Usando una app móvil: o bien la construyes tú mismo (usando MIT App Inventor, Thunkable o similar) o utilizas una app diseñada para la comunicación serie con dispositivos Bluetooth.
Como esta última opción es la más rápida, lo haremos así.
Ve a la tienda de aplicaciones de tu móvil y busca e instala algo relacionado con «Bluetooth serial». Hay muchas, yo he instalado esta:

A continuación, necesitamos emparejar nuestro móvil con el módulo Bluetooth HC-05. Así que, activa el Bluetooth de tu móvil, realiza un escaneo y sincronízalo con HC-05 (como si estuvieras emparejando unos auriculares o un ratón). La clave de emparejamiento ya vimos que es 1234, aunque podría ser distinta si la has cambiado o estás usando un módulo de otro fabricante.
Hecho esto, ya podemos abrir la app Serial Bluetooth Terminal.
Su funcionamiento es muy sencillo, primero vamos a Devices, escaneamos, seleccionamos HC-05, volvemos a Terminal, pulsamos sobre el iconito de conexión superior derecho y ya podemos escribir abajo una letra y enviarla.




Si la letra que enviamos es una «a», nuestro LED debe encenderse. Igualmente, si enviamos una «b» nuestro LED se apagará.
De esta manera da igual si nuestro sensor es un LED, una cerradura o una bomba de agua, la cuestión es que con una pulsación de nuestro móvil somos capaces de hacerle llegar una señal eléctrica por Bluetooth.
Las aplicaciones prácticas son infinitas.