Central — qu'est-ce que c'est, son rôle dans BLE et comment il scanne les appareils

Auteur : IT Sectr Publié le : 2026-07-15 Temps de lecture : 8 min

Central est un appareil dans l'architecture Bluetooth Low Energy qui initie le scan, établit une connexion et gère l'échange de données avec les périphériques. Dans le contexte du développement mobile, Central est un smartphone ou une tablette sous iOS ou Android qui se connecte aux capteurs BLE, aux trackers de fitness et aux accessoires intelligents. Selon Bluetooth Core Specification 5.4 (2023), Central peut prendre en charge simultanément jusqu'à 7 connexions simultanées avec différents Périphériques, bien que la limitation réelle dépende du fabricant de la puce et de la version de l'OS. Core Bluetooth sur iOS et android.bluetooth.le sur Android fournissent une API complète pour gérer le rôle Central.

Points clés

  • Central est un appareil BLE actif qui scanne, se connecte et gère l'échange avec les périphériques.
  • Le scan s'effectue via des paquets de publicité — Central peut filtrer les appareils par UUID de service pour économiser de l'énergie.
  • Un seul Central peut prendre en charge simultanément jusqu'à 7 connexions avec différents Périphériques (selon l'implémentation).
  • Dans le développement mobile, Central est un smartphone utilisant Core Bluetooth (iOS) ou android.bluetooth.le (Android).
  • Le rôle Central consomme plus d'énergie que le Périphérique en raison du scan constant et du traitement des données.

Qu'est-ce que Central dans BLE?

Central est un client GATT dans l'architecture Bluetooth Low Energy qui initie toutes les communications. Contrairement au Périphérique, qui attend passivement les connexions et annonce ses services, Central scanne activement les ondes, découvre les paquets de publicité et initie les connexions.

Le modèle asymétrique Central-Périphérique est une caractéristique fondamentale de BLE. Central gère la logique d'interaction : il décide à quel appareil se connecter, quels services explorer et quelles caractéristiques lire et écrire. Périphérique agit comme un serveur de données — il stocke les services et les caractéristiques mais n'initie pas les connexions.

Selon la Bluetooth Core Specification 5.4 (2023), un appareil peut être simultanément Central et Périphérique (double rôle). Par exemple, un smartphone peut être Central pour un bracelet fitness et Périphérique pour un autre smartphone transférant des fichiers. Cependant, le fonctionnement simultané dans les deux rôles augmente la consommation d'énergie et la complexité de la gestion des connexions.

Dans l'écosystème du développement mobile, le rôle Central est le scénario le plus courant. Une application sur un smartphone recherche des appareils BLE (capteurs, écouteurs, bracelets), se connecte à eux et reçoit des données. Le développeur utilise l'API du système d'exploitation pour travailler avec Central : CBCentralManager sur iOS, BluetoothLeScanner et BluetoothGatt sur Android.

Processus de scan des appareils

Le scan est la première étape du fonctionnement de Central. L'appareil écoute sur les canaux radio BLE (37, 38, 39) pour détecter les paquets de publicité que les Périphériques envoient périodiquement. Chaque paquet de publicité contient le nom de l'appareil, une liste d'UUID de service et des données personnalisées.

Central peut fonctionner en deux modes de scan : le scan passif (réception uniquement des paquets de publicité) et le scan actif (envoi d'une demande de scan pour obtenir des données supplémentaires via une réponse de scan). Le scan passif économise de l'énergie mais fournit moins d'informations. Le scan actif permet d'obtenir les données complètes du paquet de publicité, y compris le nom de l'appareil et la liste complète des services.

Le filtrage par UUID est une optimisation importante. Central peut scanner uniquement les appareils avec un UUID de service spécifique, ignorant les autres. Cela non seulement économise de l'énergie, mais simplifie également la logique de l'application : le délégué ne reçoit que les appareils pertinents.

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
                ]
            )
        }
    }
}

Gestion des connexions

La gestion des connexions est la responsabilité clé de Central. Après avoir découvert un Périphérique approprié, Central initie une connexion. Une connexion BLE est établie via une procédure d'établissement de connexion qui comprend l'échange de paramètres : intervalle de connexion, latence esclave et délai de supervision.

