Vous êtes sur la page 1sur 6

Módulo Bluetooth HC-06 con Arduino y Android

En este proyecto, se aprenderá a utilizar el Bluetooth HC-06 por medio de Arduino, se controlarán varios actuadores
desde una aplicación creada para Android, usando MIT App Inventor.

Los módulos Bluetooth pueden configurarse como Maestro o Esclavo. Esto quiere decir que un módulo configurado
como Maestro es el que inicia el emparejamiento o conexión, mientras que un módulo configurado como Esclavo espera
a que otros se conecten a él. Por ejemplo, cuando conectamos un teclado Bluetooth a nuestro PC, este último solicitará
un código de emparejamiento, entonces el PC hace las veces de Maestro y el teclado hace las veces de Esclavo. El
módulo HC-06 es de tipo Esclavo y esto no se puede cambiar.

En cuanto a las conexiones con Arduino, hay que tener en cuenta los pines al respaldo del módulo, tenemos:

 VCC: Que en algunos módulos se llama simplemente 5V. Es el pin de alimentación y va conectado al
pin 5V o 3.3V del Arduino
 GND: Es el ground o negativo del módulo. Va al GND del Arduino
 TX: Este es el pin de transmisión de datos. A través de este pin, el módulo transmite hacia el
Arduino los datos que le llegan desde un dispositivo conectado, como un móvil. Se conecta al pin RX
del Arduino
 RX: Este es el pin de recepción de datos. A través de este pin, el módulo recibe datos desde el Arduino
para enviarlos hacia un dispositivo conectado, como un móvil. Se conecta al pin TX del Arduino
Cuando realizamos la anterior conexión, el módulo se encenderá y un LED empezará a parpadear. Esto significa
que el módulo no está emparejado. El LED dejará de parpadear cuando se establezca una conexión entre el HC-
06 y otro dispositivo.

En cuanto a la programación, no es necesario utilizar ninguna librería. Sólo basa con poner en el setup() la
inicialización del puerto serial a una determinada velocidad de baudios:

 Serial.begin(9600);

Se suele utilizar una velocidad de 9600 baudios porque esa es la velocidad a la que se comunica el HC-06 por
defecto. En cuanto al setup() declaramos los pines como entradas o salidas con la función pinMode(),
dependiendo de lo que tengamos conectado al Arduino (por ejemplo, un LED, un pulsador, un servo...).

En este tutorial se realizan varios ejemplos para demostrar las posibilidades de controlar a distancia diversos
dispositivos en nuestros proyectos con Arduino. Todo se hará a través de aplicaciones desarrolladas para
Android utilizando la plataforma MIT App Inventor.

Componentes utilizados:

 Módulo Bluetooth HC-06


 Teléfono con Android
 Sensor de temperatura y humedad DHT22 o DHT11
 Pantalla LCD de 16x2 (1602A)
 Fotocelda
 LEDs
 Servomotor TowerPro SG90
 Resistencias de 220 ohms
 Resistencias de 10K ohms
 Protoboard o breadboard
 Cables
 Tarjeta Arduino

Importante: Antes de subir un código al Arduino, se debe desconectar el módulo Bluetooth de los pines TX y RX de la
tarjeta, ya que éstos son usados para la comunicación con el PC a la hora de subirle algún código. Luego de cargar el
código, se vuelve a conectar el módulo al Arduino.

A la hora de conectar el HC-06 con nuestro teléfono Android, pedirá una contraseña para establecer la conexión. Por
defecto es: 1234

El primer ejemplo consiste en controlar dos LEDs, los cuales se pueden encender y apagar. A través del Bluetooth llegan
datos de tipo char por parte del móvil. El Arduino decide qué acción ejecutar de acuerdo al dato que recibe, por
ejemplo, si recibe la letra 'A' entonces enciende un LED y si recibe la letra 'B' lo apaga.

El esquemático para este ejemplo es el siguiente:


El código en Arduino para este ejemplo se puede descargar desde aquí:
https://drive.google.com/open?id=0Bxr9tDhyoU1ZZFRrb0xabWlQc28

El archivo .apk de la aplicación para este ejemplo se puede descargar desde aquí:
https://drive.google.com/open?id=0Bxr9tDhyoU1ZV3pSYzk3UkhwZEk

El segundo ejemplo consiste en el uso de PWM, para variar el ángulo de un servomotor y el brillo de un LED. En este
caso en particular, utilizamos deslizadores para enviar datos variables los cuales modificarán el ángulo del servo y brillo
del LED.

El Arduino está recibiendo a través del Bluetooth dos datos: uno que le indica si se va a controlar el servo o LED y otro
con el ángulo o nivel de brillo, según sea el caso. Cuando el Arduino recibe el dato que le ordena controlar el servo o
LED, pasa a leer nuevamente el puerto serie para recibir los datos del ángulo o nivel de brillo, los cuales llegan como tipo
char y son convertidos en datos tipo int, que son los que pueden mandar via PWM.

En este post se explica con detalle el funcionamiento y uso de un servomotor con Arduino
En este post se explica con detalle cómo modificar el brillo de un LED con señales PWM

El esquemático para este ejemplo es el siguiente:


El código en Arduino para este ejemplo se puede descargar desde aquí:
https://drive.google.com/open?id=0Bxr9tDhyoU1ZSjNwZ2E1LUdxcmc

El archivo .apk de la aplicación para este ejemplo se puede descargar desde


aquí: https://drive.google.com/open?id=0Bxr9tDhyoU1ZWmdQN1FSMUR0Qmc

El tercer ejemplo consiste en enviar texto para que pueda aparecer en una pantalla LCD de 16x2 conectada al Arduino.
En este post se explica con detalle el funcionamiento y uso de esta pantalla.

El tercer ejemplo consiste en enviar texto para que pueda aparecer en una pantalla LCD de 16x2 conectada al Arduino.
En este post se explica con detalle el funcionamiento y uso de esta pantalla.

El Arduino está recibiendo a través del Bluetooth dos datos: uno que le indica que se va a controlar la pantalla LCD y otro
con el mensaje que se desea mostrar en ella. Cuando el Arduino recibe el dato que le ordena controlar la pantalla, pasa
a leer nuevamente el puerto serie para recibir los datos correspondientes al mensaje, los cuales llegan como tipo char
y son convertidos en una cadena tipo String, para finalmente mostrarlos en la pantalla.

El esquemático para este ejemplo es el siguiente:


El código en Arduino para este ejemplo se puede descargar desde aquí:
https://drive.google.com/open?id=0Bxr9tDhyoU1ZRjNmanN2d3Qwb2M

El archivo .apk de la aplicación para este ejemplo se puede descargar desde


aquí: https://drive.google.com/open?id=0Bxr9tDhyoU1ZUFVHTi1kVzhYYU0

El cuarto y último ejemplo consiste en la recepción de datos por parte del Arduino. Se van a recibir datos de un sensor
de temperatura y humedad DTH22 (se puede usar también un DHT11) y un sensor de luz (fotocelda) para mostrarlos en
la pantalla del móvil. A través del Bluetooth, el Arduino envía los datos leídos de: temperatura, humedad y luz.
Posteriormente la aplicación los recibe y los muestra en la pantalla del móvil.

En este post se explica con detalle el funcionamiento y uso de los sensores DHT22 y DHT11
En este post se explica con detalle el funcionamiento y uso de la fotocelda con Arduino

El esquemático para este ejemplo es el siguiente:


El código en Arduino para este ejemplo se puede descargar desde aquí:
https://drive.google.com/open?id=0Bxr9tDhyoU1ZbFFYcl9vaFdFWDQ

El archivo .apk de la aplicación para este ejemplo se puede descargar desde aquí:
https://drive.google.com/open?id=0Bxr9tDhyoU1ZZW13NGhVOWcxWms

Vous aimerez peut-être aussi