2015년 4월 13일 월요일

Beacon(비콘)을 테스트 또는 활용하기 좋은 App

오늘은 Beacon에 관련된 App을 소개해 드릴까 합니다.

각 Beacon 제조사는 자사의 제품을 등록/관리, 설정 변경 등을 할 수 있는 Manager App을 배포하고 있다.  하지만 이러한 Beacon 제조사 용으로 배포되는 App과 달리 모델과 상관없이 비콘을 조회 / 테스트해 보거나 간단한 Proximity 서비스와 연계시킬 수 있는 App을 이용해 보는 것도 비콘을 이해하는데 도움이 될 것이다.


  • nRF Master Control Panel (Nordic Semiconductor) - Android

       https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp



이 App은 Beacon을 Scan해서 세부사항을 보여주는 일반 App과 차별화된 기능이 있다.
Parse 된 각 ID(UUID, Major, Minor)를 보여주는 것은 물론 Parse 되기 전의 Raw Data도 직접 볼수 있다.
가장 도움이 되는 기능은 Scan한 Beacon 중에서  Favorite을 설정하고 각 비콘에 대해 RSSI 그래프를 보여준다.  이는 Beacon의 RSSI 세기를 통해 거리에 따라 신호가 어떻게 변하고 편차가 어느정도인지를 어림잡을 수 있는 간단한 App이다.

위와 비슷한 기능을 하는 iOS용 App도 물론 있다.


  • BLE Discovery (Michelangelo Chasseur) - iOS


       https://itunes.apple.com/kr/app/ble-discovery/id821826273?mt=8


이 앱의 특징은 선택한 Beacon의 RSSI 세기와 함께 3초 Rolling Average 를 함께 그래프로 표시해 준다.  이는 Beacon과의 거리를 판단할때 전파가 튀거나 편차에 의한 오차를 줄일 수 있는 방법으로 다양한 테스트에 대한 확인이 가능하다.



  • Auto Beacon - Beacon Scanner & Macro (Tortuga) - Android

       https://play.google.com/store/apps/details?id=com.wiredfactory.bluewave

 


이 App은 등록된 Beacon을 Triggering 하여 다양한 외부 기능을 이용할 수 있게해 준다.
등록된 Beacon 신호를 인지한 후 아래와 같은 일을 할 수 있다.

- 이메일 보내기
- SMS 보내기
- 진동, 경고음 재생
- Notification으로 알림
- 폰을 벨/진동/Silent 모드로 전환
- 폰의 WiFi 설정을 변경
- 브라우저 실행

집과 사무실에 Beacon을 하나씩 설치하여 등록한 후 각각의 장소에서 Wi-Fi를 변경하거나 SMS나 이메일을 보낼 수 있다.  이와 비슷한 일을 가능하게 하는 iPhone용 App은 아래와 같다.


  • Proximity Event (Proximity Mobile) - iOS

       https://itunes.apple.com/us/app/proximity-events-trigger-automated/id931612982?mt=8


 


이 App은 위의 Auto Beaon과 비슷하지만 Beacon 뿐만아니라 GPS를 이용한 Geofence와 위치 변화와 같은 실제 GPS 좌표와 연계한 Triggering 기능이 강력하다.
Micro Location 기반의 iBeacon을 Trigger로 등록하는 경우 16byte의 UUID를 일일이 입력하는 불편함은 개선되어야 할 것이다.


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

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


2015년 4월 11일 토요일

Beacon(비콘)의 배터리와 전류 소모

Beacon의 주 활용 목적 중 하나인 실내 위치에 활용된 기술은 Wi-Fi나  UWB(Ultra Wide Band)등 여러가지가 있다.  하지만 기존의 Wi-Fi를 이용한 기술은 정확도에 차이도 있지만 가장 큰 문제는 각각의 Wi-Fi AP는 전원이 공급되어야 했다. 실내나 옥외 모두 AP가 설치되는 곳에 전원을 공급하기 위해 별도의 공사를 해야 하며 비용도 상당히 높을 수 밖에 없다.
Beacon은 Bluetooth Low Energy 기술을 사용하여 전원 공급 없이 동전 크기의 Coin Cell을 사용하여도 1년이상 작동이 가능하다.  