L'intervalle de connexion détermine la fréquence à laquelle Central et Périphérique échangent des données après la connexion. L'intervalle peut varier de 7,5 ms à 4 secondes. Plus l'intervalle est court, plus le débit est élevé, mais aussi plus la consommation d'énergie est élevée. La latence esclave permet au Périphérique de sauter plusieurs événements de connexion pour économiser de l'énergie. Le délai de supervision est le temps maximum sans réponse après lequel la connexion est considérée comme perdue.

Central est responsable de la terminaison de la connexion après la fin de l'échange de données. Les appareils BLE ne maintiennent généralement pas une connexion permanente — Central se connecte, obtient les données et se déconnecte. C'est un modèle standard pour les capteurs IoT : Central scanne, trouve un capteur de température, se connecte, lit la valeur et se déconnecte.

ParamètrePlageObjectifRecommandation
Intervalle de connexion7,5 ms – 4 sFréquence d'échange de données30–50 ms pour le streaming, 1–4 s pour les données rares
Latence esclave0–499 événementsSaut d'événements du Périphérique4–10 pour l'économie d'énergie du capteur
Délai de supervision100 ms – 32 sDélai de perte de connexion6–10 secondes pour la plupart des scénarios
MTU23–517 octetsTaille du paquet ATTDemander le maximum à la connexion

Central sur iOS : Core Bluetooth

Core Bluetooth est le framework d'Apple pour travailler avec BLE sur iOS et macOS. La classe CBCentralManager fournit l'API complète pour implémenter le rôle Central : scan, connexion, gestion des connexions. Le travail avec Central sur iOS est basé sur un modèle de délégué : CBCentralManagerDelegate reçoit les événements de changement d'état, de découverte d'appareils et de résultats de connexion.

Les principales étapes pour Central sur iOS : initialiser CBCentralManager, vérifier l'état Bluetooth, démarrer le scan, gérer les appareils découverts via le délégué, se connecter au Périphérique sélectionné, découvrir les services et caractéristiques, échanger des données.

swift
// Se connecter au Périphérique découvert
func centralManager(
    _ central: CBCentralManager,
    didDiscover peripheral: CBPeripheral,
    advertisementData: [String: Any],
    rssi RSSI: NSNumber
) {
    // Conserver la référence au périphérique et se connecter
    discoveredPeripheral = peripheral
    central.connect(peripheral, options: nil)
}

// Connexion réussie
func centralManager(
    _ central: CBCentralManager,
    didConnect peripheral: CBPeripheral
) {
    peripheral.delegate = self
    peripheral.discoverServices(nil)
}

iOS limite le travail BLE en arrière-plan : en arrière-plan, une application ne peut scanner qu'avec des clés spécifiques dans Info.plist, et les appareils connectés peuvent notifier Central des changements de données. Pour les applications critiques (dispositifs médicaux), utilisez les modes d'arrière-plan avec la clé bluetooth-central.

Central sur Android : BluetoothLeScanner

Android fournit l'API BluetoothLeScanner pour scanner les appareils BLE et BluetoothGatt pour la gestion des connexions. À partir d'Android 5.0 (API 21), BluetoothLeScanner a remplacé l'ancien startLeScan. L'API nécessite les permissions BLUETOOTH, BLUETOOTH_ADMIN et ACCESS_FINE_LOCATION (ou ACCESS_BACKGROUND_LOCATION pour Android 10+).

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

private BluetoothLeScanner scanner;
private BluetoothGatt bluetoothGatt;

// Configurer le scan
ScanSettings settings = new ScanSettings.Builder()
    .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
    .build();

// Démarrer le scan
scanner.startScan(null, settings, new ScanCallback() {
    @Override
    public void onScanResult(
            int callbackType,
            ScanResult result
    ) {
        BluetoothDevice device = result.getDevice();
        // Se connecter à l'appareil
        bluetoothGatt = device.connectGatt(
            context, false, gattCallback
        );
    }
});

Sur Android, il est important de prendre en compte les restrictions de scan : à partir d'Android 7 (API 24), le scan ne peut pas être démarré plus de 5 fois par 30 secondes dans les applications qui n'utilisent pas la localisation. Android 12+ nécessite les permissions BLUETOOTH_SCAN, BLUETOOTH_CONNECT et ADVERTISE, ainsi que des demandes d'exécution de ces permissions.

Consommation d'énergie de Central

La consommation d'énergie de Central est plus élevée que celle du Périphérique en raison de la nécessité de scanner constamment les canaux radio. Central reçoit les paquets BLE, les traite, gère les connexions et effectue souvent des calculs sur le processeur de l'application. Selon Bluetooth SIG, le scan consomme entre 30 mA et 100 mA selon le mode.

Il existe plusieurs stratégies d'économie d'énergie pour Central. Le scan par intervalles est la méthode la plus efficace : Central scanne par courtes fenêtres (fenêtre de scan) avec de longues pauses (intervalle de scan). Par exemple, avec une fenêtre de scan de 30 ms et un intervalle de scan de 1000 ms, la consommation d'énergie est réduite de 97 % par rapport au scan continu.

Une optimisation supplémentaire est le filtrage par UUID. Central traite uniquement les paquets de publicité pertinents plus rapidement, ignorant les autres. Cela réduit la charge du processeur et augmente la durée de vie de la batterie de l'appareil. Il est également recommandé d'arrêter le scan immédiatement après avoir trouvé l'appareil souhaité et de ne pas maintenir la connexion plus longtemps que nécessaire.

Foire aux questions

Un smartphone peut-il être à la fois Central et Périphérique ?

Oui, BLE prend en charge le double rôle : un appareil peut être simultanément Central pour certains appareils et Périphérique pour d'autres. Par exemple, un smartphone lit les données d'un capteur (en tant que Central) et annonce simultanément son propre service (en tant que Périphérique) pour transmettre des données à un autre appareil.

Combien d'appareils un Central peut-il servir simultanément ?

La spécification BLE définit une limite de 7 connexions pour un seul Central. En pratique, la limitation dépend du fabricant de la puce : les puces Nordic nRF52840 prennent en charge jusqu'à 20 connexions, tandis que certains adaptateurs Bluetooth bon marché ne supportent pas plus de 3 à 4.

Pourquoi mon Central ne détecte-t-il pas mon capteur BLE ?

Les raisons peuvent être diverses : le capteur ne fait pas de publicité (pas en mode publicité), le filtre UUID est trop strict, le Bluetooth est désactivé sur le smartphone, les permissions nécessaires sont manquantes (localisation sur Android), ou le capteur est hors de portée (recommandé jusqu'à 10 mètres à l'intérieur).

Est-il nécessaire de maintenir la connexion avec un appareil BLE en permanence ?

Pas nécessairement. Pour de nombreux scénarios, le modèle connecter-et-lire est utilisé : Central scanne, se connecte, lit les données nécessaires et se déconnecte. Une connexion constante n'est nécessaire que pour les données en streaming (pouls, ECG) ou le contrôle d'appareil en temps réel.

Comment réduire la consommation d'énergie de Central pendant le scan ?

Utilisez le scan par intervalles avec une fenêtre de scan de 30 à 50 ms et un intervalle de scan de 500 à 1000 ms. Filtrez les appareils par UUID pour ne traiter que les paquets de publicité pertinents. Désactivez le scan immédiatement après avoir trouvé le Périphérique souhaité.

Résumé

  • Central est un participant actif de la connexion BLE qui initie le scan, la connexion et la gestion de l'échange de données.
  • Le processus de scan implique la réception de paquets de publicité sur les canaux 37, 38, 39 avec la capacité de filtrer par UUID de service.
  • Après avoir découvert un Périphérique, Central établit une connexion avec des paramètres configurables — intervalle de connexion, latence esclave, délai de supervision.
  • Dans le développement mobile, Central est implémenté via CBCentralManager (iOS) ou BluetoothLeScanner + BluetoothGatt (Android).
  • Un seul Central peut gérer simultanément jusqu'à 7 connexions dans la configuration Bluetooth standard.
  • La consommation d'énergie de Central peut être optimisée grâce au scan par intervalles et au filtrage UUID pour augmenter l'autonomie de la batterie.
  • Une gestion appropriée du cycle de vie de la connexion — de la découverte à la déconnexion — détermine l'efficacité d'une application BLE.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi