🛠 Publicité BLE 5 en longue portée (Coded PHY)

ESP32-C3 · intermediaire · Schéma : IMG-esp32-c3-intermediaire-3-ble5-advertise-long-range.svg — ESP32-C3 émettant une publicité BLE 5 sur PHY codé 125 kbit/s, ondes de portée doublée vers un smartphone

Objetivos

El ESP32-C3 es una radio Bluetooth 5.0: conoce el PHY codificado (Coded PHY, 125 o 500 kbit/s) que duplica o cuadruplica el alcance de las publicaciones en comparación con el BLE 4.2 clásico a 1 Mbit/s. Configurarás la pila Bluedroid para emitir en este PHY extendido y lo verificarás con un central compatible.

Material

Código completo

#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include "esp_gap_ble_api.h"

// Publicite : drapeau LE General + nom "C3 LONGRANGE"
static uint8_t adv_data[] = {
  0x02, 0x01, 0x06,
  0x0D, 0x09, 'C','3',' ','L','O','N','G','R','A','N','G','E'
};

void setup {
  Serial.begin(115200);
  BLEDevice::init("C3-LONGRANGE");

  // BLE 5 : emission sur PHY code 125 kbit/s (longue portee)
  esp_ble_gap_config_own_le_phy(BLE_LE_CODED_PHY);
  esp_ble_gap_config_adv_data_raw(adv_data, sizeof(adv_data));

  esp_ble_adv_params_t params = {
    .adv_int_min        = 0x100,
    .adv_int_max        = 0x160,
    .adv_type           = ADV_TYPE_IND,
    .own_addr_type      = BLE_ADDR_TYPE_PUBLIC,
    .channel_map        = ADV_CHNL_ALL,
    .adv_filter_policy  = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY,
  };
  esp_ble_gap_start_advertising(&params);
  Serial.println(F("Publicite emise sur PHY code (BLE 5)"));
}

void loop { delay(1000); }

Verificación esperada

nRF Connect en un central BLE 5 muestra «C3 LONGRANGE»; al alejar la tarjeta varios cientos de metros al aire libre, la publicación sigue siendo recibida donde una publicación clásica de 1 Mbit/s habría desaparecido. El registro del controlador indica el PHY codificado utilizado.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales