Tutoriales

Cómo configurar y programar el ESP32 para comunicarse con un teléfono inteligente Android a través de Bluetooth

El ESP32 es una placa microcontroladora con una amplia gama de funciones. Dispone de módulos Wi-Fi y Bluetooth integrados. Usando estos dos módulos, puedes programar el ESP32 de forma inalámbrica. De esta manera, no tendrá que preocuparse por conexiones de cables largas para controlar sus periféricos ESP32.

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ísticabluetooth clásicoBluetooth de bajo consumo (BLE)
Tipo de comunicaciónComunicación bidireccional continuaRáfagas de datos intermitentes, en su mayoría unidireccionales
rango de operaciónHasta 100 metrosSuele funcionar por debajo de los 100 metros.
Uso de electricidadConsumo de energía hasta 1 vatio.Rango de 10 mW a 500 mW
velocidad de transferenciaLas velocidades de transferencia de datos oscilan entre 1 y 3 megabits por segundoSoporta 125 Kb/s a 2 Mb/s
tiempo de respuestaRetraso de unos 100 milisegundos.Respuesta rápida, retraso de 6 milisegundos
Soporte de vozEquipado 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:

//Bienvenido a Linuxhint

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

#incluir // Contiene la biblioteca de comunicación del puerto serie Bluetooth

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

LEER  Cómo evitar la eliminación accidental de entradas de crontab en Linux

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba