5주차_참고 : BLE 광고(Advertising) - dhryu60/SmartDevice_2025-1 GitHub Wiki

BLE(Bluetooth Low Energy) 프로그래밍에서 **광고(Advertising)**는 BLE 장치가 자신의 존재와 제공하는 서비스 정보를 주변의 다른 BLE 장치들에게 알리는 중요한 과정입니다. 이를 통해 BLE 클라이언트 장치들은 스캔(Scanning) 과정을 통해 광고 중인 장치들을 발견하고, 필요한 경우 연결을 시도할 수 있습니다.

광고의 주요 역할:

  1. 장치 발견: BLE 서버 장치는 주기적으로 광고 패킷을 전송하여 자신의 존재를 알립니다. 이를 통해 주변의 BLE 클라이언트 장치들은 해당 서버 장치를 발견할 수 있습니다.

  2. 서비스 정보 제공: 광고 패킷에는 장치의 이름, 서비스 UUID 등 클라이언트가 장치를 식별하고 어떤 서비스를 제공하는지 이해하는 데 필요한 정보가 포함될 수 있습니다.

ESP32에서의 BLE 광고 구현 예시:

ESP32를 BLE 서버로 설정하고 광고를 시작하는 기본적인 코드 구조는 다음과 같습니다:

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

void setup() {
  Serial.begin(115200);
  BLEDevice::init("ESP32-BLE-Server"); // 장치 이름 설정
  BLEServer *pServer = BLEDevice::createServer();
  
  // 서비스 및 특성 정의는 여기에 추가됩니다.

  // 광고 시작
  BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
  pAdvertising->start();
  Serial.println("BLE 광고 시작됨");
}

void loop() {
  // 메인 루프 코드
}

코드 설명:

  • BLEDevice::init("ESP32-BLE-Server");: BLE 장치의 이름을 "ESP32-BLE-Server"로 초기화합니다.

  • BLEDevice::createServer();: BLE 서버 인스턴스를 생성합니다.

  • BLEDevice::getAdvertising();: 광고 객체를 가져와 start() 메서드를 호출하여 광고를 시작합니다.

이러한 과정을 통해 ESP32는 BLE 서버로서 자신의 존재와 서비스를 광고하게 되며, 주변의 BLE 클라이언트 장치들은 이를 스캔하여 발견할 수 있습니다.

BLE 광고에 대한 보다 상세한 내용과 예제는 [BLE 개발 관련 내용 정리](https://velog.io/@embeddedjune/BLE-개발-관련-내용-정리)를 참고하시기 바랍니다.

⚠️ **GitHub.com Fallback** ⚠️