Skip to main content

4.1 Arduino y móvil

Existen módulos adicionales que se pueden conectar a la placa básica Arduino que pueden dotar de una gran funcionalidad a los proyectos que queramos realizar. En esta práctica utilizaremos un módulo Bluetooth que nos permite establecer una comunicación inalámbrica con el entorno, el dispositivo elegido más fácil va a ser un móvil.

Conocimiento previo

  • Programación básica Arduino
  • Uso de librerías externas y comunicación serie (para configuración de parámetros).

Objetivos

  • Conectar el módulo Bluetooth a Arduino.
  • Realizar programas para comunicar Arduino con el exterior vía Bluetooth.
  • Configurar los parámetros del módulo de Bluetooth (avanzado).

Lista de materiales:

  • Arduino UNO.
  • Módulo Bluetooth.
  • Móvil con Android

via GIPHY

Teoría Bluetooth

ONDAS:

Una onda es una señal que se propaga por un medio. Por ejemplo el sonido, que es una onda mecánica que viaja usando el aire o cualquier otro material. Pero en el caso de las señales eléctricas pueden ser enviadas por el cable o a través del vacío (no necesitan un medio para transmitirse).

Dependen de 3 parámetros principalmente:

Amplitud: altura máxima de la onda. Hablando de sonido representaría el volumen. Si nos referimos a una onda eléctrica estaríamos representando normalmente el voltaje.

Longitud de onda λ: distancia entre el primer y último punto de un ciclo de la onda (que normalmente se repite en el tiempo).

Frecuencia f : Número de veces que la onda repite su ciclo en 1 segundo (se mide en hertzios).

Periodo T es simplemente es la inversa de la frecuencia. T=1/f

La relación entre ellas es muy fácil pues las ondas electromagnéticas viajan a la velocidad de la luz c y si velocidad es espacio/tiempo luego c = λ/T luego c= λ*f

Dentro del espectro electromágnético encontramos diferentes tipos de señales dependiendo de las características de su onda.

TRANSMISIÓN INALÁMBRICA: BLUETOOTH.

  • Hoy en día, este grupo está formado por miles de empresas y se utiliza no sólo para teléfonos sino para cientos de dispositivos.
  • Su curioso nombre viene de un antiguo rey Noruego y Danés, y su símbolo, de las antiguas ruinas que representan ese mismo nombre. 
  • Bluetooth es una red inalámbrica de corto alcance pensada para conectar pares de dispositivos y crear una pequeña red punto a punto, (sólo 2 dispositivos).
  • Utiliza una parte del espectro electromagnético llamado “Banda ISM”, reservado para fines no comerciales de la industria, área científica y medicina. Dentro de esta banda también se encuentran todas las redes WIFI que usamos a diario. En concreto funcionan a 2,4GHz.

Hay 3 clases de bluetooth que nos indican la máxima potencia a la que emiten y por tanto la distancia máxima que podrán alcanzar:

También es muy importante la velocidad a la que pueden enviarse los datos con este protocolo:

Recuerda que:

  • Mbps : Mega Bits por segundo.
  • MBps: Mega Bytes por segundo.

¿Te atreves a calcularlo .... ?

¿Cuantos ciclos por segundo tendrán las ondas que están en la Banda ISM?

¿Cuál es el periodo de esas ondas?

Solución


a)2.4G

b) λ=c/f= 12.5cm

¿Te atreves a calcularlo...?

¿A qué distancia y cuanto tiempo tardarían en enviarse los siguientes archivos por Bluetooth?

  1. Un vídeo de 7Mb usando versión 2 clase 2
  2. Una imagen de 2.5Mb usando versión 3 clase 1
  3. Un archivo de texto de 240KB usando versión 1 clase 1

Módulo Bluetooth

Vamos a utilizar en estos ejemplos un módulo esclavo de bluetooth JY-MCU o también HC-06 muy común y económico. Es posible usar otros módulos ya que existe un mercado de desarrollo continuo, en cualquier caso el funcionamiento básico es el mismo. Dicho módulo por tratarse de un módulo esclavo, está configurado para conectarse a un maestro y recibir órdenes de él.  

Inicialmente no necesitas configurarlo, sino que al cargar el código desde el ordenador, conectarás el módulo y este empezará a parpadear indicando que está buscando un master al que conectarse, (por ejemplo tu teléfono o una llave bluetooth usb conectado a un pc).

Como ya sabrás los dispositivos de este tipo tienen que “emparejarse” y tienen que compartir una contraseña para que los datos puedan intercambiarse. Por defecto, estos módulos tienen la contraseña 1234, aunque tanto esto como el nombre, pueden ser actualizados mediante unos comandos especiales, llamados AT y que veremos un poco más adelante.

Arduino tiene 2 pines que permiten enviar y transmitir datos serie (uno datos tras otro). Lo usamos continuamente cuando enviamos un programa desde nuestro ordenador a Arduino o cuando hacemos una lectura desde el monitor serie (con un Serial.print();**).

Arduino tiene definidos estos pines como:

  • pin digital 0: RX <-  (Arduino recibe a través de este pin).
  • pin digital 1: TX -> (Arduino envía a través de este pin).

El módulo bluetooth tiene 4 patillas. 2 para la alimentación y 2 para la comunicación.

Es MUY IMPORTANTE conectar de manera correcta estos pines con Arduino para la correcta comunicación. La patilla que emite los datos (TX) en el bluetooth debe estar conectada a la que recibe los datos (RX) en Arduino, y viceversa. Aunque el módulo funciona a 3.3v, normalmente las placas comerciales, (como la que estamos usando), llevan un regulador y las podemos conectar directamente a los 5v de Arduino.

Conexión en Edubásica

La conexión es muy fácil, ya tiene JP6 para conectarlo diréctamente, con la luz led mirando hacia dentro de la placa:

Conexión sin Edubásica

Es también simple, utilizando una placa Protoboard [descarga .fzz] pero intercambiando Rx y Tx es decir Rx del HC-06 con Tx del Arduino y Tx del HC-06 con Rx del Arduino.

Ordenes

Si la luz está intermitente, el módulo no está vinculado, si está encendido permanente, ya está vinculado.

Una vez vinculado, la orden es sencilla:

_dato = Serial.read();_

donde dato es tipo byte : byte dato;

Ten en cuenta que estamos usando los 2 mismos pines que Arduino usa para la comunicación USB con el ordenador (0, 1), así que no puedes usar el monitor serie para visualizar los datos utilizando el Bluetooth. Igualmente la velocidad tiene que ser igual para entenderse, no pueden ser diferentes.

La APP

Interactuar con el medio es uno de los objetivos primordiales de Arduino. En esta unidad vamos a ver cómo nos podemos comunicar con un dispositivo móvil, posibilitando así el control remoto de la placa. 

La comunicación con Arduino es muy sencilla, el uso común de este dispositivo, será como receptor o emisor de datos. 

En nuestro caso usaremos caracteres (bytes)  que enviaremos desde un master, como un teléfono móvil. Hay muchas aplicaciones gratuitas para enviar datos, por ejemplo, para dispositivos Android podemos utilizar de manera gratuita. Podemos usar cualquier APP que emita un código por Bluetooth.

Arduino Bluetooth Control

Esta APP es muy completa y configurable, aquí para descargarla de Google Play.

El código de programa que tenemos que cargar en el Arduino se basa en escuchar de forma continua el puerto serie. Cuando llegue el dato, se ejecutará la acción que le indiquemos. ¡¡así de sencillo !!

via GIPHY