주기적인 광고(Advertising)와 연결(Connection) 두 가지 모드로 동작
광고모드에서는 디바이스가 주변에 자신의 존재를 알리며, 연결 모드에서는 실제 데이터 교환을 수행함. 이를 통해 저전력 상태에서도 효율적이 통신이 가능하게 됨.
배터리로 작동하는 디바이스에 적합하도록 설계되어 광고 모드에서는 낮은 전력으로 동작하며, 연결 시에도 최적의 전력 소비를 유지함
BLE 장치간에 Service, Characteristic 을 이용해서 데이터를 주고 받는 방법을 정의한 것
하나의 특성(characteristic)은 하나의 값과 n개의 디스크립터를 포함
특성의 값을 기술
데이터를 논리적인 단위로 나누는 역할을 하며 특성(characteristic)이라 불리는 데이터 단위를 하나 이상 포함하는 특성들의 집합. 서비스는 UUID라 불리우는 16bit(for officially adopted BLE Services) 혹은 128bit(for custom services) 구분자를 가지고 있음.
스마트홈, 스마트헬스케어, 스마트시티 등에서 센서 네트워킹, 위치 기반 서비스, 실내 위치 추적 등 다양한 응용이 가능함
| UUID (16-bit) | Full UUID | 변수명 | Access | 설명 |
|---|---|---|---|---|
0xFFF1 | 0000fff1-0000-1000-8000-00805f9b34fb | deviceId | Write | 디바이스 고유 ID (예: 시리얼넘버) |
0xFFF2 | 0000fff2-0000-1000-8000-00805f9b34fb | serverAddr | Write | 연결할 서버 주소 (예: iot.example.com) |
0xFFF3 | 0000fff3-0000-1000-8000-00805f9b34fb | serverPort | Write | 연결할 서버 포트 (예: 8883) |
0xFFF4 | 0000fff4-0000-1000-8000-00805f9b34fb | apSsid | Write | 연결할 Wi-Fi SSID |
0xFFF5 | 0000fff5-0000-1000-8000-00805f9b34fb | apPassword | Write | Wi-Fi 비밀번호 |
0xFFF6 | 0000fff6-0000-1000-8000-00805f9b34fb | certificate | Write | 디바이스에 업로드할 인증서 (PEM 형식) |
0xFFF7 | 0000fff7-0000-1000-8000-00805f9b34fb | privateKey | Write | 인증서에 대응하는 개인 키 |
0xFFF8 | 0000fff8-0000-1000-8000-00805f9b34fb | caCert | Write | CA 인증서 (서버 인증서 검증용) |
0xFFFA | 0000fffa-0000-1000-8000-00805f9b34fb | - | Read | 디바이스 정보 확인용 (모델명, 상태 등) |
BLE 장치 간의 역할(Role)과 동작 모드(Advertise/Scan/Connect)를 정의하여, 디바이스가 서로 어떻게 접근하고 연결되는지의 규칙을 제공
| 역할 | 설명 |
|---|---|
| Peripheral (주변장치) | 광고(Advertise)를 통해 자신의 존재를 알림. 일반적으로 센서, 웨어러블 등 |
| Central (중앙장치) | 주변의 광고를 스캔하고(Scan), 특정 Peripheral에 연결을 시도함. 보통 스마트폰이 해당 |
| Broadcaster | 데이터를 광고(Adv)만 하고 연결은 하지 않음 |
| Observer | 광고만 수신(Scan)하고 연결은 하지 않음 |
광고(데이터 전송만)
광고 수신
광고 수신 → 연결 시작
광고 송신 → 연결 수락