Bluetooth

BLUETOOTH un poco de teoría

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:

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.   

¿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?

  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.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:

Nosotros hemos elegido uno sencillo que cumple las dos condiciones (hay muchas APPs) Serial Bluetooth Terminal

2025-12-05 08_05_39-WhatsApp.png

Sólo con la microbit: BLUETOOTH programa en Makecode

Realizamos un programa que :

¿Para qué mostrar el nombre de la micro:bit? Para saber a qué micro:bit conectarte. En una clase con muchas micro:bit es importante este dato. El nombre del equipo está en
2026-01-09 16_36_45-Greenshot.png

https://makecode.microbit.org/S60585-58735-21378-05922

BLUETOOTH programa Serial Bluetooth Terminal

Entramos con el móvil a Google Play e instalamos esta aplicación https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal

2025-11-02 21_50_49-Greenshot.png

Tiene la ventaja de

Entramos en Devices y en Bluetooth LE y nos conectamos a la Micro:bit

unnamed.webp

Una vez conectado, podemos:

Avanzado: BLUETOOTH con App Inventor. Extensiones

Descargas e instalación

Necesitamos estas extensiones para poder crear una APP que pueda enviar y recibir con nuestra micro:bit

Página de descargas https://iot.appinventor.mit.edu/#/

2025-11-02 22_05_10-.png

Una vez descargadas, vamos al APP INVENTOR https://ai2.appinventor.mit.edu y las instalamos en extensiones :

2025-11-02 22_08_33-Mattermost Desktop App.png

 

Una vez instaladas, se visualizan como extensiones abajo del menú. Las dos últimas son las que utilizaremos:

2025-11-02 22_10_51-.png

La extensión Bluetooth tiene diversas funciones que tienes su descripción aquí (English). Para poder instalarla, vamos al APP INVENTOR https://ai2.appinventor.mit.edu

Avanzado: BLUETOOTH App Inventor programa. Sólo con la micro:bit

En DESIGNER

incorporamos:

  1. HorizontalArrangment para que los botones queden alineados horizontalmente
  2. Botones
    1. Scan
    2. Stop
    3. Conectar
    4. Desconectar
  3. Label que dirá el estado de la conexión. Lo llamaremos LabelEstado
  4. ListView que lo llamaremos ListBLE donde mostrará los diferentes dispositivos Bluetooth LE que detecta
  5. TextBox para poner el texto que queramos a enviar a micro:bit
  6. Un botón Enviar el texto anterior
  7. Un Label que lo llamaremos LabelTextoRecibido que mostrará el mensaje desde micro:bit
  8. Añadimos los elementos de las extensiones que hemos instalado anteriormente 
    1. Microbit_UART_Simple
    2. BluetoothLE

2025-11-02 22_13_06-Mattermost Desktop App.png

En Blocks

Cuando escaneemos, que el elemento empiece el escaneado y la lista se vuelva visible, además de que LabelEstado diga que esta escaneando

2025-11-02 22_24_04-Greenshot.png

Si ha encontrado un dispositivo, que lo vaya añadiendo a la lista ListBLE

2025-11-02 22_25_21-Mattermost Desktop App.png

Cuando le digamos que pare, simplemente se lo mandamos al dispositivo y LabelEstado lo informa

2025-11-02 22_24_44-Mattermost Desktop App.png

Cuando le demos a conectar, pues conecta con el seleccionado en ListBLE y LabelEstado informa

2025-11-02 22_25_49-Greenshot.png

Si conecta, pues LabelEstado informa y ListBLE no es necesaria por lo tanto se oculta, pues entorpece la visión

2025-11-02 22_26_36-Greenshot.png

Si queremos desconectar, pues le decimos al elemento BluetoothLE que desconecte

2025-11-02 22_27_31-Greenshot.png

Si se ha desconectado (voluntariamente al dar al botón anterior, o involuntariamente pues el dispositivo se ha desconectado, o esta muy lejos... etc) que informe

2025-11-02 22_28_08-Mattermost Desktop App.png

Si apretamos el botón enviar, le enviamos el texto que esta en TextBox entre "#" pues así lo hemos definido en el programa Makecode

2025-11-02 22_30_07-Mattermost Desktop App.png

Si se ha recibido un mensaje, pues que lo visualice, pero primero comprueba que el mensaje no este vacío
NOTA el mensaje "message" lo arrastras desde la instrucción "when.." tal y como señala la línea roja

2025-11-02 22_30_57-Mattermost Desktop App.png

basicoBluetoothLE.aia

La APP a tu móvil

Tienes dos opciones

OPCIÓN EN VIVO AI COMPANION

Instalas la APP MIT AI2 COMPANION

APP-MIT.png

En APP INVENTOR 

conect-ai-companion.png

Y sale un código y un QR asociado al código

cod-ai-companion.png

Abrimos la APP MIT AI2 COMPANION y metemos el código anterior (o lo escaneamos con el QR)

ai-companion2.jpg

En APP INVENTOR verás que sale una barra de progreso enviando tu APP a tu móvil. Cuando termina automáticamente lo ejecuta.

A jugar...

Ahora con la granja

Una vez visto cómo podemos controlar la micro:bit usando Bluetooth, vamos a hacer lo mismo con la granja

  1. Empezamos instalando la Extensión Bluetooth que hemos visto en las páginas anteriores
  2. También pondremos la Extensión Iot-environment kit de Elecfreak para poder usar la OLED, DHT11 etc.. de la granja tal y como lo hemos trabajado en el capítulo Programas básicos con Smart Agriculture Kit
  3. En el bucle Al inicial, inicializamos la OLED, y también inicializamos el Bluetooth pero aquí el nombre de dispositivo que lo visualice por la OLED que es más cómodo, y así sabemos a qué microbit tenemos que conectarnos si estamos en una clase con muchos:
    2026-02-09 16_44_51-Greenshot.png
  4. Añadimos el bucle "Al conectar Bluetooth" y "Al desconectar Bluetooth" que también lo hemos visto en las páginas anteriores, pero esta vez le decimos que los mensajes lo visualice por la OLED
    2026-02-09 16_44_07-Greenshot.png
  5. Vamos a jugar ahora que si detecta agua en el sensor de nivel de agua, que mande un mensaje de inundación :
    2026-02-09 16_46_38-Greenshot.png
  6. Vamos a jugar más y si aprieto el botón A de la micro:bit que salga un mensaje y además que nos diga la temperatura y la humedad de la granja:
    2026-02-09 16_47_45-Greenshot.png

  7. No podemos abandonar el reto sin poner comunicación en el otro sentido, es decir de la APP a la granja: Vamos a hacer que si se envía desde la APP #abre# pues que el servo se ponga a 0º y se envía desde la APP #cierra# pues que el servo se mueva a 180º. El servo podría estar unido a una puerta, ventana, a un silo de alimentación....
    2026-02-09 16_50_35-Greenshot.png

El proyecto https://makecode.microbit.org/S87280-53966-04815-61300

 

Y el resultado :