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

Como Configurar Y Programar El Esp32 Para Comunicarse Con Un Telefono Inteligente Android A Traves De Bluetooth



ESP32 es una placa microcontroladora con una amplia gama de capacidades. Dispone de módulos Wi-Fi y Bluetooth integrados. Usando ambos módulos, puede programar ESP32 de forma inalámbrica. Con esto, no tiene que preocuparse por conexiones de cables largos para controlar los periféricos ESP32.

En este artículo, conectaremos una placa ESP32 con un teléfono Android y comunicaremos datos a través de Bluetooth. Además, controlaremos un LED conectado con los pines GPIO de ESP32 directamente a través del teléfono inteligente Android.

Contenido:







¿Qué es ESP32 Bluetooth LE?

ESP32 es una placa de microcontrolador que admite Bluetooth clásico y Bluetooth de baja energía, también conocido como Bluetooth inteligente. El BLE o Bluetooth inteligente es específico para comunicaciones energéticamente eficientes o está diseñado para comunicaciones de corto alcance o pequeñas transferencias de datos.



La funcionalidad BLE del ESP32 le permite actuar como servidor o cliente en comunicaciones 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 transmisión de datos en modo de paso UART-BLE. El ESP32 Bluetooth admite los protocolos 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 cuenta con soporte para Host Controller Interface (HCI), entre otros.



Consulte la tabla de diferencias para ESP32 Classic y BLE Bluetooth.





Característica Bluetooth clásico Bluetooth de bajo consumo (BLE)
Tipo de comunicación Comunicación sostenida y bidireccional. Ráfagas de datos intermitentes, principalmente unidireccionales
Rango operacional Puede alcanzar hasta 100 metros. Normalmente opera por debajo de los 100 metros.
Consumo de energía Consume hasta 1 vatio Va desde 10 milivatios hasta 500 milivatios.
Velocidad de transferencia Las tasas de transferencia de datos varían de 1 a 3 Megabits por segundo Admite de 125 kilobits por segundo a 2 megabits por segundo
Tiempo de respuesta Latencia alrededor de 100 milisegundos Respuesta rápida con latencia de 6 milisegundos
Soporte de voz Equipado con transmisión de voz. Carece de funcionalidad de transmisión de voz.

Consulte estos artículos sobre Bluetooth ESP32 para obtener más información.

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

Para programar ESP32 para que pueda comunicarse con un teléfono Android mediante el protocolo Bluetooth, debe configurar la biblioteca serial Bluetooth ESP32. Para eso, debes tener una configuración Arduino IDE con una placa ESP32 instalada.



Después de configurar el Bluetooth ESP32, debe instalar la aplicación de Android serie Bluetooth. Esto le permitirá enviar instrucciones desde un teléfono Android a ESP32 mediante comunicación serie Bluetooth.

Echemos un vistazo más de cerca a cada uno de estos pasos:

Pasos para conectar ESP32 Bluetooth con un teléfono Android

Para programar la placa ESP32 para comunicación Bluetooth, siga estos pasos:

Paso 1: Instalar la placa ESP32 en Arduino IDE

Para instalar ESP32 en el IDE de Arduino, simplemente siga la guía proporcionada en este artículo.

Instalación de la placa ESP32 en Arduino IDE

Después de la instalación, la placa ESP32 se puede conectar y programar usando Arduino IDE.

Paso 2: cargue el código Bluetooth ESP32

Una vez instalada la placa ESP32, verás diferentes bibliotecas preinstaladas y sus ejemplos en Arduino IDE. Todas estas bibliotecas están relacionadas con la placa ESP32. Para la comunicación serie Bluetooth, usaremos el ESP32 BluetoothSerial.h código de ejemplo de biblioteca.

Para abrir el código de ejemplo, abra Arduino IDE y vaya a: Archivo > Ejemplos > BluetoothSerial > SerialtoSerialBT

Para abrir este código de ejemplo, asegúrese de que la placa ESP32 esté seleccionada.

Después de abrir el código de ejemplo, verá el siguiente código en la ventana de su IDE de Arduino:

//Bienvenido a Linuxhint

#incluir 'BluetoothSerial.h'

//#define USE_PIN // Descomenta esto si quieres un PIN durante el emparejamiento
constante carbonizarse * alfiler = '1234' ; // Definir un PIN de emparejamiento personalizado

Cadena nombre_dispositivo = 'ESP32' ;

#si !definido(CONFIG_BT_ENABLED) || !definido(CONFIG_BLUEDROID_ENABLED)
#error ¡Bluetooth no está habilitado! Ejecute `make menuconfig` para habilitarlo
#terminara si

#si !definido(CONFIG_BT_SPP_ENABLED)
#error Falta el Bluetooth serie o no está habilitado. Sólo está disponible para el chip ESP32.
#terminara si

BluetoothSerialSerialBT ;

vacío configuración ( ) {
De serie. comenzar ( 115200 ) ;
SerieBT. comenzar ( nombre del dispositivo ) ; //Nombre del dispositivo Bluetooth
De serie. imprimirf ( 'El dispositivo ' % s ' Está empezado. \norte ¡Empieza a emparejar tu dispositivo! \norte ' , nombre del dispositivo. cadena_c ( ) ) ;
  //Serial.printf('El dispositivo '%s' con la dirección MAC %s está iniciado.\n¡Comienza a emparejarlo con Bluetooth!\n', nombre_dispositivo.c_str(), SerialBT.getMacString());
  #ifdef USE_PIN
SerieBT. establecerPin ( alfiler ) ;
De serie. imprimir ( 'Usando PIN' ) ;
  #terminara si
}

vacío bucle ( ) {
  si ( De serie. disponible ( ) ) {
SerieBT. escribir ( De serie. leer ( ) ) ;
  }
  si ( SerieBT. disponible ( ) ) {
De serie. escribir ( SerieBT. leer ( ) ) ;
  }
demora ( 20 ) ;
}

Después de cargar el código, verá el siguiente mensaje en la pantalla. Este mensaje describe que su placa ESP32 está lista para emparejarse.

Paso 3: Explicación del código

El código comenzó incluyendo las bibliotecas necesarias y verificando la disponibilidad de Bluetooth. También configura variables para el nombre y el PIN del dispositivo Bluetooth.

En el configuración() función, se define la comunicación serial en baudios y el dispositivo Bluetooth se inicializa con su nombre. Se puede configurar un PIN personalizado para la autenticación durante el emparejamiento.

El bucle() La función comprueba continuamente los datos de las conexiones serie y Bluetooth. Esto le permite establecer una comunicación bidireccional entre el ESP32 y un dispositivo Bluetooth emparejado.

Paso 4: instale la aplicación de Android

Una vez cargado el código, el siguiente paso es instalar y configurar la aplicación de Android para la conexión Bluetooth.

Abra Play Store e instale el Terminal Bluetooth serie solicitud.

Después de la instalación, abra la configuración de Bluetooth del teléfono inteligente y conecte su teléfono con ESP32 Bluetooth. Si ha definido un PIN en el código IDE de Arduino, debe ingresar el PIN; de lo contrario, se conectará directamente.

Ahora abra la aplicación Serial Bluetooth y seleccione el Dispositivos opción.

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í he enviado dos cadenas diferentes.

Notarás que las mismas dos cadenas también se mostrarán en el terminal IDE de Arduino.

Ahora vayamos un paso más allá y controlemos un periférico externo como un LED usando ESP32 Bluetooth a través del teléfono inteligente Android.

Paso 5: controle un LED usando un teléfono Android a través de Bluetooth

Para controlar un LED usando ESP32 y Android Bluetooth, primero modifique el código anterior y defina un pin GPIO para el LED. Después de eso, debe configurar los valores para encender y apagar el LED.

Cargue el código a continuación para continuar.

