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

Módulo controlador de motores L298N
Funcionamiento del módulo controlador de motores L298N

Funcionamiento del módulo controlador de motores L298N

| Actualizado:
Comentarios: 0

En este tutorial explicaremos cómo controlar dos motores de corriente continua con el módulo L298N, realizaremos un ejemplo básico, primero sin utilizar ninguna librería y después, con la biblioteca LEANTEC_ControlMotor.h El L298N es un módulo para controlar motores. Es fácil…

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 esquiva obstáculos con Arduino
Robot esquiva obstáculos con Arduino y un sensor de ultrasonidos

Robot esquiva obstáculos con Arduino y un sensor de ultrasonidos

| Actualizado:
Comentarios: 2

En este proyecto nos marcamos el objetivo de desarrollar un robot capaz de esquivar objetos. Un robot que avanzará en línea recta mientras que no detecte ningún obstáculo; en caso de detectar algún estorbo, girará sobre sí mismo hasta que…

Control Remoto en Arduino
Control Remoto en Arduino con la librería IRremote

Control Remoto en Arduino con la librería IRremote

| Actualizado:
Comentarios: 0

¿Qué te parece utilizar un mando para apagar o encender la luz? En este post vamos a utilizar un mando a distancia y un sensor infrarrojo con el que encender o apagar un led. Son elementos que podrás aplicar en…

Comentarios - 0

Deja un comentario

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