5주차_참고 : BLE 광고(Advertising) - dhryu60/SmartDevice_2025-1 GitHub Wiki
BLE(Bluetooth Low Energy) 프로그래밍에서 **광고(Advertising)**는 BLE 장치가 자신의 존재와 제공하는 서비스 정보를 주변의 다른 BLE 장치들에게 알리는 중요한 과정입니다. 이를 통해 BLE 클라이언트 장치들은 스캔(Scanning) 과정을 통해 광고 중인 장치들을 발견하고, 필요한 경우 연결을 시도할 수 있습니다.
광고의 주요 역할:
-
장치 발견: BLE 서버 장치는 주기적으로 광고 패킷을 전송하여 자신의 존재를 알립니다. 이를 통해 주변의 BLE 클라이언트 장치들은 해당 서버 장치를 발견할 수 있습니다.
-
서비스 정보 제공: 광고 패킷에는 장치의 이름, 서비스 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-개발-관련-내용-정리)를 참고하시기 바랍니다.