ESP32 tiene soporte para Bluetooth Classic y Bluetooth Low Energy. Aquí nos centraremos en Bluetooth Low Energy. Veamos en detalle.
¿Qué es Bluetooth baja energía?
Ble o Bluetooth Low Energy es un modo de ahorro de energía de Bluetooth. Su aplicación principal incluye la transferencia de datos a distancias cortas como entrada de puerta, relojes inteligentes, wearables, monitor de presión arterial, seguridad y automatizaciones en el hogar. BLE puede transferir datos limitados.
A diferencia de Bluetooth Classic, que permanece encendido durante todo el tiempo, BLE permanece en modo de suspensión, excepto cuando se llama o se inicia la conexión. Esto hace que el BLE sea muy eficiente y consume 100 veces menos potencia que el clásico.
Aquí hay una breve comparación de Bluetooth Classic con Bluetooth Low Energy:
Especificación | Bluetooth Classic | Bluetooth baja energía/ble |
Tasa de transferencia de datos | 2-3Mbps | 1Mbps |
Rango | ~ 10-100m | ~ 50m |
Frecuencia de operación | 79 RF | 40 RF |
Consumo de corriente máxima | ~ 30 mapa | <15mA |
El consumo de energía | 1W | 0.01-0.5W |
Tiempo total para enviar datos | 100 ms | 3 ms |
Aplicaciones | Audio, transmisión de música | Sensor, wearables |
Para una comparación más detallada, haga clic aquí para visitar el sitio oficial de Bluetooth.
Servidor BLE y cliente
Bluetooth Low Energy admite el dispositivo de dos maneras diferentes: servidor y cliente. ESP32 puede actuar como servidor y cliente para Bluetooth de baja energía.
Soporte BLE siguiendo modos de comunicación:
Al actuar como servidor, ESP32 anuncia su existencia a los dispositivos de clientes cercanos. Una vez que los dispositivos del cliente escanean los dispositivos Bluetooth disponibles, el servidor establece la conexión entre ellos y transfiere los datos del servidor al dispositivo del cliente. Esta comunicación se llama punto a punto.
En este tutorial, tomaremos un ejemplo de comunicación punto a punto entre dos tableros ESP32.
Términos importantes en BLE
Aquí hay algunos términos importantes que uno debe saber mientras se trabaja con aplicaciones ESP32 BLE:
Gatt: Atributos GATT o genéricos que define una estructura jerárquica para las transferencias de datos entre dispositivos BLE utilizando el servicio y la característica. Define la forma en que dos dispositivos comunican datos entre ellos.
Servicio BLE: El nivel superior dentro de la jerarquía del GATT es un perfil que contiene uno o más servicios. BLE contiene más de un solo servicio. Cada uno de estos servicios tiene sus propias características que también pueden actuar como referencia para otros servicios.
Característica BLE: La característica es un grupo de información siempre propiedad del servicio; Es donde los datos reales se almacenan en la jerarquía (valor). Siempre contiene dos atributos:
Uuid: UUID (Identificador universalmente único) es una identificación única dada a un servicio y características. Es una identificación única de 128 bits que se puede generar utilizando cualquier generador UUID en línea. Consulte este generador UUID gratuito. Un UUID de muestra se ve así:
583F8B30-74B4-4757-8143-56048FD88B25Un grupo de interés especial de Bluetooth Universal (SIG) ha predefinido algunos de los UUID acortados para diferentes tipos de servicios y perfil para leerlos, haga clic aquí.
Configurar BLE en ESP32 con Arduino IDE
Para comprender el funcionamiento de BLE, usaremos dos tablas ESP32 diferentes, una de ellas actuará como servidor y anunciar una señal de Bluetooth mientras el otro ESP32 que actúa como un cliente Intentará conectar el servidor Bluetooth.
Arduino IDE tiene ejemplos separados tanto para escáner como para servidor.
Para ver cómo instalar un ESP32 con Arduino IDE en Windows, haga clic aquí.
Servidor BLE ESP32
Primero, subiremos el código de ejemplo del servidor dentro de nuestra primera placa ESP32 que actúa como un servidor.
Para abrir el ejemplo del servidor BLE, vaya a: Archivo> Ejemplos> ESP32 BLE Arduino> Ble_Server:
El siguiente código dado se abrirá en Arduino IDE.
Código de servidor
Cargue el código a continuación en la placa ESP32 usando Arduino IDE. Pero asegúrese de desconectar la segunda placa durante un tiempo para evitar cargar el mismo código a una sola placa.
#incluirEl código comienza con los archivos de biblioteca Bluetooth necesarios. Entonces UUID se define tanto para el servicio como para la característica. Puede ir con el UUID predeterminado o generar utilizando el generador UUID gratuito. La próxima comunicación en serie se inicializa definiendo la tasa de baudios.
A continuación, creamos un dispositivo BLE llamado ESP32. Después de eso definimos el dispositivo BLE como un servidor utilizando el CreateServer () función y luego establecemos el valor característico. En el paso final comenzamos el servicio anunciándolo para que otros dispositivos puedan buscarlo.
Escáner BLE ESP32
Ahora cargaremos un ejemplo de escaneo ESP32 en la segunda placa ESP32. Para hacer esto, vaya a: Archivo> Ejemplos> ESP32 Ble Arduino> Ble_Scan
El siguiente código estará abierto en el editor de Arduino IDE.
Código de escáner
#incluirEl código anterior buscará el número de dispositivos totales disponibles para BLE y mostrará su recuento total con direcciones. Después de cargar el código en la placa del escáner ESP32, presione el Permitir botón, la placa ESP32 buscará automáticamente los dispositivos disponibles.
Producción
Una vez que el ESP32 escanee los dispositivos disponibles, aparecerá el siguiente resultado. Aquí ESP32 escaneó 9 dispositivos entre los cuales uno es una placa ESP32 con código BLE_SERVER y otro dispositivo es Mi Band 6. El resto de todos los dispositivos están disponibles cerca de mi ESP32.
Cómo arreglar la biblioteca de escaneo BLE ESP32 no contando dispositivos
El ejemplo de la biblioteca de escaneo ESP32 tiene un error de no contar el número total de dispositivos. Para rectificar este problema, vaya a la ubicación mencionada y reemplace el código que se proporciona a continuación.
C: \ Users \ UserName \ AppData \ Local \ Arduino15 \ Packages \ ESP32 \ Hardware \ ESP32 \ 1.0.6 \ Bibliotecas \ ble \ src \ blescan.CPPRecuerda hides Todas las carpetas porque la carpeta AppData dentro del directorio C permanece oculta de forma predeterminada. Después de abrir el archivo fuente ble_scan .CPP Reemplace la condición dada a continuación dentro del código.
if (m_padvertedDeviceCallbacks)Prueba del servidor BLE ESP32 con teléfono inteligente
La mayoría de los teléfonos inteligentes modernos trabajan con la tecnología BLE para comunicarse con diferentes dispositivos, como relojes inteligentes, wearables, sensores y otros dispositivos de automatización del hogar. Aquí la Junta ESP32 actuará como un punto de acceso. Entonces, conectaremos un teléfono Android con una placa ESP32.
Código de servidor BLE para acceso a teléfonos inteligentes ESP32
Cargue el siguiente código dado en la placa ESP32.
#Include /*Biblioteca Bluetooth incluida* /Instalación de la aplicación BLE en el teléfono inteligente Android
Los siguientes pasos lo guiarán a instalar aplicaciones BLE en teléfonos inteligentes y ayudar a interactuar los dispositivos móviles con tableros ESP32.
Paso 1: Abra la instalación de Google Play Store Escáner ble solicitud.
Paso 2: Después de instalar, abra la aplicación y permita todo el permiso requerido y recuerde activar Bluetooth móvil.
Paso 3: Ahora escanee los dispositivos Bluetooth disponibles. Conecte la placa ESP32.
Etapa 4: Una vez que la placa ESP32 esté conectada al teléfono inteligente después de la especificación de la placa ESP32. Aquí podemos ver las direcciones UUID y podemos leer y escribir nuevos valores característicos.
Paso 5: Para leer el valor característico guardado, haga clic Riñonal. Se mostrará el resultado.
Paso 6: Para escribir cualquier nuevo valor característico, haga clic W.
Paso 7: Aparecerá una nueva ventana emergente aquí podemos escribir cualquier valor característico y hacer clic De acuerdo.
Paso 8: Aparecerá un nuevo valor que se escribe.
Paso 9: Además, podemos ver el mismo valor característico nuevo impreso en el monitor en serie de Arduino IDE.
Hemos conectado con éxito un dispositivo con ESP32 BLE.
Conclusión
ESP32 viene con Bluetooth dual que es clásico y de baja energía. Aquí en este artículo, discutimos BLE y sus diversas aplicaciones y trabajos. Más tarde configuramos BLE con dos tableros ESP32 diferentes con una que actúa como servidor y otros como escáner. Por fin, conectamos nuestro teléfono inteligente con el servidor ESP32 y escribimos un nuevo valor característico.