#include // Incluir la biblioteca de comunicación serie Bluetooth

#define LED_PIN 15 // Definir el pin LED

BluetoothSerialSerialBT ; // Crea un objeto BluetoothSerial
byte BT_INP ; // Variable para almacenar la entrada de 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.
#terminara si

vacío configuración ( ) {
​ pinModo ( LED_PIN , PRODUCCIÓN ) ; // Establece el pin LED como salida
De serie. comenzar ( 115200 ) ;
SerieBT. comenzar ( 'ESP32' ) ; // Inicializa Bluetooth con el nombre 'ESP32'
De serie. imprimir ( 'El dispositivo Bluetooth está listo para emparejarse'. ) ; // Indica que Bluetooth está listo
}

vacío bucle ( ) {
  //Comprueba si hay datos disponibles para leer desde Bluetooth
  si ( SerieBT. disponible ( ) ) {
BT_INP = SerieBT. leer ( ) ; // Lee el byte entrante desde Bluetooth
De serie. escribir ( BT_INP ) ; // Hacer eco del byte leído al monitor serie
  }

  // Verifica los datos de Bluetooth recibidos y configura el estado del LED
  si ( BT_INP == '1' ) {
escritura digital ( LED_PIN , ALTO ) ; // Enciende el LED si se recibe '1'
  } demás si ( BT_INP == '0' ) {
escritura digital ( LED_PIN , BAJO ) ; //Apaga el LED si se recibe '0'
  }
}

Este código es para que un microcontrolador ESP32 controle un LED mediante Bluetooth. Incluye una biblioteca para comunicación Bluetooth. A continuación, define el pin 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 para ENCENDIDO, 0 para APAGADO).

Diagrama de circuito

El diagrama del circuito es simple, con un LED conectado al pin D15 del ESP32. Puede definir cualquier otro GPIO para el control de LED.

Relacionado: Referencia de distribución de pines de ESP32: guía definitiva

Hardware

En hardware, necesitarás una placa de pruebas, una placa ESP32 y un LED. Conecte el ESP32 con el sistema y cargue el programa en él.

Ahora envíe 1 y 0 desde la aplicación de comunicaciones Bluetooth Serial del teléfono Android.

Verá la misma entrada en el terminal Arduino IDE recibida desde el teléfono Android.

Producción

Una vez que envíe el valor Alto o 1, el LED se encenderá; de manera similar, cuando envíe el valor Bajo, el LED se apagará.

Establecer un botón personalizado

También puede configurar un botón personalizado dentro de la aplicación Serial Bluetooth. Por ejemplo, se puede crear un botón de valores ALTOS y BAJOS. De esta manera, no es necesario escribir los valores manualmente. En su lugar, sólo tiene que presionar el botón de acceso directo y ejecutará la instrucción que configuró.

Nota: Para abrir la configuración del botón, mantenga presionado el botón.

Para establecer el valor del botón ALTO, defina las siguientes configuraciones.

Similitud para el valor del botón BAJO, debe definir las siguientes configuraciones.

Hemos conectado con éxito la placa ESP32 con un teléfono Android mediante Bluetooth. Ahora puedes crear muchos proyectos usándolo. Por ejemplo, puede controlar sus electrodomésticos utilizando el ESP32 Bluetooth a través de un circuito de relé.

Relacionado: Relé con ESP32 usando Arduino IDE

Conclusión

ESP32 es una placa de microcontrolador avanzada con capacidades de Wi-Fi y Bluetooth. Ambos módulos integrados le ayudan a diseñar proyectos avanzados y controlar los periféricos de forma inalámbrica. De manera similar, puedes conectar ESP32 con un teléfono Android y realizar diferentes operaciones. Para ello, necesitará instalar la aplicación Bluetooth Serial de Android. Una vez instalado, abra el código de ejemplo para ESP32 Bluetooth y cárguelo en su placa. Una vez cargado el código, puedes vincularlo con tu placa a través de un teléfono Android.