
En este artículo, conectaremos la placa ESP32 con un teléfono Android y transferiremos datos a través de Bluetooth. Además, controlaremos el LED conectado al pin GPIO del ESP32 directamente desde el smartphone Android.
contenido:
¿Qué es ESP32 Bluetooth LE?
El ESP32 es una placa de microcontrolador que admite Bluetooth Classic y Bluetooth Low Energy (también conocido como Bluetooth Smart). BLE o Bluetooth Smart se utiliza específicamente para comunicaciones que ahorran energía o está diseñado para comunicaciones de corto alcance o transferencia de datos pequeños.
La función BLE de ESP32 le permite actuar como servidor o cliente en la comunicación Bluetooth. Puede manejar tareas como servicios de lectura y escritura. También puede cifrar conexiones y establecer conexiones de perfil de puerto serie (SPP) para la transferencia de datos en modo de paso UART-BLE. ESP32 Bluetooth admite el protocolo 4.2, lo que significa que es compatible con diferentes capas, como la capa física (PHY) y la capa de enlace (LL). También es compatible con la interfaz del controlador de host (HCI) y más.
Consulte la tabla de diferencias entre ESP32 Classic y BLE Bluetooth.
característica | bluetooth clásico | Bluetooth de bajo consumo (BLE) |
Tipo de comunicación | Comunicación bidireccional continua | Ráfagas de datos intermitentes, en su mayoría unidireccionales |
rango de operación | Hasta 100 metros | Suele funcionar por debajo de los 100 metros. |
Uso de electricidad | Consumo de energía hasta 1 vatio. | Rango de 10 mW a 500 mW |
velocidad de transferencia | Las velocidades de transferencia de datos oscilan entre 1 y 3 megabits por segundo | Soporta 125 Kb/s a 2 Mb/s |
tiempo de respuesta | Retraso de unos 100 milisegundos. | Respuesta rápida, retraso de 6 milisegundos |
Soporte de voz | Equipado con transmisión de voz. | Carece de capacidades de transmisión de voz. |
Consulte estos artículos sobre Bluetooth ESP32 para obtener más información.
Cómo programar un ESP32 para comunicarse con un teléfono inteligente Android a través de Bluetooth
Para programar el ESP32 para que se comunique con un teléfono Android mediante el protocolo Bluetooth, debe configurar la biblioteca serial Bluetooth ESP32. Para hacer esto, debes instalar el IDE de Arduino e instalar la placa ESP32.
Después de configurar el ESP32 Bluetooth, debe instalar la aplicación Bluetooth Serial para Android. Esto le permitirá enviar comandos al ESP32 desde su teléfono Android mediante comunicación serie Bluetooth.
Echemos un vistazo más de cerca a cada paso:
Pasos para conectar ESP32 Bluetooth al teléfono Android
Para programar la placa ESP32 para comunicación Bluetooth, siga los pasos que se indican a continuación:
Paso 1: Instale la placa ESP32 en Arduino IDE
Para instalar ESP32 en Arduino IDE, simplemente siga la guía proporcionada en este artículo.
Instale la placa ESP32 en Arduino IDE
Una vez completada la instalación, puede utilizar el IDE de Arduino para conectarse a la placa ESP32 y realizar la programación.
Paso 2: cargue el código Bluetooth ESP32
Después de instalar la placa ESP32, verás diferentes bibliotecas preinstaladas y sus ejemplos en el IDE de Arduino. Todas estas bibliotecas están relacionadas con la placa ESP32. Para la comunicación serial Bluetooth usaremos ESP32 Puerto serie Bluetooth.h Código de muestra de la biblioteca.
Para abrir el código de muestra, abra el IDE de Arduino y vaya a: Archivos > Ejemplos > Serie Bluetooth > SerialtoSerialBT
Para abrir este código de muestra, asegúrese de que la placa ESP32 esté seleccionada.
Después de abrir el código de muestra, verá el siguiente código en la ventana del IDE de Arduino:
#incluir «BluetoothSerial.h»
//#define USE_PIN // Descomentar si necesita un PIN durante el emparejamiento
constante personaje *alfiler = «1234»; //Definir PIN de emparejamiento personalizado
nombre del dispositivo de cadena = «ESP32»;
#si !definido(CONFIG_BT_ENABLED) || !definido(CONFIG_BLUEDROID_ENABLED)
#error ¡Bluetooth no está habilitado!Ejecute `make menuconfig` para habilitarlo
#por si acaso
#si !definido(CONFIG_BT_SPP_ENABLED)
#error Falta el Bluetooth serie o no está habilitado. Sólo disponible para chips ESP32.
#por si acaso
Puerto serie Bluetooth SerialBT;
blanco configuración() {
Series de TV.comenzar(115200);
SerieBT.comenzar(Nombre del dispositivo); //Nombre del dispositivo Bluetooth
Series de TV.Función de impresión(«equipo»%s«Aquí vamos.\norte¡Empieza a emparejar tus dispositivos!\norte«, Nombre del dispositivo.cadena_c());
//Serial.printf(«Se ha iniciado el dispositivo «%s» con la dirección MAC %s.\n¡Inicie el emparejamiento con Bluetooth!\n», nombre_dispositivo.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerieBT.Establecer pasador(alfiler);
Series de TV.Imprimir(«Usar PIN»);
#por si acaso
}
blanco anillo() {
si (Series de TV.usable()) {
SerieBT.Escribir(Series de TV.leer());
}
si (SerieBT.usable()) {
Series de TV.Escribir(SerieBT.leer());
}
Demora(20);
}
Después de cargar el código, verá el siguiente mensaje en su pantalla. Este mensaje indica que su placa ESP32 está lista para emparejarse.
Paso 3: explicación del código
El código primero incluye las bibliotecas necesarias y verifica la disponibilidad de Bluetooth. También establece variables para el nombre y PIN del dispositivo Bluetooth.
adentro configuración() En la función, se define la comunicación serial a velocidad de baudios y el dispositivo Bluetooth se inicializa usando su nombre. Se puede configurar un PIN personalizado para autenticar durante el emparejamiento.
este anillo() La función verifica constantemente los datos en las conexiones seriales y Bluetooth. Esto le permite establecer una comunicación bidireccional entre el ESP32 y el dispositivo Bluetooth emparejado.
Paso 4: instale la aplicación de Android
Después de cargar el código, el siguiente paso es instalar y configurar la aplicación de Android para la conectividad Bluetooth.
Abra Play Store e instale Terminal Bluetooth serie solicitud.
Una vez completada la instalación, active la configuración de Bluetooth del teléfono inteligente y conecte el teléfono al ESP32 Bluetooth. Si tienes un PIN definido en el código IDE de Arduino, debes ingresar el PIN o se conectará directamente.
Ahora abra la aplicación bluetooth serie y seleccione equipo opciones.
En el menú recién abierto, seleccione el dispositivo ESP32. Esta lista muestra todos los dispositivos Bluetooth actualmente activos.
Como puede ver, el ESP32 Bluetooth está conectado a su teléfono inteligente Android.
Para probar la conexión, enviaremos una cadena. Aquí estoy enviando dos cadenas diferentes.
Notarás que las mismas dos cadenas también se muestran en el terminal IDE de Arduino.
Ahora vayamos un paso más allá y usemos ESP32 Bluetooth para controlar dispositivos periféricos como LED a través de un teléfono inteligente Android.
Paso 5: use su teléfono Android para controlar el LED a través de Bluetooth
Para controlar el LED usando ESP32 y Android Bluetooth, primero modifique el código anterior y defina los pines GPIO para el LED. Después de eso, debes configurar los valores que encienden y apagan el LED.
Cargue el código a continuación para continuar.
#define LED_PIN 15 // Definir pin LED
Puerto serie Bluetooth SerialBT; //Crear un objeto de secuencia Bluetooth
Byte BT_INP; //Variables de almacenamiento para entrada Bluetooth
//Comprueba si Bluetooth y Bluedroid están habilitados en la configuración del SDK
#si !definido(CONFIG_BT_ENABLED) || !definido(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth no está habilitado. Ejecute `make menuconfig` para habilitarlo.
#por si acaso
blanco configuración() {
modo de fijación(LED_PIN, producción); //Establece el pin LED como salida
Series de TV.comenzar(115200);
SerieBT.comenzar(«ESP32»); // Inicializa Bluetooth con el nombre «ESP32»
Series de TV.Imprimir(«El dispositivo Bluetooth está listo para emparejarse».); //Indica que Bluetooth está listo
}
blanco anillo() {
//Comprueba si hay datos que se puedan leer desde Bluetooth
si (SerieBT.usable()) {
BT_INP = SerieBT.leer(); // Leer bytes entrantes desde Bluetooth
Series de TV.Escribir(BT_INP); // Hacer eco de los bytes leídos al monitor de secuencia
}
// Verifique los datos de Bluetooth recibidos y configure el estado del LED
si (BT_INP == ‘1’) {
Escritura digital(LED_PIN, Alto); //Si se recibe «1», enciende el LED
} Otros si (BT_INP == ‘0’) {
Escritura digital(LED_PIN, bajo); //Si se recibe «0», apaga el LED
}
}
Este código es para que el microcontrolador ESP32 controle el LED mediante Bluetooth. Incluye una biblioteca para comunicación Bluetooth. A continuación, define los pines del LED y configura Bluetooth con un dispositivo llamado ESP32. El bucle principal lee los datos de Bluetooth y enciende o apaga el LED según el comando recibido (1 está encendido, 0 está apagado).
Esquema del circuito
El diagrama del circuito es muy simple, se conecta un LED al pin D15 ESP32. Puede definir cualquier otro GPIO para controlar el LED.
relacionado: Referencia de distribución de pines ESP32: la guía definitiva
hardware
En términos de hardware, necesitarás una placa de pruebas, una placa ESP32 y un LED. Conecte el ESP32 al sistema y cargue el programa en él.
Ahora envíe 1 y 0 desde la aplicación de comunicación serie Bluetooth del teléfono Android.
Verá la misma entrada recibida desde el teléfono Android en el terminal Arduino IDE.
producción
Una vez que envíe un valor alto o un valor 1, el LED se encenderá, de manera similar, cuando envíe un valor bajo, el LED se apagará.
Configurar botones personalizados
También puede configurar botones personalizados en la aplicación Bluetooth serie. Por ejemplo, puede crear botones de alto y bajo valor. De esta manera no tendrás que escribir los valores manualmente. En su lugar, simplemente presiona el botón de acceso directo y ejecuta el comando que configuraste.
notas: Para activar la configuración del botón, mantenga presionado el botón.
Para establecer el valor del botón ALTO, defina las siguientes configuraciones.
De manera similar al valor del botón BAJO, debe definir las siguientes configuraciones.
Hemos utilizado Bluetooth con éxito para conectar la placa de desarrollo ESP32 con un teléfono Android. Ahora puedes usarlo para crear muchos proyectos. Por ejemplo, puede utilizar ESP32 Bluetooth para controlar sus electrodomésticos a través de circuitos de relé.
relacionado: Retransmisión usando Arduino IDE con ESP32
en conclusión
ESP32 es una placa de microcontrolador avanzada con capacidades de Wi-Fi y Bluetooth. Estos dos módulos integrados le ayudan a diseñar proyectos avanzados y controlar de forma inalámbrica dispositivos periféricos. Asimismo, podrás conectar el ESP32 con tu teléfono Android y realizar diferentes operaciones. Para hacer esto, necesita instalar la aplicación Bluetooth Serial para Android. Después de la instalación, abra el código de muestra de Bluetooth ESP32 y cárguelo en su placa de desarrollo. Una vez cargado el código, puedes vincularlo con tu placa de desarrollo a través de tu teléfono Android.