보통 비콘들은 주로 CR2450 배터리를 사용한다. 이 배터리 타입은 모델명으로 구분이 가능한데 'C'는 화화학적 구성 요소인 Lithium(리튬)을 의미하며 'R'은 Round Type을 의미하며 그 뒤의 숫자는 배터리의 사이즈를 의미한다.
원형일 경우 앞의 두 자리는 지름(24.5mm)을 나타내며 뒤의 두 자리는 두께(5.0mm)를 나타낸다. 부피가 클 수록 배터리 용량이 크기 때문에 비콘의 제품 디자인에서 배터리 용량을 결정이 매우 중요하다.
보통 Coin Cell 은 3V 이며 2V로 내려가게 되면 수명이 다하게 된다. 배터리의 특성상 온도가 낮을 수록 공급되는 전압은 낮아지게 되며 자연 방전되기 때문에 실내용 비콘을 옥외에 설치하게 되면 겨울에 전류 소모가 훨씬 많이지고 배터리 수명이 줄어들게 된다.  특히 영하 10 이하에서는 수명이 현저하게 줄어든다.  때문에 우리나라 같은 경우 옥외에 비콘을 설치할 경우에는 방수기능도 중요하지만 내부의 배터리를 무엇을 사용하느냐도 매우 중요하다.
CR2450은 많은 비콘에 장착이 되는 가장 범용적인 배터리이지만 최근 Estimote의 비콘은 하드웨어 버전 3.4이후 부터는 CR2477을 탑재하고 있다.  Estimote사의 비콘으로 처음 Beacon을 접하는 개발자들은 다양한 설정을 바꿔가며 테스트를 진행하게되었다.  설정 변경 시는 비콘과 데이터를 주고 받기 때문에 브로드 캐스팅보다 훨씬 많은 전류를 소모하게 되었으며 이는 실제 비콘 수명을 줄어들게 할 수 밖에 없었다.  또한 이 비콘은 시리콘 제질로 둘러싸여 배터리 교체가 어렵기 때문에 이러한 문제를 해결하기 위해 용량이 큰 약 1.6배 큰 CR2477(1000mAh)로 교체하게 되었다. 
이렇듯  Beacon의 배터리 용량이 제한적이다 보니 전류소모를 줄이고 배터리 수명을 늘리기 위해 동작 시간을 제어하거나 Sleep Mode 기능을 제공하기도 한다. 사실 온,습도 센서나 조도 센서, 가속 센서 등을 사용하면 Bluetooth 칩이 사용하는 전류 이외에 추가적인 전류 소모가 발생하기 때문에 이를 적절히 사용하여야 한다.
이러한 배터리 수명에 대한 고민을 완전히 해결하기 위해 USB 타입의 Beacon도 출시되었지만 USB Port가 제공되어야 하기 때문에 설치 위치는 자유롭지 못하다.


기본적인 Beacon에 대한 포스트를 마치게 되면 각각의 비콘들이 실제 소비하는 전류를 측정하여 비교하여 benchmark해 보도록 하겠다.



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

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

Beacon(비콘)의 기능과 역할

다들 아시겠지만 Beacon의 기능은 상당히 간단하다.
자신의 고유 ID를 정해진 시간과 정해진 전파 세기로 지속적인 브로드캐스팅(Broadcasting)하는 기능으로 IoT(사물인터넷)기기의 대표 디바이스로 자리잡고 있다.  정보를 얻기 위해 NFC와 같은 5cm 이내 태깅을 해야 하는 불편함과 데이터를 주고 받기 위해 블루투스 페어링과 Zigbee 기기들이 갖는 통신방식에서의 거리 제한 (대략 10m 이내)을 단방향 브로드캐스팅으로 늘리면서 활용 범위가 넓어졌다.
iBeacon에서는 거리를 기반으로 한 3가지의 영역으로 구분하고 있다. 

  • Immediate Zone (0-20 cm) : 아주 가까운 거리로 정확도가 높다.
  • Near Zone (20 cm - 2 m) : 가까운 거리로 어느 정도 정확도를 갖는다.
  • Far Zone (2 - 70 m) : 먼 거리로 정확도가 떨어진다.

위의 Zone 영역은  전파의 특성에 의해 구분되어졌다. 거리가 먼어질수록 전파 세기는 약해지면서 RSSI(received signal strength indicator)를 기반으로 계산되는 거리의 정확도가 떨어질 수 밖에 없다.

iOS에서 RSSI를 기반으로 거리를 계산하는 방법은 아래와 같다.  플랫폼에서 얻어지는 계산 방식과 동일하진 않지만 참고를 할 만하다.

protected static double calculateAccuracy(int txPower, double rssi) {
  if (rssi == 0) {
    return -1.0; // if we cannot determine accuracy, return -1.
  }

  double ratio = rssi*1.0/txPower;
  if (ratio < 1.0) {
    return Math.pow(ratio,10);
  }
  else {
    double accuracy =  (0.89976)*Math.pow(ratio,7.7095) + 0.111;    
    return accuracy;
  }
} 
(출처 : http://stackoverflow.com/questions/20416218/understanding-ibeacon-distancing)

이렇게 비콘과의 거리를 계산으로 블루투스 신호를 스캔하는 스마트폰과의 거리를 판단하여 Notification을 주거나 App 내에서 정보를 전달할 수 있게 된다.
또한 여러개의 비콘으로부터 신호를 받아 거리를 계산하고 이를 보정하여 건물내에서의 위치와 이를 기반으로 한 실내 내비게이션으로 활용도가 넓어지고 있다.

위는 경북대학병원에 설치된 비콘을 활용한 병원내 내비게이션 시연 영상이다.
이러한 위치 판단 기술은 쉬워 보이지만 실제로는 비콘이 설치된 환경, 이동 동선, 스마트폰 모델, 비콘 제품, 신호의 편차 등 다양한 변수에 의해 발생하는 거리 오차를 보정하고 정확도를 높이기 위한 기술과 경험이 필요하다. 또한 이동 구간의 path topology 혹은 스마트폰의 센서등을 활용하여 보정치를 구하기도 한다.  
또한 미국 스타트업인 비콘과의 계산을 매 위치마다 하는 것이 아닐 백터 지도 기술을 활용하고 스마트폰의 센서를 활용하여 정확도를 높히기도 했다.

이렇듯 신호를 송출하는 단순한 기능이지만 근거리 위치 판단을 기반으로 다양한 서비스에 적용이 가능하고 시장에서의 요구사항에 따라 다양한 기능과 센서들이 추가되고 있다.
온도, 가속센서와 같은 추가 센서 지원으로 Beacon과의 거리외에 추가적인 정보를 전달하고 동작 시간을 제어하기도 하고 전류소모를 줄이기 위해 다양한 배터리가 적용되거나 USB를 통한 전원 공급 타입도 제품으로 나와 있다.

지금까지 비콘을 활용하고 싶은 100여개가 넘는 다양한 분야의 업체들과 만나면서 요구사항과 적용 방법에 대해 논의해 보았을 때, 실제 현재의 비콘으로 바로 적용할 수 있는 부분도 있지만 현재 개발중이지만 아직은 출시되지 않은 스마트한 비콘과 그 분야만을 위한 특수한 형태 혹은 기능을 가진 비콘이 필요한 경우도 많았다. 

비콘 제조 업체가 이러한 시장의 요구사항을 반영한 차기 제품들이 개발되고 있으리라 믿고 비콘이 갖는 기본적인 기능과 접목시킬 수 있는 스마트한 비콘이 앞으로 IoT 시대를 여는 견인 역할을 할 수 있을 것으로 믿는다.

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



2015년 4월 4일 토요일

Beacon(비콘)의 종류 - iBeacon vs Beacon

안녕하세요.
새롭게 비콘에 대해 다양한 정보를 올리기 위해 처음 브로그를 시작하게 되었습니다.

이제 비콘을 처음 접한지 1년 반이 되가고 있네요.
그 동안 비콘 관련한 개발 및 영업을 진행하면서 검색하고, 배우고, 경험하고, 공유했던 내용들을 정리하여 올릴 계획입니다.

2013년 중반 Apple에 의해 iBeacon이 소개되면서 2013년 말에 Estimote라는 회사에서 처음 iBeacon을 출시하게 되었습니다.


아마 Beacon에 관심이 있는 개발자나 회사는 해외, 국내 가릴 것 없이 Beacon을 테스트해 보기 위해 Estimote 제품을 한 Set씩 구매를 하셨을 겁니다. 그 만큼 Estimote는 Beacon의 Reference 모델이 되었죠.



iBeacon은 Apple의 iBeacon 규격을 따르는 모든 Beacon을 그렇게 부르고 있습니다. 물론 비콘이 모두 iBeacon 규격만 따르지는 않기 때문에 Beacon은 iBeacon을 포함하고 있다고 보시면 됩니다.

Beacon은 사전적 의미로는 등대, 봉화같은 무선 송신소를 뜻하며 Bluetooth 4.0에 포함된 Bluetooth Low Energy (BLE) 기술을 사용한 비콘뿐만 아니라 고주파 음영대의 음파를 이용하는 고주파 사운드 비콘도 있습니다. 작년 말쯤 국내의 SK Planet이 인수한 미국의 Shopkick이 2010년 고주파 사운드 비콘으로 서비스를 시작했었습니다. 지금은 BLE 기술을 사용하여 자그마한 Coin Cell 배터리로 최소 1년 이상 사용할 수 있게 되어 일반적으로는 Beacon(비콘) 이라고 하면 BLE Beacon을 의미하게 되었죠.
BLE Beacon에 속하는 대표적인 iBeacon 이외에도 Apple에 종속적이지 않은 자제 규격을 만들어 오픈을 하고 있는 기업도 있습니다. sBeacon, UriBeacon, Samsung의 Placedge등 서로 다른 규격들을 만들고 이를 지원하는 Beacon 제품들도 출시되고 있습니다.
각가의 Beacon 규격에 대해서는 별도로 게시할 예정입니다.

제가 강의했던 Beacon에 대해 쉽게 설명한 영상을 참고 하시기 바랍니다.


시간이 되는대로 자료들을 정리하여 올리도록 하겠습니다. 많은 기대 바랍니다.



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

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