ESP32 BLE - cchamchi/ESP32 GitHub Wiki
https://github.com/jpbrucker/BLE_HID/blob/master/BLE_HID/HIDServiceBase.cpp
http://eleccelerator.com/tutorial-about-usb-hid-report-descriptors/
https://github.com/nkolban/ESP32_BLE_Arduino
https://github.com/nkolban/esp32-snippets/issues/230
http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=lecture_tip&wr_id=20
https://medium.com/zoyi-blog/bluetooth-low-energy-ble-84b03705ffca ์ค๋ช ์ข๋ค
BLE ๋ธ๋ฃจํฌ์ค ๋ชจ๋์ ์ด์ฉํด์ ๋ค์ํ ์ฑ๊ณผ ์ฅ์น๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ๋จผ์ BLE ์ ๊ตฌ์กฐ์ ์ปจ์ , ์คํ์ ๋ํด์ ์ดํดํ ํ์๊ฐ ์์ต๋๋ค. ๊ตญ๋ด์ธ์ ์๋ฃ ์ค ๋น๊ต์ ์ดํด๊ฐ ์ฌ์ด ์๋ฃ๋ค์ ์ ๋ฆฌํ์ต๋๋ค.
BLUETOOTH LOW ENERGY(BLE)
BLE๋ ์ข ์ข Bluetooth Smart ๋ก๋ ๋ถ๋ฆฌ๋ฉฐ classic bluetooth์ ๊ฒฝ๋ํ ๋ฒ์ ์ ๋ชฉํ๋ก ๋ธ๋ฃจํฌ์ค 4.0์ ์ผ๋ถ๋ก ๋ฐํ๋์์ต๋๋ค. Classic bluetooth์ ๊ฒน์น๋ ๋ถ๋ถ์ด ์กด์ฌํ์ง๋ง BLE๋ ์์ ํ ๋ค๋ฅธ ํ์ค์ผ๋ก ๋ธ๋ฃจํฌ์ค ํ์คํ ๊ทธ๋ฃน์ธ Bluetooth SIG์ ์ํด์ ๊ฐ๋ฐ๋๊ธฐ ์ ๊น์ง Nokia์ ์ฌ๋ด ํ๋ก์ ํธ(Wibree)๋ก ์์ํ์์ต๋๋ค.
BLE ์ง์ ํ๋ซํผ
- iOS5+ (iOS7+ preferred)
- Android 4.3+ (numerous bug fixes in 4.4+)
- Apple OS X 10.6+
- Windows 8 (XP, Vista and 7 only support Bluetooth 2.1)
- GNU/Linux Vanilla BlueZ 4.93+
GAP
GAP๋ Generic Access Profile์ ์ฝ์๋ก ๋ธ๋ฃจํฌ์ค์์ ๊ฒ์(advertising)์ ์ฐ๊ฒฐ(connection)์ ์ ์ดํฉ๋๋ค. GAP์ ํน์ ์ฅ์น๊ฐ ๋ค๋ฅธ ์ฅ์น๋ค์๊ฒ ์ด๋ป๊ฒ ๋ณด์ฌ์ง๋๋ก ํ ๊ฒ์ธ๊ฐ์ ์ด๋ป๊ฒ ๋ ์ฅ์น๋ฅผ ์ฐ๊ฒฐํ ๊ฒ์ธ๊ฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. GAP์ ์ฅ์น๋ค์ด ๋งก์ ์ ์๋ ๋ค์ํ ์ญํ ๋ค์ ๋ํด ์ ์ํฉ๋๋ค. ๊ทธ ์ค ๊ฐ์ฅ ํต์ฌ์ด ๋๋ ์ปจ์ ์ Central ์ฅ์น์ Peripheral ์ฅ์น์ ๋๋ค.
Peripheral ์ฅ์น๋ ์ฃผ๋ก ์๊ณ , ์ ์ ๋ ฅ์ผ๋ก ๋์ํ๊ณ , ์ ํ๋ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ง ์ฅ์น๋ค๋ก ๋ณด๋ค ๋ฆฌ์์ค๊ฐ ํ๋ถํ Central ์ฅ์น์ ์ฐ๊ฒฐ๋์ด ๋์ํ๋๋ก ์ค๊ณ๋ ์ฅ์น์ ๋๋ค. Heart Rate Monitor(์ฌ๋ฐ์ธก์ ๊ธฐ), BLE ๊ทผ์ ์ผ์ ํ๊ทธ ๋ฑ์ด ํด๋น๋ฉ๋๋ค. ์ดํ ๊ธ์์๋ ์ดํด์ ํธ์๋ฅผ ์ํด Peripheral ์ฅ์น๋ฅผ [์ผ์ ์ฅ์น]๋ก ํํํฉ๋๋ค.
Central ์ฅ์น๋ ํฐ์ด๋ ํ๋ธ๋ฆฟ๊ณผ ๊ฐ์ด ์ถฉ๋ถํ ์ ์๊ณผ ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ถ ์ฅ์น์ ๋๋ค. ์ดํ ๊ธ์์๋ ์ดํด์ ํธ์๋ฅผ ์ํด [ํฐ] ๋ฑ์ผ๋ก ํํํฉ๋๋ค.
ADVERTISING AND SCAN RESPONSE DATA
GAP์ ์ด์ฉํด์ ๊ฒ์(Advertising)๋ฅผ ํ ๋ Advertising Data Payload์ Scan Response Payload ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ๋ ๊ฐ์ง๋ ์๋ก ๊ตฌ๋ถ๋๋ฉฐ 31๋ฐ์ดํธ๊น์ง ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ํ์ง๋ง Advertising Data Payload ๊ฐ ํ์์ธ๋ฐ ๋ฐํด Scan Response Payload๋ ์ ํ์ ์ ๋๋ค. Advertising Data Payload ๋ Central ์ฅ์น๊ฐ ์ธ์ํ ์ ์๋๋ก peripheral ์ฅ์น(์ผ์์ฅ์น)์์ ๊ณ์ ์ก์ถ๋๋ ๋ฐ์ดํฐ์ ๋๋ค. Scan Response Payload ๋ central ์ฅ์น(ํฐ)์์ ์ฅ์น ์ด๋ฆ๊ณผ ๊ฐ์ด ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ์๊ตฌํ๊ธฐ ์ํด ์ ์๋ ๊ฒ์ผ๋ก ์ ํ์ ์ผ๋ก ๊ตฌํ๋ฉ๋๋ค.
ADVERTISING PROCESS
Advertising ๊ณผ์ ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง๋ ์๋ ๊ทธ๋ฆผ์ ์ฐธ๊ณ ํ์ธ์.
๋จผ์ ์ผ์์ฅ์น๋ ํน์ ํ ๊ฒ์ ์ฃผ๊ธฐ(advertising interval)๋ฅผ ๊ฐ์ง๊ณ , ์ด ์ฃผ๊ธฐ๋ง๋ค advertising packet์ ์ ์กํฉ๋๋ค. ์ฃผ๊ธฐ๊ฐ ๊ธธ์ด์ง์๋ก ์ ๋ ฅ์๋ชจ๋ฅผ ์ค์ฌ์ฃผ์ง๋ง Central ์ฅ์น์์์ ๋ฐ์์ด ๋๋ ค์ง๋๋ค. ๋ง์ฝ ์์ ์ฅ์น(central ์ฅ์น)์์ Scan Response Data ์ ๊ด์ฌ์ด ์๋ค๋ฉด ์ถ๊ฐ๋ก ์์ฒญ์ ๋ณด๋ผ ์ ์๊ณ peripheral ์ด ์ฌ๊ธฐ์ ๋ฐ์ดํฐ์ ํจ๊ป ์๋ตํ ๊ฒ์ ๋๋ค.
BROADCASTING, BEACON
Peripheral ์ฅ์น๋ 31๋ฐ์ดํธ ์ ๋์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ค์ด์ ๊ฒ์(advertising)๋ฅผ ํจ์ผ๋ก์จ ๋ฎ์ ๋น์ฉ์ผ๋ก ์ฃผ๋ณ์ central ์ฅ์น์ ์์ ์ ์กด์ฌ๋ฅผ ์๋ฆด ์ ์์ต๋๋ค. BLE์์๋ ์ด๊ฒ์ Broadcasting ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋ก์ง advertising ์ญํ ๋ง์ ํ๋ Peripheral ์ฅ์น๊ฐ ๋ฐ๋ก ๋น์ปจ(Beacon) ์ ๋๋ค. ์ ํ์ iBeacon์ advertising packet ์ custom payload ๋ด์ฉ์ ํน์ ํ ํ์์ผ๋ก ์์ฑํ๋๋ก ์ ์ํ๊ณ ์์ต๋๋ค.
์ผ๋จ Central, Peripheral ๋ ์ฅ์น๊ฐ ์ฐ๊ฒฐ๋๋ฉด advertising ์ ์ข ๋ฃ๋์ด ์ธ๋ถ ์ฅ์น์์ scan ๋์ง ์์ต๋๋ค. ์ด์ GATT ์๋น์ค์ ํน์ฑ(characteristic)์ ์ฌ์ฉํ์ฌ ์๋ฐฉํฅ์ผ๋ก ํต์ ํ๊ฒ ๋ฉ๋๋ค.
์ฃผ์ ์ฉ์ด์ ์ปจ์
์์ธํ ์ค๋ช ์ด ์ด์ด์ง๊ธฐ ์ ์ ๊ณง ์ธ๊ธ๋ ์ฃผ์ ์ฉ์ด๋ค๊ณผ ์ปจ์ ์ ์๊ฐํฉ๋๋ค.
- GATT (Generic Attribute Profile) : GATT๋ ๋ BLE ์ฅ์น๊ฐ์ Service, Characteristic ์ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ๋ฒ์ ์ ์ํ ๊ฒ์ ๋๋ค.
- Attribute Protocol (ATT) : GATT๋ ATT์ ์ต์์ ๊ตฌํ์ฒด์ด๋ฉฐ GATT/ATT๋ก ์ฐธ์กฐ๋๊ธฐ๋ ํฉ๋๋ค. ๊ฐ๊ฐ์ ์์ฑ(Attribute)์ UUID๋ฅผ ๊ฐ์ง๋ฉฐ 128๋นํธ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ATT์ ์ํด ๋ถ์ฌ๋ ์์ฑ์ ํน์ฑ(characteristic)๊ณผ ์๋น์ค(Service)๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
- Characteristic : ํ๋์ ํน์ฑ(characteristic)์ ํ๋์ ๊ฐ๊ณผ n๊ฐ์ ๋์คํฌ๋ฆฝํฐ๋ฅผ ํฌํจํฉ๋๋ค.
- Descriptor : ๋์คํฌ๋ฆฝํฐ๋ ํน์ฑ์ ๊ฐ์ ๊ธฐ์ ํฉ๋๋ค.
- Service : ํ๋์ ์๋น์ค๋ ํน์ฑ๋ค์ ์งํฉ์ ๋๋ค. ์๋ฅผ ๋ค์ด "Heart Rate Monitor"๋ผ๊ณ ๋ถ๋ฆฌ๋ ์๋น์ค๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด ๊ทธ ์๋น์ค๋ "heart rate measurement"๊ฐ์ ํน์ฑ์ ํฌํจํฉ๋๋ค.
GATT-based profile์ ๋ฆฌ์คํธ์ ์๋น์ค๋ bluetooth.org ์์ ํ์ธํ ์ ์์ต๋๋ค.
์ญํ ์ ๋ฐ๋ฅธ ๊ตฌ๋ถ (๋ณต์ต)
CENTRAL / PERIPHERAL BLE ๋ก ์ฐ๊ฒฐ๋๊ธฐ ์ํ ์๋ก์ ์ญํ ์ ๊ตฌ๋ถํ ๊ฒ์ ๋๋ค. central ์ scan, ๊ฒ์๊ฒ์(looking for advertisement)์ ๋ด๋นํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ peripheral ์ ๊ฒ์(advertisement)๋ฅผ ๋ง๋ญ๋๋ค. ์๋ฅผ๋ค์ด ํฐ๊ณผ ์ผ์์ฅ์น๊ฐ ์๋ค๋ฉด ํฐ์ด ์ฃผ๋ณ์ ์ผ์์ฅ์น๋ฅผ ์ค์บํ๋ ์ญํ ์ ํ ๊ฒ์ด๋ฏ๋ก central ์ด ๋ฉ๋๋ค. ๋ฐ๋๋ก ์ผ์์ฅ์น๊ฐ peripheral ์ด ๋ฉ๋๋ค. ์ค์ํ ์ ์ peripheral ์ ์ค๋ก์ง ํ๋์ central ์ฅ์น์๋ง ์ฐ๊ฒฐ๋ ์ ์์ต๋๋ค. peripheral ์ด central ์ ์ฐ๊ฒฐ๋๋ฉด ๊ฒ์(advertising)๋ฅผ ์ค๋จํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ ๋ค๋ฅธ central ์ฅ์น๋ peripheral์ ์ฐ๊ฒฐ์ด ํด์ ๋ ๋ ๊น์ง ์ฐพ์ ์ ์์ต๋๋ค.
GATT SERVER(SLAVE) / GATT CLIENT(MASTER) BLE ์ฅ์น๊ฐ ์ฐ๊ฒฐ๋ ์ดํ ์ด๋ป๊ฒ ์๋ก ํต์ ํ๋์ง์ ๋ํด ์ ์ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก peripheral ์ฅ์น(์ผ์์ฅ์น)๊ฐ GATT server ์ญํ ์ ํ๋ฉฐ ATT lookup data, service, characteristic ์ ๋ํ ์ ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. GATT client(ํฐ, ํ๋ธ๋ฆฟ ๋ฑ)์์๋ GATT server ๋ก ๋ฐ์ดํฐ ์์ฒญ์ ๋ณด๋ ๋๋ค. ๋ชจ๋ ๋์(transaction)์ GATT client ์์ ์์๋์ด GATT server๋ก ๋ถํฐ ์๋ต์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
๋ ์ฅ์น๊ฐ ์ฐ๊ฒฐ๋ ๋ peripheral(์ผ์์ฅ์น) ์ ์ฐ๊ฒฐ๊ฐ๊ฒฉ(connection interval)์ ์ ๋ฌํฉ๋๋ค. Central(ํฐ)์ ์ด ์๊ฐ๋งํผ ๊ฐ๊ฒฉ์ ๋๊ณ ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ์๋์ง ์ฌ์ฐ๊ฒฐ์ ์๋ํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด๊ฒ์ ํ์ ์ฌํญ์ ์๋๋๋ค.
์ ์ฒด ๊ตฌ์กฐ
BLE์์ ์ฌ์ฉํ๋ GATT ๊ธฐ๋ฐ ๋์๊ตฌ์กฐ๋ ํ๋กํ์ผ(Profile), ์๋น์ค(Service), ํน์ฑ(Characteristic) ์ ๊ธฐ์ดํฉ๋๋ค. ์๋ ์ด๋ฏธ์ง์ ๊ฐ์ ์์ง ๊ตฌ์กฐ๋ฅผ ์ด๋ฃน๋๋ค.
ํ๋กํ์ผ(PROFILE)
ํ๋กํ์ผ์ BLE peripheral(์ผ์์ฅ์น) ์ ์ค์ ๋ก ์กด์ฌํ๋ ๊ฒ์ ์๋๋๋ค. ์ด๊ฒ์ Bluetooth SIG(๋ธ๋ฃจํฌ์ค ํ์ค ๊ฐ๋ฐ๊ทธ๋ฃน) ํน์ peripheral(์ผ์์ฅ์น) ๋์์ด๋์ ์ํด์ ๋ง๋ค์ด์ง, ๋ฏธ๋ฆฌ ์ ์๋ ์๋น์ค์ ๋ฌถ์์ ๋๋ค.
Heart Rate Profile (HRP)์ ์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ์ด ํ๋กํ์ผ์ Heart Rate Service(ํ์)์ Device Information Service(์ ํ)๋ฅผ ๊ฒฐํฉํ ๊ฒ์ ๋๋ค. ์ด ๋ ์๋น์ค๋ฅผ ๋ฌถ์ด์ Heart Rate Profile ์ด๋ผ๊ณ ์ ์ํ์ผ๋ฉฐ ๋ ผ๋ฆฌ์ ์ธ ๊ตฌ๋ถ์ด๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
์๋น์ค(SERVICE)
์๋น์ค๋ ๋ฐ์ดํฐ๋ฅผ ๋ ผ๋ฆฌ์ ์ธ ๋จ์๋ก ๋๋๋ ์ญํ ์ ํ๋ฉฐ ํน์ฑ(characteristic)์ด๋ผ ๋ถ๋ฆฌ๋ ๋ฐ์ดํฐ ๋จ์๋ฅผ ํ๋ ์ด์ ํฌํจํ๊ณ ์์ต๋๋ค. ๊ฐ ์๋น์ค๋ UUID๋ผ ๋ถ๋ฆฌ์ฐ๋ 16bit(for officially adopted BLE Services) ํน์ 128bit(for custom services) ๊ตฌ๋ถ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํ์ค ๊ทธ๋ฃน์์ ์ ์ ํ ๊ณต์ ์๋น์ค ๋ฆฌ์คํธ๋ [๋งํฌ]์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ์ค Heart Rate Service ๋ฅผ ํ์ธํด๋ณด๋ฉด 16-bit UUID - 0x180D ๋ฅผ ์ฌ์ฉํจ์ ์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์๋น์ค๋ 3๊ฐ์ ํน์ฑ(Heart Rate Measurement, Body Sensor Location, Heart Rate Control Point) ์ ๊ฐ์ง๊ณ ์๊ณ ์ด ์ค Heart Rate Measurement ๋ง ํ์์์ ์ ์ ์์ต๋๋ค.
ํน์ฑ(CHARACTERISTIC)
GATT ๊ธฐ๋ฐ ๋์๊ตฌ์กฐ์์ ๊ฐ์ฅ ํ์ ๋จ์๋ ํน์ฑ์ ๋๋ค. ํน์ฑ์ ๋จ ํ๋์ ๋ฐ์ดํฐ๋ง์ ํฌํจํฉ๋๋ค. ๊ฐ์๋ ์ผ์์ฒ๋ผ X, Y, Z ์ถ ๊ฐ์ด ํ ์์ ์ด๋ฃจ๋ ๊ฒฝ์ฐ ์ผ๋ จ๋ ๊ฐ์ ๋์ด(๋ฐฐ์ด)๋ ํ๋์ ๋ฐ์ดํฐ๋ก ๊ฐ์ฃผํฉ๋๋ค.
์๋น์ค์ ์ ์ฌํ๊ฒ ํน์ฑ๋ 16-bit ๋๋ 128-bit UUID ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ํ์ค ํน์ฑ ๋ฆฌ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ํน์ ๋ณธ์ธ์ ๋ชฉ์ ์ ๋ง๊ฒ ํน์ฑ์ ์ ์ํด๋ ๋ฉ๋๋ค.
์๋ฅผ๋ค์ด Heart Rate Measurement ํน์ฑ์ Heart Rate Service ์ ํ์ ํน์ฑ์ผ๋ก UUID - 0x2A37 ์ ์ฌ์ฉํฉ๋๋ค. ์ด ํน์ฑ์ ๋ฐ์ดํฐ์ ์ฒซ 8bit ์ค ์ฒซ 1bit ๊ฐ Heart Rate Measurement(HRM) ๋ฐ์ดํฐ ํ์ ์ ํ์ํฉ๋๋ค. ๋ฐ์ดํฐ ํ์ ์ด 0์ผ ๊ฒฝ์ฐ ์ด์ด์ง๋ HRM ๋ฐ์ดํฐ๋ UINT8 ํ์ ์ด๊ณ 1์ผ ๊ฒฝ์ฐ๋ UINT16 ์ ๋๋ค. ์ด์๊ฐ์ด BLE์์ ํน์ฑ์ peripheral(์ผ์์ฅ์น)์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ฐ ํต์ฌ ์ญํ ์ ํฉ๋๋ค. ํน์ฑ์ ๋ํ Central(ํฐ) ์ฅ์น์์ peripheral(์ผ์์ฅ์น)๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋๋ ์ฌ์ฉ๋ฉ๋๋ค.
๊ฐ๋ตํ๊ฒ ์ค์ ํฐ์์์ ๋์๊ณผ์ ์ ์์ฝํ๋ฉด Central(ํฐ) ์ฅ์น๋ ์๋์ ๊ฐ์ ์์๋ฅผ ๊ฑฐ์ณ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ๋จผ์ ํฐ์ ์ฃผ๋ณ์ BLE ์ฅ์น๋ฅผ ์ค์บํฉ๋๋ค. (GAP profile ์ด ์ ์ํ๋ ๊ฒ์ด ์ด ๊ณผ์ . ์ฃผ๊ธฐ์ ์ผ๋ก advertising ์ด ๋๋ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ ธ ์๋์ง๋ฅผ ์ ์)
- ํฐ์ ์ค์บ ๊ฒฐ๊ณผ์์ ์ํ๋ peripheral(์ผ์์ฅ์น)๊ฐ ๋ณด์ด๋ฉด ์ฐ๊ฒฐ (๋ ์ฅ์น๊ฐ ์ฐ๊ฒฐ๋๋ฉด ์ผ์์ฅ์น๋ advertising์ ์ข ๋ฃ, Central(ํฐ)์ GATT client ์ญํ ์ ํ๊ณ GATT server์ ์ฐ๊ฒฐํ๋ ๊ฒ)
- ์ด์ ์ดํ๋ถํฐ๋ ์๋๋ก์ด๋, iOS ํ๋ ์์์์ GATT client๋ฅผ ์ด์ํ๊ณ ๋ฐ์ดํฐ ์์ , ์ฐ๊ฒฐ ์ํ์ ๋ณํ ๋ฑ ๊ฐ์ข ์ด๋ฒคํธ๊ฐ ๋ฐ์ ํ ๋ ์ฑ์ ์๋ ค์ฃผ๊ฒ๋ฉ๋๋ค. (์ด ๊ณผ์ ์ ์ด์ฉํ๊ธฐ ์ํด ํ์ํ ๋ด์ฉ๋ค์ด GATT/ATT์ ์ ์๋จ)
- ๋จผ์ ์ฐ๊ฒฐ๋ ์ฅ์น์ GATT ์ ๋ณด์ Service ์ ๋ณด๋ฅผ ์์ (Service UUID ์ ๋ณด๋ก ํ์ธ) Characteristic ์ ๋ณด ์์ (UUID ๊ฐ์ผ๋ก ์ค์ ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถ)