Part3. 아이비콘 프로토타입 개발 후기

[ Part3. 아이비콘 프로토타입 ]

아이비콘 프로토타입 개발 후기

image_1

 

 

 


이 글은 이번 ‘아이비콘’ 프로젝트를 진행하며 우리가 직접 경험한 비콘 개발에 대한 후기 입니다. 비콘 기술에 대한 전문적인 이해를 높이고 스스로가 실험 해볼 수 있는 가이드가 되기를 희망합니다.


 

1. iBeacon + Open Source Based Hardware

아이비콘을 활용한 서비스를 구축하기 위해서는 비콘 센서가 필요합니다. 우리가 비콘 센서를 활용하거나 관련 어플리케이션을 개발하기 위해서는 크게 다음과 같은 3가지 방법을 생각해 볼 수 있습니다.

 

애플의 모바일 디바이스를 비콘 센서로 활용 아이폰(4S 이후), 아이패드(3세대이후), 아이패드 미니(1세대 이후), 아이팟 터치(5세대 이후)에는 블루투스4.0 모듈이 탑재되어 있어서 개발자 계정이 있다면 바로 아이비콘 관련 개발을 진행할 수 있습니다. iOS 개발은 일반적으로 맥OS에서 진행을 하는데 여기에서 특별한 점은 iOS 시뮬레이터를 이용하여 테스트를 하는 것에 일부 제한이 있다는 것입니다.

예전에는 맥에 탑재된 블루투스 모듈을 이용하거나 외부의 블루투스 동글을 이용하면 시뮬레이터에서도 블루투스 관련 개발 테스트를 진행 할 수 있었습니다. 하지만 최근의 맥OS와 Xcode에서는 애플이 인증한 블루투스 칩이 내장된 디바이스에서만 테스트 할 수 있게 되었습니다.

따라서 인터넷에서 아이비콘 관련 개발 정보들을 검색해보면, 과거 맥OS에서 블루투스 동글을 연결하여 iOS 시뮬레이터를 구동하는 정보들을 찾아 볼 수 있지만, 최근 애플 정책의 변화로 인해 시뮬레이터를 통한 블루투스 개발에는 제약이 있는 상태입니다. 맥북 프로 OSX의 개발 환경에서 내장되어 있는 블루투스 모듈을 비활성화 시킨 뒤 CSR과 브로드컴의 USB 블루투스 동글을 각각 활성화하여 테스트를 진행한 결과에서도 제약이 있음을 확인 할 수 있었습니다.현재 맥북을 비롯한 애플 디바이스에 탑재된 블루투스 모듈은 브로드컴에서 제조된 칩을 사용하는데 이외에도 CSR, TI 등 다양한 칩 벤더사가 부품을 제조하고 있습니다. 따라서 모델에 따라 애플이 인증한 블루투스 칩을 사용한 동글 제품을 사용해서 시뮬레이터를 구동하는 과정은 추가적으로 테스트 해봐야 할 것 같습니다.

 

Estimote의 제품과 같은 완제품 비콘 센서를 구매 이들 제품은 보통 리튬 배터리를 내장하여 1~2년 정도 사용할 수 있는 스펙을 가지고 있으며 개발자를 위한 SDK를 제공하여 서비스 제공자의 목적에 맞게 다양한 형태로 개발 할 수 있습니다. 이 때의 비콘 센서는 단순히 신호를 발생하는 기능만 하기 때문에 실제로 이를 활용하는 것은 App 개발을 통해서 이루어 진다고 할 수 있습니다. 최근 국내에서는 SK 텔레콤이 비콘 센서 4종류를 출시하면서 하드웨어를 포함한 상황별 서비스를 제공하고 있고, 많은 솔루션 업체들이 위치 기반 마케팅 시장을 선점하기 위해 다양한 서비스 플랫폼을 선보이고 있습니다. estimote stikers 특히 최근에 출시된 ‘estimote stikers’의 경우 뒷 면의 접착제를 이용하여 센서를 어디에나 부착할 수 있도록 제작되었습니다. 비콘 신호 뿐만 아니라 온도와 움직임을 감지하는 센서가 추가로 장착되어 있어 물체의 움직임 분석, 특정 사물의 접근 유무, 분실 방지 등 다양한 용도로 활용할 수 있습니다. 예를 들어 매장에서 공간에 따른 개별적인 부가 서비스의 제공은 물론 ‘소비자가 어떠한 특정 상품에 관심을 가지며 더 많은 접촉을 하는지’ 등의 확장된 정보도 얻을 수 있습니다. 이처럼 제품 형태로 출시된 비콘 센서와 SDK를 이용하면 관련 제품 및 서비스를 보다 손쉽게 개발 할 수 있습니다.

 

아두이노, 라즈베리파이와 같은 오픈 소스 기반의 하드웨어와 별도의 블루투스 개발 모듈을 이용 현재 TI(Texas Instruments)에서는 애플의 공식 인증을 받은 블루투스 칩을 탑재한 개발 키트와 아이비콘 센서로 사용 가능한 다양한 개발 보드를 출시한 상태인데 이외에도 여러 제조사의 제품들이 출시 되어 있습니다. 따라서 이들 제품들을 적절히 활용하여 개발하는 방법을 생각해 볼 수 있습니다.

개발 키트나 오픈 소스 기반의 하드웨어 개발 보드를 활용하는 경우, 크기나 배터리 사용 등의 측면에서 전용 비콘 센서와 비교하여 다소 불리한 부분도 있겠지만 추가 기능을 포함하는 프로토타입 개발에는 쉽게 접근 가능한 장점이 있습니다. 예를 들어 와이파이, NFC 등의 다른 통신과 연동하거나 비콘 신호에 반응하는 모터, 센서 등의 다양한 물리적 아웃 풋 장치를 동작시키는 등의 어플리케이션을 제작해 볼 수 있을 것 입니다. 따라서 오픈 소스 기반의 하드웨어를 활용하는 경우에는 본격적인 제품 개발 하기 위한 전 단계로서의 테스트 과정, 아이비콘을 활용한 다양한 경험을 제공하는 프로젝트에 적합하다고 할 수 있습니다. 특히 애플의 블루투스 관련 액세서리는 엄격한 절차를 거친 뒤 공식적인 구매 경로를 통해 인증된 칩을 이용하여 개발되고 있으므로, 본격적인 제품 개발 전의 프로토타입 용도로 사용하는 것도 좋은 방법입니다. 다양한 형태의 개발 보드들을 이용한다면 비콘의 기능이 포함된 다양한 어플리케이션을 빠르게 개발 할 수 있을 것입니다.

 

2. iBeacon Sensor Prototype

실제 오픈 소스기반의 개발 보드(Raspberry Pi, Arduino Yun, Bluno)를 비콘 센서로 활용할 수 있는지 알아 보고자 진행한 테스트 후기 입니다. 우선 앱 스토어에 올라온 아이비콘 앱을 다운받아 하드웨어와 데이터를주고 받는 과정을 테스트하고, 간단한 형태의 iOS 프로토타입 앱을 제작하여 실제 개발 보드와 함께 동작하는 환경을 구현하고자 하였습니다. 전체적인 테스트는 맥OS 환경에서 진행되었고,  iOS 프로토타입 어플리케이션은 아이폰과 아이패드를 이용하였습니다.

 

블루투스4.0이 내장된 개발 보드를 활용한 iBeacon 동작 테스트

아이비콘의 센서로 활용하기 위한 개발 보드로는‘Bluno’라는 제품을 이용하여 전반적인 프로토타입 테스트를 진행하였습니다. 이 제품은 아두이노 우노(UNO)에 TI에서 제작된 블루투스 칩(CC2541)이 내장된 제품으로, 아이비콘 개발 키트로 제작된 다른TI 사의 제품과 동일한 칩을 사용하고 있습니다. 아이비콘의 센서는 자기만의 고유 ID인 UUID(사람의 주민등록번호 개념과 유사)를 가지고 있어, 이 신호를 지속적으로 발산하여 자신의 존재를 다른 디바이스가 감지할 수 있도록 하고 있습니다. 따라서 개발보드에 UUID를 비롯한 비콘 관련 설정을 완료한 뒤 센서로서의 기능을 위한 테스트를 수행하여 실제 거리변화에 따른 신호의 변화를 확인해 보았습니다. 테스트용 앱을 통해 아이폰 디바이스와 비콘 센서간의 거리 표시 기능에 대한 오차는 크게 발생하지 않음을 확인 할 수 있었습니다. 전반적으로 실제 두 기기간의 거리는 표시되고 있는 값과 큰 오차를 보이지 않았지만 두 장치를 매우 근접하게 놓은 경우(약5cm 이하)에는 오차가 발생함을 알 수 있었습니다. 아이비콘은 기본적으로 ‘Far, Near, Immediate’의 3단계로 거리에 따른 범위를 구분하고 있기 때문에, 이는 향후 아이비콘 서비스에 있어 거리에 따른 차별화된 정보 제공의 기준이 된다고 할 수 있습니다. 한편 인상적이었던 점은 사무실 내 공간에서 다른 층으로 이동하기 전까지 많은 장애물이 있었음에도 신호가 거의 끊기지 않고 지속적으로 거리를 측정했던 점입니다. 실내 기반의 서비스를 목표로 하고 있는 다양한 장애 요소를 극복할 수 있는 신뢰성이 중요한데 이러한 점에서는 매우 안정적인 동작을 하는 것으로 보여집니다.

 

인증되지 않은USB 블루투스4.0 동글로 인한 연결 실패 사례

프로토타입 테스트는 몇 가지 단계를 거쳐 진행되었는데 그 중 처음 작업은 USB 블루투스4.0 모듈을 테스트 하는 것이었습니다. 개발보드로 테스트하려 했던 제품들이 총3가지였는데 Bluno는TI에서 제작된 블루투스 칩에 내장된 제품이고, 나머지 두 개발 보드(라즈베리파이, 아두이노Yun)는 기본적으로 모듈이 없는 제품입니다. 따라서 이 두 제품을 위해 USB 동글을 이용하여 블루투스 기능을 사용하려고 했던 것입니다.

이미 TI 제작된 칩을 내장한 개발보드가 있었기 때문에 나머지 두 개발보드를 위한 USB 동글은 브로드 컴과 CSR에서 제작한 제품을 선정하였습니다. 블루투스4.0 동글은 실제로 제품마다 가격차가 발생하는데 그 이유는 실제로 지원하는 프로파일의 종류가 다르기 때문입니다. 우리가 구매했던 모델은 기본적으로 Mac과 윈도우 호환이되는 것으로 인터넷을 통해 비교적 저렴하고 쉽게 구매할 수 있는 제품이었습니다. 테스트는 맥에서USB 동글을 이용하여 iOS 시뮬레이터를 구동하는 것과, 실제 개발보드에 연결하여 비콘 센서로서의 동작을 테스트 하는 것으로 진행되었습니다. 이를 위해 맥북에 내장된 블루투스 모듈을 비활성하고 외부의 USB 동글 블루투스를 활성화를 통해 시도해보았습니다.

하지만 이 과정에서 블루투스 모듈은 일반적인 맥북에서의 블루투스 사용(마우스 사용, 데이터 전송)에는 이상 없이 동작하지만, 시뮬레이터를 이용하기 위한 개발 환경으로서는 제약 요소가 있음을 알게 되었습니다. 또한 아두이노 Yun과 라즈베리파이와의 연결 과정에서도 USB 블루투스 모듈은 비콘 센서로 활용하기 위한 설정단계까지 진행은 되지만, 최종적으로 비콘 센서로 활용하는 과정에서 정상적인 동작을 하지 않고 문제가 발생함을 확인할 수 있었습니다. 이러한 문제는 블루투스 동글의 애플 인증 여부, 펌웨어 버전 등과 관련된 것으로 보여집니다.

결론적으로 두 개의 블루투스 동글 제품은 최신 버전의 펌웨어를 적용해도 정상적으로 동작하지 않았습니다. 현재 시중에 나와있는 대다수의 제품들은 블루투스 버전과 지원하는 프로파일, 펌웨어 버전 등을 명시하고 있지만 특별히 아이비콘을 지원하는 표시는 찾기가 어렵습니다. 따라서 USB 동글을 활용하여 비콘 센서를 개발 할 때 기능에 따라 2배 이상 차이가 나는 고급형의 제품일지라도, 비콘으로 활용하는 것에는 제약이 있을 수 있습니다. 해외 사이트에서 아이비콘과 관련하여 오픈 소스 기반의 개발 보드와 USB 동글 형태의 블루투스를 연결하는 정보를 찾아보면 일부 적용이 가능한 것으로 보이는 제품들이 있습니다. 하지만 이 제품들의 판매 사이트에서도 아이비콘 관련 인증 여부에 관한 정확한 표시가 없기 때문에 이와 관련된 문제는 실제로 테스트하면서 확인해봐야 할 부분입니다.

 

3. iBeacon App Prototype

아이비콘은 신호를 발생하는 비콘 센서와 신호를 받아 특정한 서비스를 제공하는 어플리케이션으로 구성되어 있습니다. 따라서 오픈 소스 기반의 개발보드를 이용하여 비콘 센서를 제작하고 여기서 발생되는 신호를 바탕으로 무엇인가 정보를 제공하는 어플리케이션을 만들어 볼 필요가 있었습니다. 이를 위해 기능 구현에 초첨을 맞춘 간단한 앱을 제작하였습니다. 테스트 앱은 아이비콘에 적합한 다양한 서비스를 고민하면서 실제 어떤 식으로 앱을 사용하게 될지 예측해 볼 수 있는 것에 초점을 맞추었습니다.

이를 위해 아이패드를 찾아주는 ‘Find My iPad’ 라는 앱을 제작하여 ‘Far, Near, Immediate’ 3단계로 구분된 거리 감지 범위에서의 동작, 비콘 센서가 감지되었을 때의 동작들을 테스트 하였습니다. 이 앱은 아이폰이 비콘 센서 근처에 접근하면 주변에 비콘 센서가 있음을 알려주는 ‘Notification’ 기능과 앱을 실행 시키면 아이패드와 아이폰의 거리를 표시하고, 간단한 텍스트와 ‘녹색, 노란색, 적색’의3단계로 구분된 색상을 통해 상태를 표시하는 형태로 구성되어 있습니다. 이를 통해 실내에서 내 아이패드가 얼마나 떨어졌는지 확인 할 수 있고, 일정 거리를 벗어나거나 근처에 감지되었을 때 알림을 통해 쉽게 찾을 수 있도록 도와줍니다. 이 앱은 아이패드와의 거리와 간단한 알림을 표시하는 프로토타입으로 간단한 기능만을 가지고 있습니다. 하지만 이 과정에서 블루투스 4.0과 아이비콘의 가능성을 확인하고, 이를 활용하는 다양한 서비스를 고민하는 계기가 되었습니다. 최근 사물인터넷(IoT, Internet of Things) 시장에서 ‘놀이동산에서 미아 방지를 위한 서비스’, ‘애완동물 위치 서비스’ 등의 중요한 물건이나 사람, 동물 등의 위치를 찾아주는 제품/서비스들이 급속히 증가하고 있습니다. 이들은 모두 유사한 기술 기반을 베이스로 다양한 서비스를 접목시킨 사례들입니다. 이처럼 아이비콘을 활용한다면 실내외를 구분하지 않고, 공간이라는 개념 속에서 다양한 응용 서비스들을 구현할 수 있게됩니다. 따라서 이번 프로토타입을 통한 기술 구현의 이해 과정은 향후 재미있는 서비스/제품을 만들어가는 의미있는 첫 단계였다고 생각합니다.

MUSEUM-2

 


무엇이 미래를 미래답게 만드는가?

Part1. 아이비콘의 개념과 원리

Part2. 아이비콘 사용자 리서치 결과

(현재글) Part3. 아이비콘 프로토타입 개발 후기

Part4. 아이비콘 사용자 리서치 과정 공유

Part5. 아이비콘과 미래

13 답글
  1. 문경원
    문경원 says:

    안녕하세요? 학교 프로젝트 진행중에 비콘을 이용해서 거리측정을 하고 싶은데.

    비콘센서 하나와 블루투스 수신이 가능한 디바이스 하나면 센서와 디바이스간의 거리를 측정 할 수 있나요?

    메일로 연락 주시면 감사합니다.

    응답
  2. 조성빈
    조성빈 says:

    안녕하세요. 좋은 글을 발견해 감사드리며 몇가지 질문이 있어서 남깁니다.
    저는 스마트폰에 메세지(쿠폰)를 전송하는 app을 만드려고 하고있습니다. 아무래도 앱개발이 처음이라 모르는게 많습니다..
    제가 생각하는 app 개발과정은
    1. 비콘을 사서 sdk를 보고 비콘에서 핸드폰으로 쏘는 신호를 eclips로 개발한다.
    2. eclips를 이용하여 핸드폰에 클라이언트를 만든다.
    3. 1,2를 두개 연동한다.
    4. eclips를 이용해 서버를 구축한다.
    5. MySQL에 데이터를 저장한 후 서버에 연동을 시킨다.
    6. 최종적으로 비콘앞을 지나가면 메세지를 제공 받는다.
    이거인데요,, 혹시 수정할 점이 있나요??
    부탁드리겠습니다..
    링크 따라서 글을 읽어 보았는데, 구체적인 개발과정은 자세히 안나와있더군요….
    참고로 저는 안드로이드로 개발할 것입니다.

    응답
  3. 김동현
    김동현 says:

    안녕하세요~^^

    후기 정말 잘 보았습니다!

    저도 앱 개발을 하려고하는데 iBeacon이 필요할 것 같아 그와 관련해 문의드립니다.

    혹시 비콘마다 음식점이라는 카테고리로 분류 뒤 스마트기기를 가지고 음식점 근처에 다가갈 때 마다 어플에서 ‘이곳은 한식집이다’, ‘ 이곳은 일식집이다.’ 등 으로 판단할 수 있도록 하고싶은데 가능할까요??

    그리고 혹시 이를 통해 어플을 만드려면 꼭 iOS에서 해야될까요?? 안드로이드에서는 안되나요?

    메일로 답장 주시면 정말 감사하겠습니다!^^

    응답
  4. 이지나
    이지나 says:

    안녕하세요 도움 되는 글들 감사합니다!
    저도 비슷한 질문을 드리고 싶은데
    현재 BLE기반의 비콘을 이용해서 거리측정을 하고 그것을 기반으로 어플을 만드려고 하는데
    아이비콘말고 다른 비콘을 사용해봤을때는 오차가 정말 크더라구요
    몇 m 차이가 나서 실제로 사용하기에는 어렵겠더라구요
    그래서 아이비콘을 써보면 더 나을까 싶어서요
    혹시 어떻게 생각하시나요?

    응답
  5. 김두현
    김두현 says:

    비콘 관련글 잘 읽었습니다.
    저는 비콘을 이용해서 다음의 어플을 만들어 보려고 하는데요
    – 송신사물에서 위치를 전송해주면 수신사물에서 위치를 파악하고 수신사물이 송신사물의 위치로 이동하도록 하는 것입니다.
    – 장소는 실내이고요, xyz축상에서 송신사물과 수신사물을 일치시키고 싶습니다

    관련기술이나 기술적인 상담이 가능한지요?
    메일 부탁드립니다.
    감사합니다

    응답
  6. 서민영
    서민영 says:

    안녕하세요

    후기 정말 잘 보았습니다.

    제가 학교에서 프로젝트를 진행하는데 비콘에 대해 궁굼한게 있어 글을 남깁니다.

    이번에 Iot 쪽 비콘을 사용하는게 완전 첨음이고 인터넷에 또한 광고형 자료가 많아 원하는 자료를 찾기가 어려워 도움을 요청하고자 합니다.

    비콘에서 부터 정보를 받아오는 앱을 만들어야 하나요 ?

    만약 만들어야 한다면 오픈 소스를 어디서 구할수 있는지에 대해서도 궁금합니다.

    실례가 되지 않는다면 메일로 답변 부탁드리겠습니다

    응답
  7. 이규탁
    이규탁 says:

    대학생입니다. 친구들과 프로젝트를 진행중인데
    비콘 통신 과정에서 비콘 단말기 외에 CPU, MCU 기능이 비콘 단말기 내에 탑재가 되어 있나요??
    그리고 수신된 신호를 스마트폰 단말기를 이용해서 클라우드 서보로 연결 되고 다시 신호를 받고 그런 원리로 알고 있습니다. 클라우드 서버가 어떻게 구축되는지 자세하게 잘 모르겠습니다…
    메일로 조금 알려주실수 있을까요??

    응답
  8. 한동엽
    한동엽 says:

    안녕하세요 비콘을 졸업작품으로 생각하고있는 대학생입니다
    특정지역에 가면 해당지역의 정보를 수신할수 있는 기능을 구현하려합니다
    관련 소스 라든지 조언 혹시 구할 수 있는지요??
    메일로 답변주시면 감사하겠습니다.

    응답
  9. 고미영
    고미영 says:

    비콘을 이용해서 앱을 개발하려고 하는데 어디서부터 진행해야 될지 감이 잡히지 않습니다.

    1. 비콘 단말기 구매시 제공되는 SDK 를 개발하려는 어플에서 어떻게 사용해야하는지 알고싶습니다

    2. 비콘에서 정보를 받아오는 앱을 별도로 만들어야하는지 아니면 구매 시 제공하는 어플을 이용하는 건지 알고싶습니다.

    3. 만약 만들어야 한다면 관련된 소스를 어디서 얻어야 하는지 알고싶습니다.

    응답
    • 이헌
      이헌 says:

      안녕하세요.
      1. 비콘 단말기 구매시 제공되는 SDK 를 개발하려는 어플에서 어떻게 사용해야하는지 알고싶습니다
      ->이 부분은 해당 SDK마다 다르기 때문에 답변이 어렵습니다.

      2. 비콘에서 정보를 받아오는 앱을 별도로 만들어야하는지 아니면 구매 시 제공하는 어플을 이용하는 건지 알고싶습니다.
      ->비콘을 이용하는 것도 어떤 앱에서 사용하기 위함일 것입니다. 당연히 어플을 만들게 됩니다.

      3. 만약 만들어야 한다면 관련된 소스를 어디서 얻어야 하는지 알고 싶습니다.
      ->iOS는 애플에서 제공하고 있으니 해당 SDK 참고 바라며 비콘을 구매하셨다면 비콘 업체의 SDK와 샘플코드를 보시는 것이 가장 도움 될 것 같습니다.

      감사합니다.

      응답
  10. 정지훈
    정지훈 says:

    안녕하세요.
    비콘통신을 기반으로한 로봇제어로 졸업작품 주제를 했습니다.

    1. 비콘으로 위치를 받아서 아두이노를 통해 로봇제어를 하려고 합니다. 위치를 전송해주면 수신사물에서 위치를 파악하고 맵핑이 되어 로봇이 송신사물의 위치로 이동하도록 하는 것입니다.

    2. 장소는 실내인데, xyz축상에서 송신사물과 수신사물을 일치하려면 어떤식으로 하는게 적합한가요? (조사해본 결과 칼만필터를 이용하였는건데, 정확히 모르겠습니다)

    3. 아두이노와 로봇을 어떤식으로 제어 해야할지 알고싶습니다.

    바쁘실텐데,
    확인하는대로 메일로 답변을 주시면 감사하겠습니다.

    응답
  11. 서준우
    서준우 says:

    안녕하세요!!
    아이비콘을 이용해서 비콘과 수신기( ex 스마트폰 or 노트북 ) 와의 거리 측정을 통해서
    실내 측위 시스템을 구축하고자 하는 학생입니다.
    Bluno를 사용해서 거리를 측정하셨다고 하셨는데 컴파일러는 어떤것을 이용하셨는지와 혹시 그에 해당하는
    오픈소스가 있는지 알고 싶습니다ㅜㅜ
    그리고 제가 아이비콘에 대해서 지식이 짧아서 도움이 될만한 자료들도 부탁드리겠습니다….

    응답
  12. 이훈태
    이훈태 says:

    안녕하세요!
    학교에서 프로젝트로 비콘을 만드려보려고 하는데 완성품 비콘을 사는 것 이 아니라
    비콘 단말기 자체를 만들어보고 싶은데 어떤 재료들이 필요한지 그리고 어떻게 실험을 하면 좋을지
    알고 싶습니다 !! 그리고 비콘 관련 자료들도 주시면 정말 감사하겠습니다
    좋은 글 감사합니다!

    응답

댓글을 남겨주세요

Want to join the discussion?
Feel free to contribute!

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다