Bluetooth
- Un poco de teoría Bluetooth
- APP Serial Bluetooth Terminal
- Actividad 15 APP->ESP32APP Serial Bluetooth Terminal
- ACTIVIDAD 15 con otra APP: Arduino Bluetooth Control
- Actividad 16 APP<->ESP32 Enunciado y programa STEAMAKERBLOCKS
- Actividad 16 con la APP Serial Bluetooth Terminal
- Actividad 16 con APP INVENTOR
Un poco de 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 electromagné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.
- 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. (Un G son 109) luego entre FM y Microondas.
¿Sabias que?
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.
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:

Mbps : Mega Bits por segundo. MBps: Mega Bytes por segundo.
kb = 1.024 b M = 1.024 k G = 1.024 M
¿Te atreves a calcularlo …. ?
¿Cuántos 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) f = 2.4G
b) λ=c/f= 12.5cm o sea, las antenas tendrían que ser de esta longitud. Hay muchos trucos para reducirla, una de ellas es la forma de serpiente que puedes ver en el HC-06
¿Te atreves a calcularlo...?
¿A qué distancia y cuanto tiempo tardarían en enviarse los siguientes archivos por Bluetooth?
- Un vídeo de 7Mb usando versión 2 clase 2
- Una imagen de 2.5Mb usando versión 3 clase 1
- Un archivo de texto de 240KB usando versión 1.2 clase 1
Solución
1) 7Mb / 3Mbs = 2.3 seg.
2) 2.5Mb / 24Mbs = 0.1 seg.
3) 240 kB 8b/B = 1.920 kb 1.920 kb / 1.024 = 1.875 Mb 1.875Mb / 1Mbs = 1.875 seg.
¿Bluetooth clásico o Bluetooth Low Energy = BLE?
Es un protocolo similar al clásico Bluetooth pero diseñado a consumir menos potencia manteniendo funcionalidad. Su popularidad ha crecido en multitud de dispositivos
En robótica, el clásico device que utiliza BLE es la Micro:bit. Aunque la Micro:bit no tiene Wifi integrada, posee una radiofrecuencia que podemos configurar para Bluetooth (hay que elegir, o utilizar sus comandos de Radio o utilizar comandos de Bluetooth)
Por eso a la hora de elegir la APP tienes que tener en cuenta:
- Si acepta Bluetooth clásico o BLE
- Que la APP acepte leer datos desde el robot como enviar
Nosotros hemos elegido uno sencillo que cumple las dos condiciones (hay muchas APPs) Serial Bluetooth Terminal
APP Serial Bluetooth Terminal
DESCARGA LA APP
Esta APP es muy sencilla y la puedes descargar aquí. Tiene las siguientes ventajas :
- Enviar / Recibir mensajes
- Permitir conexiones tanto
- BLUETOOTH CLÁSICO por ejemplo HC06 de Arduino, Echidna, ESP32 ...
- BLUETOOTH LE (Low emision) por ejemplo para la MICRO:BIT
EMPAREJAR DISPOSITIVOS
Si no esta emparejado con el móvil NO TE PUEDES CONECTAR, para ello entramos en Devices :
- Microbit: Entramos en Devices y en Bluetooth LE y nos conectamos a la Micro:bit
- HC06 para Arduino Echidna ESP32.... igual pero en Bluetooth clásico
Aquí puedes ver dos capturas de dispositivos en Bluetooth clásico y Bluetooth BLE
LOS QUE ESTAN EN VERDE SON LOS QUE TIENES EMPAREJADOS Y PUEDES CONECTARTE
¿Y si no aparece o no esta emparejado? Entras en el diálogo de Android de Bluetooth y lo emparejas
CONECTARTE
Una vez seleccionado el dispositivo emparejado ya puedes conectarte :
- Menú
- Entras en Terminal
- Enchufe
- Sale conectado, ya estas preparado para enviar y recibir
Actividad 15 APP->ESP32APP Serial Bluetooth Terminal
Preliminar
A diferencia del Arduino que necesita un módulo exterior el HC06, el ESP32 tiene el Bluetooth integrado
Para inicializar el Bluetooth, STEAMAKERBLOCKS tiene instrucciones específicas, lo primero es definir un nombre a la señal Bluetooth para que los otros dispositivos (tu móvil) lo encuentre, por ejemplo en la figura ESP32 STEAMakers
El bloque Fijar timeout significa que fijamos el tiempo en la transmisión de datos por bluetooth. Por defecto está fijado en 1000 ms pero podemos reducirlo a 100 ms como en la figura para que funcione más fluido.
Enunciado
Si recibe un código, que encienda un led. Por ejemplo:
- si recibe un 1 que se encienda el led rojo.
- si recibe otro código, apaga el led rojo
Este enunciado parecido a este programa en Arduino con Bluetooth
Programa
El programa es sencillo: http://www.arduinoblocks.com/web/project/1013787
Opción con texto
Podemos poner en vez de una variable numérica un texto, pero el Bluetooth añade un carácter al final que no siempre se lee bien por o que recomendamos usar en la condicional "empieza con" en vez de "="
con la palabra ROJO se enciende pero también con cualquiera que empiece con R
ACTIVIDAD 15 con otra APP: Arduino Bluetooth Control
La APP Arduino Bluetooth Control
Esta APP es para comunicación PLACA->APP es decir, el Bluetooth será como receptor de datos nuestra placa electrónica (slave) y el móvil (master) como emisor de datos.
Esta APP permite enviar datos pero de distintas formas
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 la placa 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 !!
Vincular móvil
Hay que vincular nuestro móvil y nuestra APP de Android con el Arduino, para ello sigue este sencillo tutorial:
Recuerda que para que funcione el Bluetooth tienes que poner el interruptor alejado del borde.
Ver https://libros.catedu.es/books/esp32-en-el-aula/page/bluetooth-en-el-esp32
El resultado
Reto
¿Te atreves a hacerlo con voz? Por ejemplo si dices AZUL que encienda el led AZUL si dices ROJO que encienda el ROJO y si dices APAGAR que los apague
Actividad 16 APP<->ESP32 Enunciado y programa STEAMAKERBLOCKS
Enunciado
Ahora vamos a realizar la comunicación bidireccional. El propósito es que si recibe un código, que encienda y apague los leds, pero además vamos añadir comunicación hacia la APP del móvil, que nos envíe información de los sensores. Un ejemplo de enunciado sería:
- APP->ES`32
- si recibe un R que se encienda el led rojo y apague el led azul.
- si recibe un A que se encienda el led azul y apague el led rojo.
- APP<-ESP32:
- Que envíe a la APP el valor de la temperatura del DHT11.
- Que envíe a la APP el valor de la humedad del DHT11.
- Que envíe a la APP el valor de la luz del LDR.
Además lo vamos a complicar un poco más: que visualice los valores de temperatura y luz en el display LCD para que se vea que corresponden a los que muestra en la APP (no se muestra el de la humedad pues no cabe en el LCD).
Este enunciado parecido al programa en Arduino https://libros.catedu.es/books/arduinoblocks-en-el-aula/page/app-tdr-steam-arduinoblocks
Programa
El programa ya es más complejo: http://www.arduinoblocks.com/web/project/1050441
Actividad 16 con la APP Serial Bluetooth Terminal
Actividad 16 con APP INVENTOR
La APP en el móvil
La comunicación con la placa en este caso no es tan sencilla como en el caso anterior, no nos vale las APPs que hay en Google Play que envían un código y en paz, ahora tenemos que tener una APP que si reciben un código que hagan algo. Esto ya es exclusivo por lo tanto hay que programar una APP que cumpla los requisitos. En nuestro caso lo hemos hecho en APP INVENTOR https://appinventor.mit.edu/
NO ES EL OBJETIVO DE ESTE CURSO FORMARTE EN APP INVENTOR
Pero si no conoces el programa, te recomendamos que vayas a estos contenidos que de una manera muy fácil aprenderás a crear programas con APP INVENTOR y exportarlos al móvil
https://libros.catedu.es/books/app-inventor
En la parte de DESIGNER
En la parte de Blocks
ATENCIÓN: A partir de Android 12 hay que dar permisos a la aplicación para que pueda visualizar los dispositivos bluetooth disponibles, para ver la explicación https://www.youtube.com/watch?v=MNLzS-MOXAg
Hay que añadir este código:
Puedes descargarte la APP en este enlace pero tienes que permitir en el móvil instalar APPs desconocidas.
Otra forma es en este código QR utilizando la APP de Google Play MIT AI2 Companion y poner el código sxbbnv
Aquí tienes los pasos de su realización
El programa lo tienes aquí https://gallery.appinventor.mit.edu/?galleryid=e4780fa4-3252-4d73-b846-b2a0935c6d01
La APP a tu móvil
Tienes dos opciones
-
- EN VIVO CONNECT - AI COMPANION esta opción es la más rápida, y realmente lo simula a través de la APP INVENTOR.
- Tienes que tener instalada la APP MIT AI2 COMPANION
- Se le pasa el código de tu APP a la APP
- OTRAS OPCIONES
- EN VIVO CONNECT - AI COMPANION esta opción es la más rápida, y realmente lo simula a través de la APP INVENTOR.
OPCIÓN EN VIVO AI COMPANION
Instalas la APP MIT AI2 COMPANION
En APP INVENTOR
Y sale un código y un QR asociado al código
Abrimos la APP MIT AI2 COMPANION y metemos el código anterior (o lo escaneamos con el QR)
En APP INVENTOR verás que sale una barra de progreso enviando tu APP a tu móvil. Cuando termina automáticamente lo ejecuta.

















