Bluetooth HC-06 y HC-05 Android Arduino

Tutorial para usar el Módulo Bluetooth HC-06 y el HC-05 y una comunicación con una App de Android a Arduino. En primer lugar. el dispositivo HC06 y el HC-05, gracias a sus puertos TxD y RxD nos permite realizar comunicaciones inalámbrica a una distancia de 10 mts máximo. Ten en cuenta que estos dispositivos son fáciles de manejar, por sus comandos AT. Dichos comandos se envian por un puerto serial. También es de bajo consumo ya que trabajan a 3.3V. Los módulos son para aplicaciones sobre todo con microcontroladores, PIC o tarjetas Arduino. Sacando ventaja de su tamaño 12.7mmx27mm (puede variar dependiendo el tamaño).

En este tutorial vamos a explicar un poco del funcionamiento de estos módulos y como configurarlos, por lo tanto asegúrate de tener tu Arduino y tu módulo bluetooth a la mano. También abordaremos las diferencias entre el HC-05 y el HC-06.

En la foto previa vemos de izquierda a derecha, los módulos HC-05 y HC-06 en formato para protoboard. De cualquier manera, ya sea con pines o con PADs este tutorial es valido.

bluetooth hc-06

Bluetooth HC-05 y el HC-06 (6 pines) y (4 pines)

Módulo Bluetooth HC-05

Para empezar el módulo de bluetooth HC-06 solo opera de modo esclavo, a diferencia de su hermano HC-05. Primeramente el HC-05 ofrece una mejora con respecto a precio y características, ya que es un módulo Maestro-Esclavo, esto quiere decir, que además de recibir conexiones desde una PC o tablet, (objetivo de este primer Tutorial), también es capaz de generar conexiones hacia otros dispositivos bluetooth.

Para empezar, esto nos permite por ejemplo, conectar dos módulos bluetooth y formar una conexión punto a punto, para transmitir datos entre dos microcontroladores o dispositivos.

arduino bluetooth
Dispositivos de 4 y 6 Pines.

 

Material

Se ocuparan 1 o 2 de cada Elemento:
Módulos Bluetooth (al menos 1 debe ser HC-05)
Arduino (Cualquier Modelo)
– App Android (BlueTerm, ArduDroid, Bluetooth Serial Control, JoyBT Commander etc…)
Jumpers (de preferencia Macho-Hembra)
LEDresistencia de 220 ohm.
– Si es necesario alguna fuente de alimentación de 6-12V o 5V de comunicación serial.

Comunicación App-Android a Arduino mediante Bluetooth HC-05

Este tutorial puede servir desde prender y apagar LEDs al mismo tiempo que controlar un Robot de manera remota. Por consiguiente cualquier modulo bluetooth es bueno. Para esta parte usaremos lo siguiente, App Android, un Arduino, un LED y el Modulo Bluetooth HC-06 (esclavo). Ya que este módulo no ocupa ninguna clase de configuración, se destaca por solo tener 4 pines.

PASO 1: Establecer la App según la finalidad

Hay diversas App en play.google.com/store solo es cuestión de buscar “arduino bluetooth” ó «bluetooth hc-06 arduino». Todas con el mismo código y principios de comunicación Serial. Nosotros utilizamos, por ejemplo, Bluetooth Serial Controller Entre las más clásicas y desde mi opinión las más útiles están:

  • BlueTerm: aunque muy básico logra dar una idea muy primitiva de lo que se esta haciendo.
  • ArduDroid: es una app de testeo rápido, prender y apagar puertos y controlar PMW´s.
  • Bluetooth Serial Controller: My favorita puedes crear tu propia Botonera.
  • Joystick Bluetooth Commander: un Joystick y 4 Botones.
  • Arduino BT Mando PRO: muy intuitivo y logra usar el Giroscopio interno de tu Móvil.

PASO 2: Instalemos la aplicación a usar

Esta ves usaremos Bluetooth Serial Controller ya que es un programa muy completo y fácil de usar Primero búsquenlo e Instálenlo.

Bluetooth_05
1) Una vez instalado les pedirá que prendan el bluetooth de su equipo, si es que estaba apagado.
Bluetooth_08
2) Por defecto te da 9 botones y puedes controlar hasta 25 botones.
Bluetooth_09
3) Para configurar lo presionamos menú donde sale el menú preferencias.
Bluetooth_10
4) La aplicación nos permite guardar A-E Botoneras
Bluetooth_13
5) Podemos modificar el Nombre de cada Botón.
Bluetooth_14
6) Podemos modificar el Comando de cada Botón.
Bluetooth_15
7) Podemos modificar la Visibilidad de cada Botón.
Bluetooth_16
8) Así como sus Preferencias.
Bluetooth_17
9) La configuración que usaremos seria Prender y Apagar un Led.
Bluetooth_18
10) Al presionar la Lupa nos permite conectar al Modulo. ya que tengamos Conectado y Programado nuestro Controlador.
Bluetooth_19
• Como les mencionaba se pueden emplear a gusto sus usos.

