Conectar dos Arduinos mediante Bluetooth

Hace mucho tiempo que quería escribir esta entrada pero no ha sido hasta ahora, con los dos moDuinos montados y con soporte para bluetooth, que no me he decidido a hacerlo, y eso que es algo realmente sencillo.

Primero tenemos que tener en cuenta que para comunicar dos Arduinos mediante bluetooth es necesario tener un modulo bluetooth esclavo y otro maestro, no sirven dos esclavos ni dos maestros, hace falta uno de cada ya que es el maestro quien inicia el emparejamiento con el primer esclavo que encuentre, después lo memoriza y se conecta siempre a él. Una vez realizado el emparejamiento podrán comunicarse bidireccionalmente mandando y recibiendo datos.

Debemos recordar que para que ambos Arduinos se conecten deberán tener configurada la misma contraseña y velocidad de transmisión, en las respectivas entradas superiores se explica como se configuran los módulos.

En el siguiente ejemplo, el moDuino1 envía por el puerto serial 2, al que esta conectado el modulo bluetooth, el caracter ‘1’ cada 5 segundos. Entonces el moDuino2 lee el caracter que interpreta como un true y enciende un led durante medio segundo.

24 comentarios en “Conectar dos Arduinos mediante Bluetooth”

  1. Buen dia, soy estudiante de Ingenieria de Software y me gustaria poder comunicar dos arduinos por medio de bluetooth. He estado investigando, pero aun me quedan algunas dudas.. Usaste el mismo modulo (HC-05 o HC-06) y despues los configuraste como maestro y esclavo? Que me recomiendas que use?
    Si me pudieras apoyar a aclarar esas dudas, te lo agradeceria bastante
    Saludos!

    1. Hola,
      Use dos módulos HC-06, uno esclavo y otro maestro (con pulsador de reseteo).
      El HC-06 puede funcionar de ambas formas pero el que tuve no supe usarlo, no parece funcionar con los comandos AT estándar.

      Tienes mas info sobre esos módulos en el blog, tanto como configurarlos, emparejarlos, pasar datos, etc.

      Saludos.

    2. Entonces como fue que los configuraste? o lo pediste al proveedor directamente con esa configuración?

    3. Hola puedes tener un Maestro-esclavo obligatoriamente (HC- 05), y el otro puede ser esclavo (HC – 06) u otro maestro-esclavo (HC-05) pero si tienes dos maestros debes configurarlo en modo AT para que uno de los dos HC-05 se haga maestro, puesto que por default todos viene con la configuracion se esclavo. Dos HC-05 modo maestro no se controlan toma en cuenta.
      Checa este video.
      https://www.youtube.com/watch?v=mM1hFdxax_U

  2. Buenas, me gustaría saber como hacer si yo por ejemplo quiero conectar el módulo maestro a un módulo esclavo ESPECÍFICO. La idea es si se puede tener un módulo maestro y VARIOS esclavos, identificándolos por una dirección MAC y conectándose a cada uno con alguna función.. Desde ya, muchas gracias.

    1. La teoría es que puedes tener varios esclavos y un maestro que indicándole la dirección MAC se conecte al esclavo correspondiente.

      Pero como digo eso es la teoría, el modulo maestro configurable que tuve (un HC06) nunca me funciono así que no puedo confirmartelo.

      Depende de lo que quieras hacer igual te sea mejor tener varios módulos RF que transmitan y reciban datos, todos los Arduinos leen los datos pero si no son para ellos los descartan.
      Seria la misma idea que una red con Hubs (no Switch).

      Saludos!

    1. Puedes enviar un ping entre módulos y comprobar el tiempo de inicio y de fin necesario desde que se envía la consulta hasta que se recibe una respuesta, si a 1m le cuesta X y a 7m le cuesta X+Y pues de ese modo puedes saber la distancia aproximada.
      Si lo quieres hacer bien puedes usar un modulo GPS en cada Arduino, aunque con comunicación bluetooth no tiene sentido pues el alcance máximo se encuentra en unos 10m, que debe ser el margen de error del GPS, con comunicaciones RF podría tener algo de sentido.

  3. Hola necesito su ayuda, me gustaria hacer esto pero que el arduino maestro midiera la temperatura, y si por ejemplo hace 20 grados o menos mandara un 1 al otro arduino y si es igual o mayor de 25 mande un 0 estaria bien que tubiera unos pulsadores para poder fijar la temperatura pero tampoco seria esencial ya que con el ide lo podria modificar

    y elarduino esclavo al recibir un 1 o el 0 encienda o apague un rele, es para tener la habitacion de mi hija siempre calentita,

    soy nuevo en esto de arduino y no tengo ni idea de programar de ahi que pida ayuda.

    pd: el arduino maestro llevaria un lcd 1602 para ver la temperatura.

    muchas gracias por su tiempo, un saludo

    1. Hola,

      No necesitas dos Arduinos ni bluetooth, usa un Arduino con un relé y un sensor de temperatura, todo colocado en la habitación, así te sera mas sencillo y la funcionalidad es la misma.

      Saludos.

  4. Hola
    Una consulta, para enviar la información de un sensor a traves de bluetooth a una placa arduino, puedo conectar el sensor directo al bluetooth o tendre que disponesr de otra placa arduino que realice la conecxion entre el sensor y el bluetooth.
    De ante mano gracias por la ayuda

    1. Hola,
      Si el sensor funciona por comunicación serial puede que funcione el conectarle un módulo bluetooth directamente, de lo contrario tendrás que usar un Arduino entre medio.

      Saludos.

  5. Hola, me gustaria hacer esta comunicacion de la siguiente manera, en el arduino con el bluetooth master tener pulsadores que al accionarlos me enciendan uno o mas led en el arduino con el bluetooth esclavo mas una alerta sonora, es factible hacerlo?

    1. Hola,
      Pues si están conectados entre sí entonces sera un problema de velocidad de transmisión de los datos, asegúrate que están configurados a los mismos baudios.
      Saludos.

    2. En ese caso puedes asegurarte de que tus sketchs funcionan contactando los Arduinos entre sí con cables. O conectando uno de los módulos bluetooth al PC con un modulo USB-UART… ves descartado cosas hasta que sepas por qué se conectan entre sí pero no hay comunicación.

  6. buenas noches, quisiera un poco de guia, quiero conectar un arduino y controlarlo por medio de comandos de voz a traves de bluetooth, pero sin usar un celular de por medio, es decir una interfaz autonoma de arduino a arduino o un microfono emisor y que el arduino reciba las ordenes emitidas por mi voz a traves del bluetooth, crees que sea posible?

  7. Hola buenas tardes, quisiera su ayuda, estoy utilizando 8 arduino uno y a cada uno le estoy usando millis y tiene una tira led ws2812n y necesito encenderlos todos al mismo tiempo pero de forma remota, yo pensaba en la coneccion serial pero van a estar todos en una habitación en distintos puntos, cree que me me sirva el modulo bluethoot?

    1. Hola Sebastian,

      Si han de poder comunicarse desde distintas habitaciones no puedes usar comunicación cableada, o de usarla tienes que utilizar una que permita que el cable sea muy largo y no pierda la señal como por ejemplo RS485, en mi blog tienes un articulo sobre ello y lo probé con 5 Arduinos si no recuerdo mal funcionado perfectamente.

      También puedes usar comunicación inalámbrica pero entonces tendrás que elegir una que te permita conectar varios nodos, generalmente con bluetooth conectas solo 2 módulos, además no deberá de comportarse como maestro y conectarse al esclavo, si quieres que un maestro se conecte a otro esclavo deberas de programarlo para que se conecte a uno u otro según te apetezca… y si quieres que todos se puedan comunicar con todos pues se complica todo a un mas.

      Creo que seria mejor que usaras los NRF24L01, si no recuerdo mal es bastante mas fácil la comunicación multi-nodo pero no recuerdo como la hacia creo que tengo ejemplos en el blog pero también te debería ser fácil encontrarlos en internet.

      Saludos,

Escriba aquí su comentario