Módulo Bluetooth HC-05 (ZS-040)- Características Y Cómo Utilizarlo

Con el paso del tiempo se han lanzado muchos más módulos utilizando las placas de conexión zs-040. Algunos de los más nuevos incluyen módulos con una versión de firmware 3.0-20170601 que funcionan de una manera ligeramente diferente.

Pero es esta ocasión, en este tutorial, te enseñare en detalle que es un módulo Bluetooth HC-05 (ZS-040) y todo lo que tienes que saber para utilizarlo de manera correcta.

Índice

    Que es un Módulo Bluetooth HC-05 (ZS-040) y sus principales características

    Que es un Módulo Bluetooth HC-05 (ZS-040)

    El HC-05 (ZS-040) es un módulo puente de serie a Bluetooth que permite comunicaciones inalámbricas entre dos microcontroladores o entre un microcontrolador y un teléfono Android, una computadora portátil o una computadora de escritorio con capacidad Bluetooth. Por lo tanto este puede actuar como un dispositivo esclavo y maestro.

    Por otro lado, si estás familiarizado con las comunicaciones en serie con “Arduino” u otra MCU, usar Bluetooth para establecer un enlace inalámbrico es muy similar. Bluetooth está diseñado para comunicaciones punto a punto inalámbrico de corto alcance. El alcance máximo suele ser de alrededor de 30 pies y puede ser menor dependiendo de las obstrucciones.

    A continuación, veras algunas características del Módulo Bluetooth HC-05 (ZS-040)

    1.      Energía

    El módulo funciona a (3,3 V) internamente, pero el módulo contiene un regulador de 3,3 V, por lo que el módulo debe alimentarse con (3,6 – 6 V) en su pin Vcc. Debido a que el módulo es de 3,3 V, la línea “TX del uC” que va al pin RX del módulo debe tener un cambiador de nivel instalado para bajar el nivel lógico a niveles de (3,3 V).

    2.      Modo de comunicación

    El módulo pasa por defecto al modo de comunicación dónde está listo para emparejarse con otro dispositivo Bluetooth y más tarde cuando se haya emparejado. Las comunicaciones en serie en este modo tienen un valor predeterminado de “9600 baudios”, pero se pueden cambiar si se desea.

    3.      Modo AT

    El módulo también se puede poner en modo de operación AT donde responde a comandos de bajo nivel.

    Para ingresar al modo AT, presiona el botón en el módulo mientras se enciende y luego suelte el botón. El LED parpadeará lentamente para indicar que está en modo AT. El modo AT te permite enviar comandos AT de bajo nivel al dispositivo.

    Por otro lado, ten en cuenta que el módulo está en un modo AT limitado y algunos comandos AT no funcionarán a menos que se presione el botón mientras se da el comando.

    Si el modo de operación AT será la forma en que siempre se usará el módulo, el módulo se puede colocar en modo AT completo conectando el pin “EN” a 3.3V. Esto es lo mismo que presionar constantemente el botón.

    Cuando está en modo AT, las comunicaciones en serie tienen una velocidad de transmisión predeterminada de (38400 baudios), pero se puede cambiar si se desea. Más adelante, verás como utilizar este modo en el Módulo Bluetooth HC-05 (ZS-040) más detalladamente.

    4.      Indicador LED

    Hay un LED en el módulo que es bastante útil para comprender qué está haciendo el módulo. Por ejemplo, cuando el módulo se enciende por primera vez, aparece en el modo de emparejamiento de Bluetooth.

    El LED de la placa parpadea rápidamente a unos “2 Hz” para indicar que está en modo de emparejamiento. Si el módulo está emparejado con un dispositivo, el parpadeo del LED cambia a 2 parpadeos rápidos seguidos de una pausa y luego se repite. Si el módulo se pone en modo AT, el LED parpadeará a un ritmo lento y constante.

    5.      Conexiones

    • Conexión de placa: 1 x 6 cabecera
    • Estado: el pin de estado es “BAJO” cuando no está emparejado y “ALTO” cuando está emparejado.
    • RXD: los datos de recepción se conectan a TX en MCU. Use un cambiador de nivel si usa una MCU de 5V.
    • TXD: la transmisión de datos se conecta a RX en MCU.
    • TIERRA: Tierra (GND).
    • VCC: entrada de alimentación. Debe estar entre 3,6 y 6 V.
    • ES: Habilitar el modo AT. Este pin se puede vincular a 3,3 V si el módulo siempre se utilizará en modo AT.

    6.      Cambiador de nivel

    Para una verificación básica rápida, puedes aplicar “5 V” y tierra al módulo Bluetooth HC-05 (ZS-040). El LED debe parpadear a una velocidad rápida. Abra el menú de Bluetooth en un teléfono celular y busque dispositivos.

    Debería encontrar el HC-05. Ingrese la contraseña “1234” y debería emparejarse con el dispositivo. El “LED” del HC-5 comenzará a parpadear a un ritmo más lento para mostrar que se ha emparejado correctamente.

    Cómo emparejar un Arduino a una PC con Windows 10

    Cómo emparejar un Arduino a una PC con Windows 10

    En el siguiente ejemplo, te mostraré cómo emparejar un Arduino a una computadora con Windows 10 y comunicarse entre los dos mediante módulo Bluetooth HC-05 (ZS-040). El uso de un teléfono Android funciona esencialmente igual.

    Para esto, utiliza “Softserial” para permitir que Arduino se comunique con la ventana “Serial Monitor” a través de USB mientras también se comunica con el Módulo Bluetooth HC-05 (ZS-040)  usando el puerto serial suave.

    Nota: si estás utilizando un “Mega” u otro MCU con más de un puerto serie de hardware, puedes usar un segundo puerto serie de hardware en lugar de usar Softserial.

    Si usas una MCU de 5 V, utiliza un convertidor de nivel lógico o una red divisora ​​de resistencia simple como se muestra aquí para cambiar el nivel lógico del pin RX en el HC-05 para compatibilidad con el HC-05 de 3.3 V.

    Además, necesitará un programa de terminal en la PC o teléfono que pueda comunicarse a través de Bluetooth. Puedes utilizar “Bluetooth Serial Terminal” en la PC y “Blueterm” en el teléfono Android, pero existen muchos otros programas gratuitos para elegir. Ya con esto, realiza los pasos a continuación.

    Paso 1. Conecta el HC-05 a la MCU. Los pines “STATE” y “EN” se pueden dejar desconectados.

    • UCM: Módulo HC-05
    • 5V: Vcc.
    • TIERRA: Tierra (GNB).
    • D10: Tx.
    • D11: Rx, usa un cambiador de nivel si usa MCU de 5V.

    Paso 2. Carga el siguiente software en el Arduino. Tenga en cuenta que los pines “D10 y D11” se pueden reasignar a otros dos pines digitales si lo deseas cambiando “SoftSerial(10,11)”. Comando para reflejar los diferentes pines que se utilizan. El pin RX utilizado necesita admitir interrupciones para ser compatible con la biblioteca SoftSerial.

    Programa de prueba del módulo Bluetooth HC-05 (ZS-040)

    Programa de prueba del módulo Bluetooth HC-05 (ZS-040)

    A continuación verás la serie de comandos que constituyen el programa de pruebas del módulo.


    -/* Programa sencillo para ejercitar el módulo Bluetooth HC-05 zs-40 emparejando con una PC

     Utiliza serie de hardware para hablar con la computadora host y serie de software para comunicarse con el módulo Bluetooth

     conexiones

      -Arduino 5V al módulo VCC

      -Arduino GND al módulo GND

      -Arduino D9 al módulo RX utilizando un divisor de tensión

      -Arduino D8 al módulo TX

    Cuando se ingresa un comando en el monitor serial de la computadora,

      el Arduino lo transmitirá al módulo bluetooth y mostrará el resultado en

      la ventana del terminal Bluetooth y viceversa.

    Utiliza la biblioteca Softserial.h

    */

    #include  < SoftwareSerial . h >

    SoftwareSerial  SoftSerial ( 10 ,  11 ) ;  // RX | pines tx. Se puede reasignar a otros pines si es necesario

     const  largo  BAUDIOS  =  9600 ;     // Esta es la tasa de baudios de comunicación predeterminada del módulo HC-05

    char  c  =  ' ' ;                   // Carácter que se transmite

    booleano  NL  =  verdadero ;              // Nueva línea. True indica que deberíamos mostrar un '>'

    //======================================= ========================================

    // Inicialización

    //===== ================================================== ========================

    configuración vacía  ( ) { SoftSerial . comenzar ( BAUDIOS ) ;

          // Inicializar objeto serial suave

        Serial . comenzar ( 9600 ) ;           // Inicializar serie de hardware

        Serie . println ( "Prueba iniciada: ingrese algo para enviar a la computadora o teléfono Android" ) ;

        Serie suave . println ( "Prueba iniciada: ingrese algo para enviar a la ventana del monitor en serie" ) ;

    }

    //=============================================== ================================

    // Principal

    //============= ================================================== ================

    bucle vacío  ( ) {

         // Leer desde el módulo Bluetooth y enviar al Arduino Serial Monitor

        si  ( SoftSerial . disponible ( ) )

        {

            c  =  SoftSerial . leer ( ) ;

            de serie escribir ( c ) ; } // Leer desde el Monitor Serial y enviar al módulo Bluetooth if ( Serial . available ( ) ) { c = Serial . leer ( ) ; Serie suave .

            escribir ( c ) ;

            // Hacer eco de la entrada del usuario en la ventana principal. El carácter ">" indica el texto introducido por el usuario.

            si  ( NL )  {  Serie . imprimir ( ">" ) ;   NL  =  falso ;  }

            Serie . escribir ( c ) ;

            si  ( c == 10 )  NL  =  verdadero ;     // char '10' es el carácter de nueva línea

        }

    }


     

    Por otro lado, el LED HC-05 debe estar en modo de parpadeo rápido, lo que indica que está esperando para ser emparejado.

    Empareja el módulo Bluetooth HC-05 (ZS-040) con el dispositivo con el que se está comunicando. El módulo aparecerá en la lista de Bluetooth como “HC-05”. El PIN o contraseña para conectarse es “1234”.

    Emparejar el dispositivo en Windows 10

    Emparejar el dispositivo en Windows 10

    Para emparejar el dispositivo en Windows 10, realiza los siguientes pasos:

    • Paso 1. Abre la ventana “Configuración/Dispositivos/Bluetooth y otros dispositivos”.
    • Paso 2. Haz clic en “+ Agregar Bluetooth u otro dispositivo” en la parte superior de la ventana.
    • Paso 3. Esto abre la ventana “Agregar un dispositivo”. Selecciona “Bluetooth”.

    La PC buscará dispositivos Bluetooth para agregar. Si no ves el módulo Bluetooth HC-05 (ZS-040), desconecta y vuelve a conectar la alimentación de 5 V al HC-05 para asegurarte de que esté en modo de emparejamiento y debería aparecer en la lista.

    • Paso 4. Selecciona el HC-05 y se abrirá una ventana para ingresar un “PIN” para este. Ingresa (como ya te mencione) “1234” y selecciona “Conectar”.

    Después de un par de segundos, la ventana debería mostrar “Emparejado” y estará listo para comenzar. Una vez emparejado con éxito, el LED del módulo Bluetooth HC-05 (ZS-040) cambia a un modo de doble parpadeo o pausa.

    Dispositivo de emparejamiento HC-05 en Windows 10

    Dispositivo de emparejamiento HC-05 en Windows 10

    En el terminal serie Bluetooth o cualquier programa que estés utilizando en la PC o teléfono Android, asegúrate de seleccionar “Retorno de carro y alimentación de línea” para la terminación de línea.

    Si el HC-05 no aparece en la lista de dispositivos disponibles, selecciona “Actualizar lista”. Selecciona el HC-05 y seleccione “Conectar”.

    En el Arduino, abre la ventana del monitor serie. Asegúrate de que también tengas seleccionados “NL y CR” también, que la velocidad en baudios esté establecida en “9600”.

    Ahora puedes escribir comandos en la terminal serie Bluetooth y aparecerán en la ventana del monitor serie Arduino o viceversa. Asegúrate de escribir los comandos en las ventanas superiores. Los comandos que se envían se repiten con un “>” delante de ellos. Los comandos recibidos se imprimen sin el “>” para que pueda diferenciarlos fácilmente.

    Si logras esto con éxito, se habrá comunicado con éxito entre un Arduino y una computadora o teléfono mediante Bluetooth.

    Modo de comando AT

    Modo de comando AT

    El modo de comando AT te permite interrogar al módulo Bluetooth y cambiar algunas de las configuraciones; cosas como el nombre, la velocidad en baudios, si funciona o no en modo esclavo o en modo maestro.

    Cuando se utiliza como dispositivo maestro, los comandos AT te permiten conectarse a otros dispositivos esclavos Bluetooth. Por lo tanto, el firmware HC/Wavesen 2.0-20100601 tiene diferentes modos AT:

    • Un modo completo a 38400 baudios.
    • Un modo parcial a 38400 baudios.
    • Un modo parcial a la velocidad de transmisión configurable por el usuario.
    • Un modo mini parcial (funcionan incluso menos comandos) a la velocidad en baudios configurable por el usuario.

    La mayoría de los comandos funcionan en cualquier modo de comando AT, pero hay algunos comandos que solo funcionan cuando “pin34” está ALTO. El modo parcial/mini tiende a ser un error en el firmware. Por eso, solo te recomiendo usar el modo de comando AT de 38400 baudios completos.

    Para activar el modo AT en el módulo Bluetooth HC-05 (ZS-040), el pin 34 debe estar en ALTO al momento del encendido. El interruptor de botón pequeño conecta el dicho pin a “+3.3v” para que podamos conectar y encenderlo, o mantener cerrado el interruptor de botón al iniciar el módulo.

    Ten en cuenta, que para el modo de comando AT completo, el pin 34 debe estar en ALTO todo el tiempo y no podemos hacer esto con solo el interruptor de botón. Cuando está en el modo de comando AT con el pin 34 no ALTO (BAJO o flotante), algunos comandos no funcionarán.

    Por lo tanto, cuando uses el interruptor de botón, debes presionarlo y mantenerlo cerrado cuando envíe algunos comandos.

    Ingresa al modo de comando AT usando una velocidad de transmisión de 38400

    A continuación verás el uso del interruptor de botón para ingresar al modo de comando AT usando una velocidad de transmisión de 38400.

    • Paso 1. Desconecta la alimentación del módulo.
    • Paso 2. Mantén cerrado el interruptor de botón pequeño mientras enciende el módulo.
    • Paso 3. Después, mantén presionado el interruptor de botón.
    • Paso 4. Mientras mantienes cerrado el interruptor de botón, encienda.
    • Paso 5. Cuando veas que se enciende el LED, puedes soltar el interruptor de botón.

    Ingresa al modo AT con la tasa de baudios del modo AT incorporada de 38400. El usuario no puede cambiar la tasa de baudios. Este método permite que el módulo ingrese al modo AT al inicio, pero no mantiene el pin 34 ALTO y algunos comandos no funcionarán.

    Alternativamente, si está utilizando el modo de comando AT durante un período de tiempo prolongado, realiza una conexión directa entre el pin 34 y +3.3v. Suelde un cable al pin o usa un clip.

    • Paso 1. Desconecta la alimentación del módulo.
    • Paso 2. Realiza una conexión entre el pin 34 y +3,3v directa.
    • Paso 3. Vuelve a aplicar la alimentación.

    Ingresa al modo AT con la tasa de baudios del modo AT incorporada de 38400. El usuario no puede cambiar la tasa de baudios.

    También puede interesarte: Solución Para Bluetooth No Aparece En El Windows 10

    Conexión del HC-05 al Arduino

    Hay un par de formas comunes de conectar el módulo Bluetooth HC-05 (ZS-040) a una computadora; a través de un adaptador UART serie o con un Arduino. Aquí estoy usando un Arduino.

    Construya el siguiente circuito y cargue el siguiente boceto.

    Conexión del HC-05 al Arduino 1

    Conexión del HC-05 al Arduino

    HC-05 Modo AT - breadBoard_1200_1

    – Arduino 5V a BT VCC

    – Arduino GND a BT GND

    – Arduino D8 a BT TX

    – Arduino D9 a BT RX a través de un divisor de voltaje (reducir 5v a 3.3V)

    – Opcional. Conexión desde el pin 34 pero aún no aplica 3.3v.

    El boceto es una serie básica de entrada y salida que muestra un “>” al comienzo de una línea para resaltar el comando ingresado por el usuario.

    Usa el software serial en los pines 2 y 3 de Arduino para hablar con el HC-05. Esto significa que todavía puedes usar el serial de hardware para hablar con el monitor serial en una computadora central. A continuación verás un ejemplo de los comandos realizados.


     

    // Sketc: basicSerialWithNL_001

    //

    // Utiliza el serial de hardware para comunicarse con la computadora host y el serial de software

    // para comunicarse con el módulo Bluetooth

    // Diseñado para dispositivos Bluetooth que requieren caracteres de final de línea "\r\n"

    //

    // Pines

    // Arduino 5V a BT VCC

    // Arduino GND a BT GND

    // Arduino D9 a BT RX a través de un divisor de voltaje

    // Arduino D8 BT TX (sin necesidad de divisor de voltaje)

    //

    // Cuando se ingresa un comando en el monitor serial en la computadora

    // el Arduino lo transmitirá al módulo bluetooth y mostrará el resultado.

    //

    #include <SoftwareSerial.h>

    SoftwareSerial BTserial ( 8 ,  9 ) ;  // RX | Texas

     const  long baudRate =  38400 ;

    carácter c = ' ' ;

    booleano NL =  verdadero ;

     configuración vacía ( )

    {

        Serial. comenzar ( 9600 ) ;

        De serie. imprimir ( "Boceto: " ) ;    De serie. println ( __ARCHIVO__ ) ;

        De serie. imprimir ( "Subido: " ) ;    De serie. println ( __FECHA__ ) ;

        De serie. imprimirln ( "" ) ;

        Serie BT. comenzar ( velocidad en baudios ) ;

        De serie. print ( "BTserial comenzó en " ) ; De serie. println ( tasa de baudios ) ;

        De serie. imprimirln ( "" ) ;

    }

    bucle vacío ( )

    {

        // Leer desde el módulo Bluetooth y enviar al Arduino Serial Monitor

        si  ( BTserial. disponible ( ) )

        {

            c = BTserial. leer ( ) ;

            De serie. escribir ( c ) ;

        }

        // Leer desde el Serial Monitor y enviar al módulo Bluetooth

        if  ( Serial. available ( ) )

        {

            c = Serial. leer ( ) ;

            Serie BT. escribir ( c ) ;

            // Hacer eco de la entrada del usuario en la ventana principal. El carácter ">" indica el texto introducido por el usuario.

            si  ( NL )  { Serie. imprimir ( ">" ) ;   NL =  falso ;  }

            Serie. escribir ( c ) ;

            si  ( c == 10 )  { NL =  verdadero ;  }

        }

    }


     

    Por otro lado, conecta el Arduino a la computadora host. El LED del HC-05 debería parpadear rápidamente unas 5 veces por segundo. Si usas la conexión en el pin 34, quita la energía, conecta el pin 34 a +3.3v y vuelve a aplicar energía al módulo.

    Conexión del HC-05 al Arduino

    Si usas el interruptor de botón, desconecta la energía, mantén presionado el interruptor de botón, vuelva a aplicar energía (mientras mantiene presionado el interruptor de botón). Cuando vea que se enciende el LED, suelte el interruptor de botón.

    El LED debe parpadear lentamente para encenderse o apagarse una vez cada dos segundos. Esto indica el modo AT.

    Comandos AT

    El módulo Bluetooth HC-05 (ZS-040) espera que los comandos incluyan un retorno de carro y caracteres de nueva línea (\r\n). Puedes agregarlos automáticamente en el monitor en serie seleccionando “Both NL & CR” en la parte inferior de la ventana.

    También, puedes ingresarlos manualmente en el formulario “AT\r\n”. Si olvidas agregar caracteres de retorno de carro y de nueva línea, el HC-05 no responderá.

    Comandos de ejemplo

    • AT: solicitud de retroalimentación simple. Volverá "OK".
    • AT+VERSION: devuelve la versión del firmware. “+VERSIÓN: 2.0-20100601 OK”.
    • AT+ESTADO: devuelve el estado actual del módulo “+ESTADO: INICIALIZADO OK”.
    • AT+ROLE: los valores posibles son ; 0 – Esclavo, 1 – Maestro, 2 – Bucle esclavo Devuelve “+ROLE:0 OK”.
    • Para cambiar al modo maestro, ingresa “AT+ROLE=1”, devuelve “OK”
    • AT+UART: devuelve la velocidad en baudios utilizada por el HC-05 en el modo de comunicación. El valor predeterminado para los módulos que tengo es 9600. Devuelve: “+UART:9600,0,0 OK”.
    • Para cambiar la tasa de baudios a 38400 – AT+UART=38400,0,0 Devuelve “OK”.

    Por otro lado, Windows no admite velocidades de transmisión superiores a “115200”. Si estableces accidentalmente una velocidad de transmisión superior a “115200”, no podrás utilizar el modo de comunicación.

    Aún deberías poder ingresar al modo AT en 38400 usando los métodos anteriores y cambiar la velocidad de transmisión del modo de comunicación a algo que Windows pueda manejar.

    • AT+NAME.

    Nota: consultando el nombre de los módulos con AT+NAME? solo funciona en el modo At “completo”. Si no puedes obtener este comando para trabajar necesitas traer pin34 ALTO. Cambiar el nombre de los módulos con “AT+NAME=newname” funciona en modo AT “completo” y modo AT “mini”.

    Lo que debería obtener es:

    • AT+NOMBRE?: devuelve “+NOMBRE:HC-05 OK”

    (o algo similar dependiendo de cómo se llame su módulo)

    Otros comandos que requieren que el pin 34 sea ALTO son “AT+INQ y AT+RNAME”. Esta no es una lista completa.

    TE PUEDE INTERESAR

    Deja un comentario

    Tu dirección de correo electrónico no será publicada.

    Go up