2015년 4월 5일 일요일

iBeacon 데이터 규격과 설정 변수

전에 포스팅 한 iBeacon에 대해 좀 더 자세하게 알아보겠습니다.

2013년 WWDC 행사에서 iOS 7.0에 대해 소개하면서 iBeacon이 알려지게 되였죠.
iBeacon 규격에서 Broadcasting되는 Advertising Data 규격을 알아보도록 자세하게 알아보도록 하겠습니다.


iBeacon의 Advertising Data의 총 사이즈는 47 bytes 입니다.

이 중에 PDU(Protocol Data Unit) 중 iBeacon에서 정의한 Data 규격은 총 31 bytes 입니다.
iBeacon prefix는 총 9 bytes 이며 구성은 아래와 같습니다.

Advertising flags - 3 bytes
02 # Number of bytes that follow in first AD structure
01 # Flags AD type
1A # Flags value 0x1A = 000011010  
   bit 0 (OFF) LE Limited Discoverable Mode
   bit 1 (ON) LE General Discoverable Mode
   bit 2 (OFF) BR/EDR Not Supported
   bit 3 (ON) Simultaneous LE and BR/EDR to Same Device Capable (controller)
   bit 4 (ON) Simultaneous LE and BR/EDR to Same Device Capable (Host)
Advertising Header - 2 bytes
1A # Number of bytes that follow in second (and last) AD structure
FF # Manufacturer specific data AD type
Company ID - 2 bytes
4C 00 # Company identifier code (0x004C == Apple)
iBeacon Type - 1 byte
02 # Byte 0 of iBeacon advertisement indicator
iBeacon Length - 1 byte
15 # Byte 1 of iBeacon advertisement indicator
위의 data는 고정이라고 보시면 되고 비콘 제조사나 iBeacon 규격을 따르지 않는다면 수정도 가능한 부분입니다.

다음은 비콘을 활용한 개발자들이 관심있게 보아야 하는 Data 필드 입니다.

16 bytes로 구성된 Proximity UUID, 보통 UUID(Universal Unique ID)는 제품의 고유 ID이며 서비스에 따라 자체 UUID로 구성되기도 합니다.

Estimote : B9407F30-F5F8-466E-AFF9-25556B57FE6DKontakt.io : F7826DA6-4FA2-4E98-8024-BC5B71E0893EGeLo : 11E44F09-4EC4-407E-9203-CF57A50FBCE0Reco : 24DDF411-8CF1-440C-87CD-E368DAF9C93ELightblue Bean : A4956969-C5B1-4B44-B512-1370F02D74DERadBeacons : 52414449-5553-4E45-5457-4F524B53434F

위는 대표적인 비콘 제품의 UUID 정보입니다.
단, Apple에서는 앱 검수시 앱 내에서 UUID를 매뉴얼하게 입력하는 기능을 삭제하도록 하고 있다고 합니다. 이 점 주의 하시기 바랍니다.

Major ID와 Minor ID는 각각 2 bytes 씩이며 0 ~ 65535 까지 설정이 가능합니다.
서비스 그룹 또는 지역 구분을 위해 Major로 구분하고 같은 지역내에서의 구분을 위히 Minor값을 사용하게 됩니다.

Minor ID 다음 값은 Tx Power (Level) 값이며 해당 비콘이 1m에서 측정되는 RSSI 값을 나타냅니다. 이는 측정된 RSSI 값을 바탕으로 거리 계산을 할 때 사용되며 1 byte가 사용되며 2 bytes로 언급된 곳에는 마직막 byte를 00으로 두고 있습니다.

Tx Power 값이 C5일 경우 2의 보수를 계산하면 -59가 나오게 됩니다.

지금까지 브로드캐스팅 되는 iBeacon Data Format을 알아봤습니다.

추가로 Beacon을 설정하는 값은 Advertising Interval과 Tx Power 등이 있습니다.
이는 비콘이 송신(출)하는 신호의 주기와 세기에 관련한 설정 값들이며 비콘의 활용 목적에 따라 다르게 설정하게 됩니다.
얼마나 자주, 얼마나 높은 power로 송신할 것이지를 나타내며 이에 따라 전류 소모량이 달라지기 때문에 비콘의 사용 기간 (혹은 배터리 교체 주기)이 달라지게 됩니다.

Inteval은 ms로 표현하며 500ms는 1초에 2번 신호를 송출하게 되며 Tx Power는 Bluetooth칩에 따라 다르지만 보통 -20dBm ~ +4dBm까지 4dBm 간격으로 설정하게 됩니다.
값이 낮을 수로 신호가 작아 가까운 거리만 신호가 도달하게 되며 +4dBm일 경우 최대 80m 정도까지도 신호가 도달하게 됩니다.

다음에는 비콘의 Coin Cell Battery에 대해 포스팅 하도록 하겠습니다.



현재 20여종 이상의 다양한 비콘 제품들을 구비해서 직접 보거나 테스트 할 수 있는 공간을 마련해 놓았습니다.   제 개인적으로 시간을 할애해야 하기 때문에 한 번에 많은 분들을 응대할 수는 없지만 예약하시고 방문해 주시면 성심성의껏 대응해 드리도록 할 예정입니다.

http://hellofactory.setmore.com 또는
Book an appointment with (주)헬로팩토리(HelloFactory) using SetMore



댓글 2개: