Central — qué es, su rol en BLE y cómo escanea dispositivos

Autor: IT Sectr Publicado: 2026-07-15 Tiempo de lectura: 8 min

Central es un dispositivo en la arquitectura Bluetooth Low Energy que inicia el escaneo, establece una conexión y gestiona el intercambio de datos con dispositivos periféricos. En el contexto del desarrollo móvil, Central es un smartphone o tablet con iOS o Android que se conecta a sensores BLE, rastreadores de actividad y accesorios inteligentes. Según Bluetooth Core Specification 5.4 (2023), Central puede soportar simultáneamente hasta 7 conexiones simultáneas con diferentes Periféricos, aunque la limitación real depende del fabricante del chip y la versión del SO. Core Bluetooth en iOS y android.bluetooth.le en Android proporcionan una API completa para gestionar el rol Central.

Puntos clave

  • Central es un dispositivo BLE activo que escanea, se conecta y gestiona el intercambio con periféricos.
  • El escaneo se realiza a través de paquetes de publicidad — Central puede filtrar dispositivos por UUID de servicio para ahorrar energía.
  • Un solo Central puede soportar simultáneamente hasta 7 conexiones con diferentes Periféricos (depende de la implementación).
  • En el desarrollo móvil, Central es un smartphone que usa Core Bluetooth (iOS) o android.bluetooth.le (Android).
  • El rol Central consume más energía que el Periférico debido al escaneo constante y al procesamiento de datos.

¿Qué es Central en BLE?

Central es un cliente GATT en la arquitectura Bluetooth Low Energy que inicia todas las comunicaciones. A diferencia de Periférico, que espera pasivamente las conexiones y anuncia sus servicios, Central escanea activamente el aire, descubre paquetes de publicidad e inicia conexiones.

El modelo asimétrico Central-Periférico es una característica fundamental de BLE. Central gestiona la lógica de interacción: decide a qué dispositivo conectarse, qué servicios explorar y qué características leer y escribir. Periférico actúa como servidor de datos — almacena servicios y características, pero no inicia conexiones.

Según Bluetooth Core Specification 5.4 (2023), un dispositivo puede ser simultáneamente Central y Periférico (rol dual). Por ejemplo, un smartphone puede ser Central para una pulsera de actividad y Periférico para otro smartphone que transfiere archivos. Sin embargo, la operación simultánea en ambos roles aumenta el consumo de energía y la complejidad de la gestión de conexiones.

En el ecosistema del desarrollo móvil, el rol Central es el escenario más común. Una aplicación en un smartphone busca dispositivos BLE (sensores, auriculares, pulseras), se conecta a ellos y recibe datos. El desarrollador usa la API del sistema operativo para trabajar con Central: CBCentralManager en iOS, BluetoothLeScanner y BluetoothGatt en Android.

Proceso de escaneo de dispositivos

Escaneo es la primera etapa de la operación de Central. El dispositivo escucha en los canales de radio BLE (37, 38, 39) para detectar paquetes de publicidad que los Periféricos envían periódicamente. Cada paquete de publicidad contiene el nombre del dispositivo, una lista de UUID de servicio y datos personalizados.

Central puede operar en dos modos de escaneo: escaneo pasivo (solo recepción de paquetes de publicidad) y escaneo activo (envío de solicitud de escaneo para obtener datos adicionales mediante respuesta de escaneo). El escaneo pasivo ahorra energía pero proporciona menos información. El escaneo activo permite obtener datos completos del paquete de publicidad, incluido el nombre del dispositivo y la lista completa de servicios.

El filtrado por UUID es una optimización importante. Central puede escanear solo dispositivos con un UUID de servicio específico, ignorando el resto. Esto no solo ahorra energía, sino que también simplifica la lógica de la aplicación: el delegado recibe solo dispositivos relevantes.

swift
import CoreBluetooth

class BLECentralManager: NSObject, CBCentralManagerDelegate {

    private var centralManager: CBCentralManager!

    override init() {
        super.init()
        centralManager = CBCentralManager(
            delegate: self,
            queue: nil
        )
    }

    func centralManagerDidUpdateState(_ central: CBCentralManager) {
        if central.state == .poweredOn {
            central.scanForPeripherals(
                withServices: nil,
                options: [
                    CBCentralManagerScanOptionAllowDuplicatesKey: false
                ]
            )
        }
    }
}

Gestión de conexiones

Gestión de conexiones es la responsabilidad clave de Central. Después de descubrir un Periférico adecuado, Central inicia una conexión. Una conexión BLE se establece mediante un procedimiento de establecimiento de conexión que incluye intercambio de parámetros: intervalo de conexión, latencia de esclavo y tiempo de supervisión.

El intervalo de conexión determina con qué frecuencia Central y Periférico intercambian datos después de la conexión. El intervalo puede variar de 7.5 ms a 4 segundos. Cuanto más corto es el intervalo, mayor es el rendimiento, pero también mayor es el consumo de energía. Latencia de esclavo permite que el Periférico omita varios eventos de conexión para ahorrar energía. El tiempo de supervisión es el tiempo máximo sin respuesta después del cual la conexión se considera perdida.

Central es responsable de terminar la conexión después de completar el intercambio de datos. Los dispositivos BLE generalmente no mantienen una conexión permanente — Central se conecta, obtiene datos y se desconecta. Este es un patrón estándar para sensores IoT: Central escanea, encuentra un sensor de temperatura, se conecta, lee el valor y se desconecta.

ParámetroRangoPropósitoRecomendación
Intervalo de conexión7.5 ms – 4 sFrecuencia de intercambio de datos30–50 ms para streaming, 1–4 s para datos poco frecuentes
Latencia de esclavo0–499 eventosOmisión de eventos del Periférico4–10 para ahorro de energía del sensor
Tiempo de supervisión100 ms – 32 sTiempo de espera de pérdida de conexión6–10 segundos para la mayoría de escenarios
MTU23–517 bytesTamaño del paquete ATTSolicitar el máximo al conectar

Central en iOS: Core Bluetooth

Core Bluetooth es el framework de Apple para trabajar con BLE en iOS y macOS. La clase CBCentralManager proporciona la API completa para implementar el rol Central: escaneo, conexión, gestión de conexiones. El trabajo con Central en iOS se basa en un modelo de delegado: CBCentralManagerDelegate recibe eventos de cambio de estado, descubrimiento de dispositivos y resultados de conexión.

Los pasos principales para Central en iOS: inicializar CBCentralManager, verificar el estado de Bluetooth, iniciar el escaneo, manejar los dispositivos descubiertos a través del delegado, conectarse al Periférico seleccionado, descubrir servicios y características, intercambiar datos.

swift
// Conectarse al Peripheral descubierto
func centralManager(
    _ central: CBCentralManager,
    didDiscover peripheral: CBPeripheral,
    advertisementData: [String: Any],
    rssi RSSI: NSNumber
) {
    // Mantener referencia al periférico y conectar
    discoveredPeripheral = peripheral
    central.connect(peripheral, options: nil)
}

// Conexión exitosa
func centralManager(
    _ central: CBCentralManager,
    didConnect peripheral: CBPeripheral
) {
    peripheral.delegate = self
    peripheral.discoverServices(nil)
}

iOS limita el trabajo en segundo plano de BLE: en segundo plano, una aplicación solo puede escanear con claves específicas en Info.plist, y los dispositivos conectados pueden notificar a Central sobre cambios de datos. Para aplicaciones críticas (dispositivos médicos), use Modos en segundo plano con la clave bluetooth-central.

Central en Android: BluetoothLeScanner

Android proporciona la API BluetoothLeScanner para escanear dispositivos BLE y BluetoothGatt para la gestión de conexiones. A partir de Android 5.0 (API 21), BluetoothLeScanner reemplazó al obsoleto startLeScan. La API requiere permisos BLUETOOTH, BLUETOOTH_ADMIN y ACCESS_FINE_LOCATION (o ACCESS_BACKGROUND_LOCATION para Android 10+).

java
import android.bluetooth.le.*;
import android.bluetooth.*;

private BluetoothLeScanner scanner;
private BluetoothGatt bluetoothGatt;

// Configurar escaneo
ScanSettings settings = new ScanSettings.Builder()
    .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
    .build();

// Iniciar escaneo
scanner.startScan(null, settings, new ScanCallback() {
    @Override
    public void onScanResult(
            int callbackType,
            ScanResult result
    ) {
        BluetoothDevice device = result.getDevice();
        // Conectar al dispositivo
        bluetoothGatt = device.connectGatt(
            context, false, gattCallback
        );
    }
});

En Android, es importante considerar las restricciones de escaneo: a partir de Android 7 (API 24), el escaneo no puede iniciarse más de 5 veces por 30 segundos en aplicaciones que no usan ubicación. Android 12+ requiere permisos BLUETOOTH_SCAN, BLUETOOTH_CONNECT y ADVERTISE, así como solicitudes en tiempo de ejecución de estos permisos.

Consumo de energía de Central

El consumo de energía de Central es mayor que el del Periférico debido a la necesidad de escanear constantemente los canales de radio. Central recibe paquetes BLE, los procesa, gestiona conexiones y a menudo realiza cálculos en el procesador de la aplicación. Según Bluetooth SIG, el escaneo consume entre 30 mA y 100 mA dependiendo del modo.

Existen varias estrategias de ahorro de energía para Central. Escaneo por intervalos es el método más efectivo: Central escanea en ventanas cortas (ventana de escaneo) con pausas largas (intervalo de escaneo). Por ejemplo, con una ventana de escaneo de 30 ms y un intervalo de escaneo de 1000 ms, el consumo de energía se reduce en un 97% en comparación con el escaneo continuo.

Una optimización adicional es el filtrado por UUID. Central procesa solo los paquetes de publicidad relevantes más rápido, ignorando el resto. Esto reduce la carga de la CPU y aumenta la duración de la batería del dispositivo. También se recomienda detener el escaneo inmediatamente después de encontrar el dispositivo deseado y no mantener la conexión más tiempo del necesario.

Preguntas frecuentes

¿Puede un smartphone ser Central y Periférico al mismo tiempo?

Sí, BLE soporta rol dual: un dispositivo puede ser simultáneamente Central para algunos dispositivos y Periférico para otros. Por ejemplo, un smartphone lee datos de un sensor (como Central) y simultáneamente anuncia su propio servicio (como Periférico) para transmitir datos a otro dispositivo.

¿Cuántos dispositivos puede atender simultáneamente un Central?

La especificación BLE define un límite de 7 conexiones para un solo Central. En la práctica, la limitación depende del fabricante del chip: los chips Nordic nRF52840 soportan hasta 20 conexiones, mientras que algunos adaptadores Bluetooth económicos no soportan más de 3–4.

¿Por qué mi Central no detecta mi sensor BLE?

Las razones pueden ser varias: el sensor no está publicitando (no está en modo de publicidad), el filtro UUID es demasiado estricto, el Bluetooth está apagado en el smartphone, faltan permisos necesarios (ubicación en Android), o el sensor está fuera de alcance (se recomienda hasta 10 metros en interiores).

¿Es necesario mantener la conexión con un dispositivo BLE constantemente?

No necesariamente. Para muchos escenarios se utiliza el patrón conectar-y-leer: Central escanea, se conecta, lee los datos necesarios y se desconecta. Una conexión constante solo es necesaria para datos en streaming (pulso, ECG) o control de dispositivos en tiempo real.

¿Cómo reducir el consumo de energía de Central durante el escaneo?

Use escaneo por intervalos con una ventana de escaneo de 30–50 ms y un intervalo de escaneo de 500–1000 ms. Filtre dispositivos por UUID para procesar solo paquetes de publicidad relevantes. Desactive el escaneo inmediatamente después de encontrar el Periférico deseado.

Resumen

  • Central es un participante activo de la conexión BLE que inicia el escaneo, la conexión y la gestión del intercambio de datos.
  • El proceso de escaneo implica recibir paquetes de publicidad en los canales 37, 38, 39 con la capacidad de filtrar por UUID de servicio.
  • Después de descubrir un Periférico, Central establece una conexión con parámetros configurables — intervalo de conexión, latencia de esclavo, tiempo de supervisión.
  • En el desarrollo móvil, Central se implementa mediante CBCentralManager (iOS) o BluetoothLeScanner + BluetoothGatt (Android).
  • Un solo Central puede gestionar simultáneamente hasta 7 conexiones en la configuración Bluetooth estándar.
  • El consumo de energía de Central se puede optimizar mediante escaneo por intervalos y filtrado por UUID para aumentar la duración de la batería.
  • La gestión adecuada del ciclo de vida de la conexión — desde el descubrimiento hasta la desconexión — determina la eficiencia de una aplicación BLE.

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también