1. El Octavo Bit
  2. / Arduino
  3. / Proyectos para Arduino
  4. / Tutorial básico de uso del módulo bluetooth HC-06 en Arduino

Tutorial básico de uso del módulo bluetooth HC-06 en Arduino

| Actualizado:
Comentarios: 0

Tutorial básico de uso del módulo bluetooth HC-06 en Arduino
Tutorial básico de uso del módulo bluetooth HC-06 en Arduino

El objetivo de este tutorial es poder añadir un módulo bluetooth a nuestra placa de Arduino y poder comunicarnos con un teléfono móvil Android a través de una aplicación. Primero veremos cómo conectarlo al móvil y después, cómo configurar el módulo HC-06.

Conectar el módulo HC-06 con un móvil Android.

Conexión del módulo HC-06 con un móvil Android.

El módulo HC-06 se caracteriza por tener 4 pines:

  • VCC, es el pin de alimentación, cable rojo.
  • GND, va conectado al pin GND de la placa de Arduino, cable negro.
  • TX, pin para transmisión de los datos, cable verde.
  • RX, pin para recepción de datos, cable naranja.

Código básico para conectar nuestro módulo y utilizar el monitor serie de Arduino:

void setup(){
  Serial.begin(9600); // según el manual viene configurado de serie a 9600
}

void loop(){
  if (Serial.available()){
    char dato=Serial.read();
    Serial.print("Dato recibido: ");
    Serial.println(dato);
  }
}

En la placas de Arduino los pines digitales 0 (RX) y 1 (TX) son compartidos con el USB, por lo tanto, hay que tener en cuenta que no deberá estar conectado el módulo de bluetooth, o nos dará problemas al subir el sketch a la placa.

Para poder comunicar el móvil con el módulo de bluetooth utilizaremos la aplicación Arduino bluetooth controller, que podemos conseguir en Google Play.

Aplicación bluetooht controller para utilizar con el dispositivo móvil.

El primer paso, sería emparejar el dispositivo móvil Android con el módulo. Para ello, es necesario activar el bluetooth en el móvil y buscar el dispositivo para vincularlo con el móvil. Entonces, nos pedirá una contraseña que por defecto es 1234 y el nombre del dispositivo HC-06.

Ejecutamos la aplicación Arduino Bluetooh Controller que hemos instalado y conectamos en modo terminal. Escribimos algún texto y lo enviamos. Debería de aparecer en el monitor serie de la placa Arduino y el dispositivo debería avisarnos de que los datos se han recibido.

Conectar el módulo HC-06 utilizando la librería SoftwareSerial.

En el código anterior hemos utilizado los pines digitales 0 y 1, pero si preferimos utilizar otros para no perder la conexión con el PC lo podemos hacer utilizando la librería SoftwareSerial.

Conexión del módulo HC-06 utilizando la librería SoftwareSerial.

Código:

#include "SoftwareSerial.h"
SoftwareSerial BT(4,2); // RX, TX recorder que se cruzan

void setup(){
  Serial.begin(9600);
  BT.begin(9600);
}

void loop(){
  if (BT.available()){
    Serial.write(BT.read());  // Si llega un dato por el puerto BT se envía al monitor serie
  }
  if(Serial.available()) {
    BT.write(Serial.read()); // si llega un dato por el monitor serie se envía al puerto BT
  }
}

En la primera línea incluimos la librería SoftwareSerial.h y con la instrucción SofwareSerial le indicamos qué pines vamos a utilizar para la comunicación con el módulo.

En la función setup iniciamos la comunicación con el monitor serie y con el puerto BT.

En la función loop tenemos dos if, el primero comprueba si tenemos comunicación a través del puerto BT (que proviene del móvil) y envía los datos al monitor serie, mientras que el segundo if, comprueba si la comunicación proviene del monitor serie y envía los datos al móvil.

Cambiar la configuración del módulo HC-06.

Para cambiar la configuración que viene por defecto utilizaremos el esquema de montaje anterior y el siguiente código:

#include "SoftwareSerial.h"
SoftwareSerial BT(4,2); // RX, TX

void setup(){
  Serial.begin(9600);
  Serial.println("Enter AT commands:");
  BT.begin(9600);
}

void loop(){
  if (BT.available())
    Serial.write(BT.read());
       
  if (Serial.available()){
    String S = GetLine();
    BT.println(S); // Si no responde el Bluetooth quitar salto de linea, cambiar por BT.print(S);
    Serial.println("---> " + S);
  }
}

String GetLine(){
  String S = "" ;
  if (Serial.available()){
    char c = Serial.read(); ;
    while (c != '\n'){
      S = S + c ;
      delay(25) ;
      c = Serial.read();
    }
    return( S ) ;
  }
}

Lo primero que debemos averiguar es la versión para saber la sintaxis de los comandos. El comando para obtener la versión del firmware es AT+VERSION todo en mayúsculas y sin espacios, debe ser introducido a través de la ventana serial de Arduino y con la opción de nueva línea seleccionada.

Captura de pantalla con la orden AT+VERSION

Conociendo la versión de nuestro módulo, podemos saber qué sintaxis utilizar. En mi caso la versión es la 3.0

Lista de comandos para la versión 1.8:

  • AT –> Prueba comunicación de comandos
  • AT AT+NAMEmibluetooth –> Cambia el nombre del módulo por «mibluetooth»
  • AT+PIN0000 –> Modifica la contraseña por 0000, la contraseña por defecto es 1234
  • AT+BAUD4 –> Selecciona la velocidad de conexión, el 4 corresponde a 9600 bps.

Lista de comandos para la versión 3.0:

  • AT –> Prueba comunicación de comandos
  • AT AT+NAME:mibluetooth –> Cambia el nombre del módulo por «mibluetooth»
  • AT+PSWD:»0000″ –> Modifica la contraseña por 0000
  • AT+UART:9600,0,0 –> Selecciona la velocidad de conexión
Captura de pantalla con los comando para cambiar el nombre y la contraseña del modulo HC-06

Artículos que te pueden interesar

Arduino y Processing Comunicación básica
Arduino y Processing Comunicación básica por puerto serie

Arduino y Processing Comunicación básica por puerto serie

| Actualizado:
Comentarios: 0

En este tutorial veremos como comunicar Arduino con processing utilizando dos ejemplos muy sencillos. En el primero de ellos, mandaremos una variable para que processing nos la muestre en la consola. En el segundo, cambiaremos el color de fondo de…

Robot Arduino controlado por un mando a distancia de infrarrojos
Robot Arduino dirigido con un mando infrarrojo

Robot Arduino controlado por un mando a distancia de infrarrojos

| Actualizado:
Comentarios: 0

El objetivo de este proyecto es controlar el movimiento de un robot Arduino con un mando a distancia, a través de una señal de infrarrojo.

Robot controlado por bluetooth con Arduino
¿Cómo hacer un coche controlado por bluetooth con Arduino?

¿Cómo hacer un coche controlado por bluetooth con Arduino?

| Actualizado:
Comentarios: 4

En este tutorial construiremos un robot móvil controlado por Bluetooth desde nuestro móvil a través de una aplicación de Android. El montaje y la puesta en funcionamiento de este pequeño coche es sencillo puesto que es el resultado de la…

Motor paso a paso 28BYJ-48 con Arduino
Conexión del motor paso a paso 28BYJ-48 y el módulo ULN2003 con Arduino

Conexión del motor paso a paso 28BYJ-48 y el módulo ULN2003 con Arduino

| Actualizado:
Comentarios: 0

En este artículo veremos el motor paso a paso unipolar 28BYJ-48. Es un motor barato y que podemos utilizar en gran cantidad de proyectos como robots, impresoras 3D o fotocopiadoras. Nos vamos a centrar en la programación del motor con…

Comentarios - 0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *