Conectividad Bluetooth
0. Introducción
Bluetooth es una tecnología de comunicación inalámbrica diseñada para enviar y recibir datos entre dispositivos a corta distancia (unos 10-100 metros, dependiendo del dispositivo). Esto se hace utilizando ondas de radio y opera en la banda de frecuencia de 2,4 GHz. La utilizamos cotidianamente para conectar dispositivos como auriculares, altavoces, teclados o incluso relojes inteligentes.
Existen dos versiones principales:
Bluetooth clásico (BR/EDR, Basic Rate/Enhanced Data Rate): Es el que se utiliza desde hace más tiempo y está pensado para conexiones continuas y con mayor volumen de datos.
Bluetooth Low Energy (BLE): Es una versión más moderna, diseñada para ahorrar energía.
1. Modos de conexión Bluetooth: Maestro vs Esclavo
El Bluetooth clásico, también conocido como Bluetooth BR/EDR (Basic Rate/Enhanced Data Rate), funciona mediante la creación de conexiones entre dispositivos. Los dispositivos pueden operar en dos modos:
Maestro (Master):
El dispositivo maestro es el que inicia la conexión y controla la comunicación. El maestro gestiona la conexión con uno o más dispositivos esclavos. En este modo, el dispositivo maestro puede controlar cuándo y cómo enviar datos y establecer la conexión.
Ejemplo: Tu smartphone actúa como maestro cuando se conecta a un dispositivo como un altavoz Bluetooth.
Esclavo (Slave):
El dispositivo esclavo espera a que el dispositivo maestro inicie la conexión y establezca la comunicación. Un esclavo responde a las órdenes del maestro, pero no puede iniciar la conexión por sí solo. Los dispositivos esclavos generalmente realizan tareas específicas en función de las órdenes que reciben del maestro.
Ejemplo: Un auricular Bluetooth sería un dispositivo esclavo que se conecta a tu smartphone (el maestro).
Reto 1 – Comunicación Bluetooth clásica
Conectaremos nuestro dispositivo móvil (maestro) con la placa ESP32 STEAMakers (esclavo). Cuando le enviemos alguna palabra clave desde el móvil, la ESP32 nos contestará con la información solicitada:
"hola": La placa nos saludará respondiendo: "Hola desde la placa ESP32 STEAMakers"
"estat": La placa nos dará información sobre sus sensores de consumo internos
"RGB_blau": Enciende el LED RGB de color azul
"RGB_vermell": Enciende el LED RGB de color rojo
"RGB_apaga": Apaga el LED RGB
Para realizar la comunicación desde el móvil utilizaremos un terminal de comunicación serie para Bluetooth. En el ejemplo se utiliza la aplicación "Serial Bluetooth Terminal" para Android.
Programación del ESP32 desde STEAMakers:
Pruebas con el terminal serie de la aplicación "Serial Bluetooth Terminal":
El icono de la aplicación se ve de la siguiente manera.
Este es el aspecto de la aplicación una vez abierta.
En el menú desplegable de arriba a la izquierda podemos ver las siguientes opciones.
En el apartado Devices encontramos los elementos a los que nos podremos conectar. Existen dos opciones: Bluetooth Classic y Bluetooth LE. En este primer reto se trata del Classic.
Una vez emparejado con el ESP32 ya podemos comunicarnos con él.
Reto 2 – Comunicación BLE
Ahora comunicaremos nuestro dispositivo móvil con la ESP32 mediante BLE. Cuando enviemos el mensaje "Hola" desde la aplicación de terminal Bluetooth, la ESP32 nos contestará con la salutación. La programación para STEAMakersBlocks es la siguiente:
2. Bluetooth HID
Los dispositivos HID son aquellos que permiten a los humanos interactuar con una máquina. Algunos ejemplos clásicos son:
Teclados: Envían pulsaciones de teclas
Ratones: Envían coordenadas de movimiento y clics
Joysticks o mandos de videojuegos: Envían información de botones, palancas o gatillos
La ESP32 STEAMakers se puede programar para actuar como un dispositivo HID BLE, en concreto puede funcionar como teclado BLE o como ratón BLE.
Reto 1 – Escritura de datos automática
La ESP32 STEAMakers simulará que escribe los datos de un sensor. Podemos abrir un documento de texto y se irá "tecleando" automáticamente:
Una vez emparejada la ESP32 con el ordenador, abrimos un documento de texto y automáticamente se ira escribiendo la información cada cinco segundos.
Esto mismo se puede hacer con el teléfono móvil. Para ello se ha de encontrar el ESP32 y emparejarlo. A la vez se ha de abrir el bloc de notas y allí se irán imprimiendo los datos enviados por ESP32.
Mediante dos pulsadores simularemos la pulsación de las teclas del teclado del ordenador:
Botón 1: flecha izquierda
Botón 2: flecha derecha
De este modo podemos controlar algún proceso como el movimiento del gato del entorno Scratch.
Este es el programa del ESP32.
Para conectar ESP32 al ordenador hacemos:
Ahora ya podemos mover el gato con los dos botones.
Reto 3 – Simular un ratón
El programa para el ESP32 es el siguiente:
Cuando se tapa y se destapa la LDR se consigue que el puntero del ratón se mueva arriba y abajo. Al apretar el pulsador se acciona el botón izquierdo del ratón.
3. Reto final
Desde una placa ESP32 que actuará como maestro:
Sobre una placa ESP32 hemos montado una Imagina TdR STEAM que ya dispone de pulsador.
Cada vez que pulsemos el pulsador, sumaremos 1 a una variable previamente inicializada a 0.
La variable será enviada por Bluetooth a la ESP32 esclava.
Desde la placa ESP32 esclava:
Si recibimos un dato por Bluetooth, lo mostraremos en la pantalla OLED.
Esta es una imagen del montaje.
Estas prácticas tienen su origen en los manuales:
Physical Computing. ESP32 Plus STEAMakers, Imagina TDR STEAM, arduinoblocks. Versión 4.0. Fernando Hernández e Innova Didàctic.
IoT con ESP32 STEAMakers – Maleta Innovación 4.0 UPV Alcoi. Juanjo López
Connectivitat Bluetooth. Daniel Soldevila


























No hay comentarios:
Publicar un comentario