Tutorial ESP32 BLE (Bluetooth Low Energy) usando Arduino IDE

Tutorial ESP32 BLE (Bluetooth Low Energy) usando Arduino IDE
📋 Aquí podrás encontrar✍
  1. Introducción
  2. ¿Qué es BLE?
  3. ¿Por qué usar ESP32?
  4. Configuración del ambiente de desarrollo
  5. Código básico de BLE
  6. Ejemplo de proyectos de BLE
  7. Conclusión
  8. Preguntas frecuentes
    1. ¿Qué es BLE?
    2. ¿Qué es el ESP32?
    3. ¿Qué son los servicios, características y descripciones de BLE?

Introducción

En este tutorial aprenderás a utilizar la tecnología BLE (Bluetooth Low Energy) en tu ESP32 utilizando el IDE de Arduino. Bluetooth Low Energy es una de las soluciones más utilizadas cuando se trata de dispositivos de bajo consumo. Esto significa que puedes usar BLE para crear aplicaciones de IoT y dispositivos portátiles, y aún así mantener la duración de la batería.

¿Qué es BLE?

BLE es una tecnología inalámbrica de bajo consumo que se utiliza para la comunicación entre dispositivos cercanos, como teléfonos móviles, smartwatches y sensores remotos. BLE es frugal en cuanto al uso de energía, ya que se diseñó para transmitir pequeñas cantidades de datos durante períodos cortos de tiempo. Esto lo hace ideal para dispositivos de bajo consumo, como sensores, rastreadores, dispositivos portátiles y otros dispositivos IoT.

¿Por qué usar ESP32?

El ESP32 es una plataforma de desarrollo que puede ejecutar aplicaciones de bajo consumo y es adecuado para dispositivos IoT con batería. Con su bajo consumo de energía y sus capacidades de conectividad inalámbrica, el ESP32 es una opción popular para los fabricantes de IoT.

Configuración del ambiente de desarrollo

Antes de empezar a trabajar con BLE, necesitarás configurar tu ambiente de desarrollo. Para empezar, necesitarás descargar e instalar el software de Arduino IDE desde su sitio web oficial. Luego, tendrás que descargar e instalar el paquete de ESP32 en el Arduino IDE. Asegúrate de seguir las instrucciones de instalación cuidadosamente para evitar problemas.

Código básico de BLE

Para conectarte a un dispositivo vía BLE, primero necesitas crear un servidor BLE. Esto se hace usando el objeto 'BLEServer'. Una vez que tienes un servidor configurado, debes crear un objeto 'BLEService', que representa un servicio en tu servidor. Cada servicio puede tener múltiples características, que representan los datos que se comunicarán a través de BLE.

El siguiente código básico de BLE accionará una alerta en el teléfono celular cuando detecta que un botón se ha presionado:

// Importe las librerías necesarias
#include
#include
#include

// Defina los pines
#define LED 2
#define BOTON 0

// Defina los UUIDs
#define SERVICE_UUID "19B10000-E8F2-537E-4F6C-D104768A1214"
#define CHARACTERISTIC_UUID "19B10001-E8F2-537E-4F6C-D104768A1214"

// Instancie las clases BLE
BLECharacteristic *pCharacteristic;
bool deviceConnected = false;
bool oldDeviceConnected = false;
uint32_t value = 0;

void setup() {
Serial.begin(115200);

pinMode(LED, OUTPUT);
pinMode(BOTON, INPUT_PULLUP);

// Crear servidor BLE
BLEDevice::init("ESP32");

// Instalar Servidor BLE
BLEServer *pServer = BLEDevice::createServer();
BLEService *pService = pServer->createService(SERVICE_UUID);

// Crear una Característica BLE
pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);

// Iniciar el Servicio BLE
pService->start();

// Configurar anuncio BLE
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
pAdvertising->addServiceUUID(pService->getUUID());
pAdvertising->start();

Serial.println("Listo para IoT");
}

void loop() {

// Escribir valores a través de BLE
if (deviceConnected) {
digitalWrite(LED, HIGH);
pCharacteristic->setValue((uint8_t*)&value, 4);
pCharacteristic->notify();
value++;
delay(10); // Delay entre envío de datos
}
else {
digitalWrite(LED, LOW);
}

// Conexión de enrutamiento BLE
if (deviceConnected != oldDeviceConnected) {
if (deviceConnected) {
Serial.println("Dispositivo conectado");
}
else {
Serial.println("Dispositivo desconectado");
}
oldDeviceConnected = deviceConnected;
}

// Detectar si el botón ha sido presionado
if (!digitalRead(BOTON)) {
digitalWrite(LED, HIGH);
delay(200);
digitalWrite(LED, LOW);
delay(200);
}

// Desconectar si la app BLE se ha desconectado
if (!pServer->isConnected()) {
deviceConnected = false;
pServer->startAdvertising();
}

}

Ejemplo de proyectos de BLE

Hay muchas aplicaciones para la tecnología BLE, desde seguimiento de objetos hasta control de dispositivos IoT. Aquí hay algunos proyectos comunes que se pueden hacer con BLE:

  • Monitor de salud portátil usando sensores BLE
  • Control de la iluminación del hogar a través de una interfaz de usuario móvil BLE
  • Seguimiento de inventario automatizado con etiquetas BLE
  • Robots controlados a través de la tecnología BLE

Conclusión

En este tutorial, aprendimos sobre la tecnología BLE y cómo utilizarla en nuestro ESP32 con el IDE de Arduino. Esperamos que este tutorial te haya ayudado a entender cómo funciona BLE y cómo puedes usarlo en tus próximos proyectos de IoT. Te animamos a seguir explorando las capacidades del BLE y crear proyectos emocionantes y útiles.

Preguntas frecuentes

¿Qué es BLE?

BLE es una tecnología inalámbrica de bajo consumo que se utiliza para la comunicación entre dispositivos cercanos, como teléfonos móviles, smartwatches y sensores remotos.

¿Qué es el ESP32?

El ESP32 es una plataforma de desarrollo que puede ejecutar aplicaciones de bajo consumo y es adecuado para dispositivos IoT con batería.

¿Qué son los servicios, características y descripciones de BLE?

Un servicio es un conjunto de características en el dispositivo periférico. Cada característica representa un solo valor o conjunto de valores que se pueden leer o escribir. Las descripciones proporcionan información adicional, como el tipo de datos que se transmitirán a través de BLE.
[nekopost slugs="esp32-vs-esp8266,sensor-de-efecto-hall-esp32-arduino-ide,vuelva-a-conectar-esp32-la-conexion-wifi-perdida,lenguajes-de-programacion-esp32-uso,toma-maxima-de-voltaje-esp32,programacion-esp32-con-c,esp32-spi-arduino-ide,escanear-la-direccion-i2c-esp32-arduino-ide,instale-el-controlador-de-serie-esp32-cp2102"]

Deja una respuesta

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

Subir