Ya que el modulo manda un carácter a la vez de 8 bits, solo veremos la comunicación de, por ejemplo, ‘C’ ya sea como int o char. Como referencia puedes ver una tabla ASCII para asociar los valores. Ya con práctica y conocimiento, pueden practicar un poco con los siguientes ejemplos y guardar cadenas. De tal manera, mandar ordenes más claras como datos y procesos, y no solo ordenes. Como por ejemplo el siguiente enlace con un programa de «Joystick Bluetooth Commander» un Joystick y 4 Botones. Enlace del ejemplo: Codigo Cadena.

PASO 3: Programar Arduino

bluetooth hc-06
Arduino UNO + Modulo Bluethoot HC-05

Ya que no sabemos que tiene cargado el Arduino es importante primero programarlo y así prevenir voltajes de entrada indeseados a nuestros componentes. Recordemos que la transmisión (abreviatura: Tx) va a nuestra recepción (abreviatura: Rx) y viceversa. Aunque el Modulo puede operar a 5V lo recomendable son los 3.3V para el ahorro de energía.
Y como respuesta colocar un LED con una resistencia de 220 ohm del pin 12 a GND.

Código fuente Arduino bluetooth hc-06 con app android

El programa será el siguiente:

 

 

Listos con la App buscamos nuestro bluetooth hc-06 en la LUPA, «la contraseña es 1234 que ya viene de Fabrica.» la App debe notificarnos que esta conectado al modulo y listo «1»´s y «0»´s prenderán y apagaran el LED. Con esto concluimos este tutorial, cualquier dudas o comentarios déjenlos en la caja de comentarios.

68 comentarios en «Bluetooth HC-06 y HC-05 Android Arduino»

  1. Buen día, agradeceria que me pudieras ayudar en lo siguiente por favor.
    Actualmente estoy haciendo un puente levadizo con dos secciones que se abren y cierran con dos motores de corriente continua y desde bluetooth controlo que cada seccion se abra o se cierre con un programa llamado APP INVENTOR (es el que permite crear la aplicacion en android, buen creo que tienes conocimiento de él) el lio es este, mi profesor quiere que yo controle las secciones del puente desde varios celulares, por ejemplo un celular abre la sección 1 del puente y el otro celular abre la sección dos, te quería preguntar, ¿es eso posible? ¿el modulo HC – 05 (con pulsador en mi caso) puede recibir la conexión de varios celulares para controlar mi programa en arduino?, agradezco infinitamente tu ayuda y tus tutoriales.

    1. Yo estoy haciendo algunas pruebas. Con el modulo HC-06 solo un dispositivo a la vez se puede conectar. Si no necesitas que los celulares activen el puente a la vez solo te alcanzaria con que la aplicacion haga el comando y se desconecte para que otro celular pueda actuar, si necesitas que se haga en simultaneo evaluaria poner placa y modulo blu para cada seccion independiente. La aplicacion en este caso deberia activar las secciones del puente por separado.

      saludos

  2. Esta muy interesante tu pagina me ayudo mucho.No se si me podrías ayudar estoy realizando un proyecto con arduino uno + hc-06 y acelerometro ADXL345 con interface I2c para obtener los datos del acelerometro pero necesito enviar esos datos por el bluetooth hacia una aaplicaccion appAndroid la cual funciona (antes estaba usando el aceletometro ADXL335) ´pero cambie de acelerometro por tener mas prestaciones.Sabes como seria de hacer en el codigo para que se transmitan los datos.

    Gracia

      1. Hello Sir Jarrid! Your posts can wake the inner me! All of the words are spot on. Your blog really shook me. Thank You for sharing your thtghuos with us! 🙂

  3. muy util tu post pero tengo una pregunta.. tengo dos arduino uno con bluethoo ht c05 cada uno .. la comunicacion esta perfecta del maestro envío datos al esclavo pero no puedo hacer que del esclavo mande datos al maestro…
    Tienes algun ejemplo basico donde pueda apagar led en ambos sentidos…?

  4. ¿Cuando hara el tutorial «Comunicación Arduino a Arduino»?
    y si ya esta ¿Donde lo puedo encontrar?
    De ante mano gracias, muy buenos Tutoriales (Y)

      1. También me interesa. Estoy intentando comunicar dos arduinos mediante bluetooth. Sería genial que nos podrías ayudar. Encuentro muchas dificultades al pasar datos del esclavo al maestro. Parece que el maestro no localiza al esclavo correctamente. Espero publiques la segunda parte de esta entrada !! Gracias.

    1. Anette sier:Takk for at du setter ord pÃ¥ det Ã¥ ikke ha ord. Jeg har hvert der selv, og er der ennÃ¥, helt siden 15.26 22. juli da sÃ8;7er&#¸21tsn min ringte meg fra Karl Johan og fortalte hva som hadde skjedd..Det er godt Ã¥ lese og lytte til andres ord. Det hjelper, det løser ihvertfall opp sÃ¥ tÃ¥rene kan trille..

  5. sé que el hc-06 funciona solamente como esclavo, pero eso significa que no puede enviar datos?

    es decir, envio mis datos desde mi celular, pero en este caso puede el hc-06 enviar datos al celular?

    gracias :3

  6. Como podría hacer una APP que me detectara cuando alguein habré una puerta y el modulo bluetooth me mande una señal a mi APP en mi celular y este me avise que alguien entro ?

  7. Hola felicidades por el block muy bueno.
    Compartk a la pregunta de Ulises Garcia cuantos celulares se pueden conectar a la vez a un HC-06?

    Es para hacer un proyecto de una alarma.
    Si en casa hay 4 personal cada quien usara un celular.
    El cual activaran y desactivaran la alarma.

    Muchas gracias chicos edperi respuesta de parte de todos ustedes.
    Un saludo y bendiciones a sus vidas.

  8. Una pregunta, quisiera realizar el control de un carrito con mi celular usando el modulo hc-06 ¿como incluiria el bluetooth en mi programacion, ya saben con el high low de motores y eso?

    1. David, puedes mandar un carácter «a» desde el celular y con el Arduino configurar una condición que si el byte recibido es igual a «a» entonces activa «high» la salida del pin conectado al controlador de motores y asi.

  9. Muy interesante, viendo los vídeos de YouTube hice una App para encender y apagar leds, y quise aplicar en mi control de garaje. Pero, para ello necesito las instrucciones de que prenda el led e inmedatamante lo apague (tipo pulsador) y espere a la siguiente instrucción, no la repita sino cuando se lo haga a través del comando (celular).Gracias

  10. Hola, no veo la forma de hacer funcionar el código para múltiples salidas digitales en relación a diferentes valores numéricos enviados vía bluethoot, alguna idea?

  11. hola buen dia actualmente estoy trabajando con un modulo bluetooth hc-05 y un sensor de corriente ACS712 la finalidad de mi trabajo es hacer que el modulo bluetooth al momento de que el sensor de corriente deje de percibir vibraciones «es decir; que la corriente sea 0 o muy minuscula» este modulo le mande al dispositivo movil una alerta o notificacion. esto es para bombas de oxigeno para peceras o estanques. agradeceria muchisimo tu pronta respuesta.

  12. hola buen día, estoy haciendo un proyecto con un modulo bluetooth hc-05 y un sensor ultrasonico, intento hacer que las medidad realizadas por el sensor sean enviadas a una app, la cual ya tengo diseñada, soy un poco inexperto en el lenguaje de programacion y pues no he podido crear un codigo que envie los datos al celular… si pudiera darme una orientacion le agradeceria.. muchas gracias

    1. Alex, ese error es del Arduino, te recomiendo revisarlo en otra computadora o en otro puerto de tu computadora. Revisa que el puerto sea el correcto. Si lo revisas en varias maquinas y sale el mismo error es probable que tu Arduino este dañado. Saludos.

  13. Hola Héctor. Quiero usar el módulo para enviar la información de un sensor DHT11 desde la arduino al celular, sabes que aplicación Android puedo usar? Y, tienes el código para el IDE? Ya he logrado mandar la info del sensor a un display de caracteres y controlar un carro robot con el celular usando el HC06, pero no tengo la aplicación Android para recibir la info. Gracias y felicidades por el foro y la tienda.

    1. Hector, solo pon mas botones con más números, 2, 3, 4, etc… y en el código de Arduino evalúa la variable «state» con un «switch» en vez de con un if. Y de esa manera puedes obtener tantos comandos como quieras. Saludos.

  14. Hola , tengo un problema con mi módulo HC-05, ya lo configuré con los comandos AT y todo salió bien, pero ningún celular lo reconoce, que puedo hacer?

  15. Saludos, yo utilizo una app que me recomendó un amigo pero es la mas completa que he podido provar hasta el momento, y tiene muy buen diseño y funcionalidad, la pueden encontrar en Google Play como CAHV Control. esperfecta para este tipo de proyectos y muchos otros. Saludos

  16. Hola, muy bueno el tuto! Me sale todo correctamente y he visto que este módulo va con Bluetooth v2.0, menos eficiente que los BLE v4.0. Si me compro uno con la especificación BLE 4.0, ¿La programación implementada en este tutorial me serviría igual o tendría que hacer una implementación diferente? Gracias!

    1. Hola Miguel, si se puede, solo que quizas sea un poco lento. Tendrias que mandar las 3 matrices de una imagen, digamos si fuera de 100×100 pixeles, tendrias que mandar por cada matriz (RGB) 10,000×3 = 30,000 bytes por serial. A menos que la comprimas en algun formato para reducir el tamaño de la transmisión. Pero tendrías que meterte a aparender como funcionan las codificaciones por ejemplo JPG, y en el celular aceptar los datos binarios y convertirnos en una imagen. Lo he hecho con opencv pero no se bien como funcionaria eso en un celular. Si quieres mandar video a un celular lo mas fácil es usar otro celular como camara ip e instalar una app en tu celular de destino para visualizar la imagen y formar una red interna entre ambos celulares.

  17. Hice todo como enseñaste, pero abro la aplicación en el celular hago el apareamiento y cuando quiero conectar me pide que configure. Pongo OFF al switch verde y ON al rojo salgo de la configuración y toco el rojo y se pone verde y viceversa pero no pasa nada probe también con «1» y «0». Lo interesante es que me dice que está apareado pero no conectado y cuando activo los switch la luz del módulo deja de titilar.

  18. hola, he desarrollado todas las actividades con el hc 05 y 06, con arduino leonardo, y los diosdos led y sus respectivas resistencias, se a aplicado vaios codigos a arduino, se ha hecho el enlace del celular al modulo y quedan conectados, pero ninguno de los proyectos de youtube, y con ninguna de las apps, me ha dado resultado, ¿sera por falta de incluir alguna libreria o algo asi? mi gracias de ante mano

  19. buenas tardes alguien me puede decir como hacer de manera permanente la aplicacion descargada desde play store app (MIT AI2 Companion ) en el dispositivo movil, para no estar tranfiriendo los datos a cada rato?

  20. disculpen una preguntota ¿hay alguna forma de que un nuevo modulo se conecte a un teléfono de forma automático? osea si ya estoy usando un modulo pero se descompone y compro otro ¿si se puede conectar de forma automática o no? de ate mano gracias. ??

  21. tengo un proyecto hc06 en donde debe aparecer mi nombre en una pantalla led. la programacion con arduino no muestra error y ya programe el bluetooht asi como se muestran en las imagenes, pero al momento de enviar las ordenes desde el celular, no sucede nada, me puedes colaborar indicandome en donde puedo encotrar algo que me ayude para encontrar el error

  22. Disculpe amable caballero.
    Estamos haciendo un proyecto de innovación en el cuál tenemos que mandar la señal de una operación con arduino a una distancia mínima de 100 metros. Será posible que usted nos guiara o nos brindara una idea de como pudiéramos hacerlo.

  23. Hola me parecio muy muy bueno tu artículo y quisiera que me ayudaras o me ayudara cualquiera aquí indicandome de qué manera podría calcular la distancia a la que se encuentran, uno del otro, mis 2 dispositivos ya conectados…
    Muchisimas gracias de antemano.

    1. Myriam, hasta donde yo se los módulos HC-06 y 05 no tienen dicha capacidad. Tendrías que tener algún GPS o te recomiendo algún módulo con bluetooth 4 o 5 creo que esos ya tienen el parametro de detectar distancias entre dispositivos bluetooth.

  24. Hola, me gustaria que me ayudaras con un proyecto que estoy realizando.
    Estoy programando arduino UNO para que cuando el sensor de pulso ya conectado vea que las pulsaciones son inferiores a las establecidas mande una señal a un telefono movil como aviso. Compre HC-05 Bluetooth Module, como puedo configurar eso para que mande señales al telefono movil?

  25. hola, he leido tu tutorial y me parece muy interesante, estoy intentando hacer una botonera de un volante para simraring, y querria hacerla bluetooth, puedo usar dos modulos hc-06, uno como master, y el otro como slave?, con una placa arduino micro en cada uno, el master llevaria ademas toda las conexiones de los botones, con un sketch de una matriz, seria posible?, tendria que cambiar algo en el scketch del modulo bluetooth?, he leido en los comentarios que tendria que añadir un valor nuevo para cada boton de la botonera, o ya valdria con la programacion propia de la botonera?, gracias y enhorabuena por tu trabajo

  26. Buenas Noches mi nombre es Jose Morales y me gustaria si alguien me puede ayudar con lo siguiente:
    como puedo cambiar el pin de bluetooth arduino con app inventor…..y como se podria crear un bloque en app inventor donde guarde un usuario de bluetooth arduino y se conecte cuando este cerca.

    gracias

Deja una respuesta

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