Tutorial Arduino Bluetooth HC-05, HC-06 con Android usando App Inventor 2

En este tutorial implementaremos la comunicación entre una placa Arduino UNO y un Smartphone utilizando Android para realizar dos sencillas cosas:

  • Primero: vamos a enviar comandos (datos) desde el Smartphone hacia Arduino para que pueda encender tres leds.
  • Segundo: leeremos del puerto analógico A0 una señal proveniente de un potenciómetro y desplegaremos su valor numérico en un cuadro de texto.

Definidas las dos tareas principales, no hay más que empezar listando los requerimientos de hardware y software, y para eso primeramente listamos los materiales necesarios:

  • Placa Arduino Uno
  • Módulo Bluetooth HC-05 o HC-06, si usas el módulo HC-05 debe estar configurado como esclavo y es el modo normal que traen de fábrica.
  • Cables de conexión de preferencia Dupont.
  • 3 Leds de diferente color para diferenciarlos fácilmente.
  • 3 Resistencia de 330 ohm.
  • Potenciómetro de 10k ohm.
  • Smartphone con Android.
  • Protoboard.
  • Herramientas como pinzas de corte, de punta etc.

Conexiones físicas en la placa Arduino

Primeramente debemos visualizar al módulo de comunicación inalámbrica HC-05, como una extensión del puerto serie, como si en vez de un cable físico que sirve como medio de conexión, utilizáramos un “cable inalámbrico” a esto se le llama transparencia en el uso del módulo Bluetooth.

En la realidad esto quiere decir que todo funciona igualmente y el puerto de comunicación que programamos el envío y recepción de datos es el puerto serial que trae Arduino y el módulo Bluetooth se conecta a las terminales Tx y Rx de la placa Arduino, tal como se muestra en la Figura 1.

Diagrama de conexión entre el potenciómetro hacia la entrada analógica cero del Arduino UNO, tres leds conectados a las terminales digitales 2, 3, 4 y el módulo HC-05 al puerto Rx y Tx.
Figura 1 – Conexión eléctrica Arduino UNO con HC-05

También conectamos los leds de color rojo, verde y azul a las terminales 2,3 y 4 respectivamente.

Como debemos leer una señal analógica de nuestro potenciómetro, conectamos la terminal A0 de Arduino a la terminal de en medio de nuestro potenciómetro y las terminales de los extremos del potenciómetro se alimentan con +Vcc y GND (no importa el orden).

Nota* Antes de conectar el modulo Bluetooth es recomendable comprobar su funcionamiento simplemente alimentándolo y creando una conexión con tu teléfono, hecho esto lo conectamos y debemos tener cuidado en colocar los cables de datos (Tx, Rx) al arduino y jamás a Vcc o GND, porque quemaremos nuestro chip.

Algoritmo de programación en Arduino

Nuestro programa debe de configurar las terminales de los leds en modo escritura y la velocidad en el puerto serie, comúnmente es a 9600 bps.

Cuando el puerto serie reciba un dato, este debe lee el buffer de entrada y si encuentra un carácter que haya sido asignado para prender/apagar un led, entonces debe realizar la acción y regresar un mensaje indicando que se realizó la acción.

Así mismo lee la entrada analógica A0 y transmite el dato por el puerto serie hacia el módulo Bluetooth con un carácter inicial que distingue entre este dato y un mensaje cualquiera, en nuestro caso utilizamos el símbolo de # (gato).

Es decir, cuando Android reciba una cadena de caracteres que empiece con # sabrá que es un dato de nuestro sensor (el valor de nuestro potenciómetro) que debe de mostrar en la gráfica.

En resumen, el algoritmo lo podemos visualizar en un diagrama de flujo como el siguiente:

Figura 2 – Diagrama de flujo del programa de control

En este diagrama, para realizar ciertas acciones debemos saber el estado de cada uno de los leds, por lo que vamos agregar variables de tipo booleano que no los indiquen.

Código del programa para Arduino

A continuación te dejo la liga para descargar el código del programa en Arduino.

Descargar archivo arduino Descargar archivo arduino

El archivo anterior contiene el código siguiente:

Pruebas preliminares de la tarjeta Arduino

Compilado el código y cargado a nuestra placa Arduino, verificaremos su funcionamiento usando el puerto serie de la computadora, por lo que abrimos nuestro monitor serial de Arduino verificando la velocidad de conexión a 9600 y el número de puerto correcto.

Se muestra la terminal serie de arduino para comprobar que esta enviando datos numéricos con el prefijo #
Figura 3 – Prueba preliminar de funcionamiento del código en Arduino

Debemos de ver los datos numéricos con el carácter # al inicio, y esos son los que envía el Arduino UNO desde la entrada analógica A0.

Ahora debemos comprobar el funcionamiento de los led, escribiendo el comando adecuado, es decir si quiero prender/apagar el led rojo escribo una r y doy enter.

Figura 4 – Enviando la letra r, en esta caso es un comando

Y debe enviarme el mensaje que cambio el Led Rojo.

Figura 5 – Respuesta del programa ante el comando ‘r’

Si envió o escribo varias veces la letra a, consecutivamente cambia el estado del Led Azul

Figura 6 – Envío de varios comandos para controlar el LED azul

Y debemos observar en nuestra placa que efectivamente, se prenden y apagan los leds de acuerdo a la letra de comando que le asignamos, si enviamos cualquier otra letra, nos muestra el mensaje de comando no reconocido.

Figura 7 – Comprando el funcionamiento del led Rojo en el protoboard

Finalizamos las pruebas en esta etapa y aseguramos el funcionamiento de nuestro algoritmo en la placa de Arduino.

Pruebas preliminares con el módulo Bluetooth

Ahora verificamos el buen funcionamiento de nuestro módulo Bluetooth, esto es, con nuestro teléfono con Android vamos a instalar una aplicación que se comunique con el puerto serie, en la playstore de google buscamos la aplicación “S2 Terminal for Bluetooth Free” que tiene el icono siguiente:

Responder a Anónimo Cancelar la respuesta

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