블루투스 이용한 IoT...스마트홈 시스템 구현에 핵심

2016.01.05 17:56:56

[무료 웨비나] 업무의 새로운 패러다임 RPA !? 무엇이든 물어보세요 !! (6/11)

지금까지 블루투스는 주로 컴퓨터와 기기의 1대1 통신을 위주로 사용됐다. 하지만 블루투스 4.2를 탑재한 사물인터넷 기기나 스마트 디바이스를 이용하면 인터넷에 직접 접속할 수 있어 좀 더 편리한 방법으로 스마트홈 시스템을 구현할 수 있다.

 

 

ⓒGetty images Bank


 


블루투스 4.2 기술의 전망


 

현재 블루투스 기술은 4.0을 넘어서 4.2로 진행하고 있다. 대부분의 블루투스 업체들은 4.0 기반의 하드웨어에 소프트웨어 업그레이드를 통해 4.1 혹은 4.2를 지원할 예정이라고 한다. 4.2에서 강조되고 있는 기능은 연결성의 강화다.

블루투스는 지원 기기 간의 호환성이 매우 뛰어나다. 또한 오픈 라이선스여서 기술 사용에 라이선스비를 물지 않기 때문에 각광을 받으며 빠르게 성장했다.

블루투스 기기 출하 대수는 2000년에 80만 개였지만 2014년에는 한 해 동안 30억 개의 기기가 나왔다. 2018년에는 약 50억 개가 생산될 것으로 예상하고 있다.

블루투스 규격 및 향후 기술 방향에 대해 규정하는 블루투스 SIG는 2018년까지 블루투스 스마트 기술이 스마트홈 분야를 비롯해 소비자가전, 비콘과 유통, 건강 분야에서 크게 성장할 것으로 전망했다.

하지만 현재의 블루투스 규격은 몇 가지 아쉬운 점이 있다. 저전력을 강조하다 보니 속도 및 대역폭이 낮다는 문제다. 다른 IT 기기의 발전과 맞물려 보다 많은 대역폭과 활용성을 더 갖춰야 미래를 열어갈 수 있다.

이런 점을 개선하기 위해 새로운 차세대 블루투스 규격이 등장했다. 블루투스 SIG는 최신 규격인 ‘블루투스 4.2(Bluetooth 4.2)’ 버전을 발표했다. 2013년 12월에 공개된 4.1 버전의 후속 규격이다. 새로운 무선 연결시대를 열어갈 블루투스 4.2 규격에 대해 간단히 먼저 살펴보겠다.


빨라진 전송속도 :속도는 2.5배, 패킷 용량은 10배 증가


블루투스 4.2 버전은 기존 4.0 규격 대비 전송 속도가 2.5배 증가했다. 또한 한 번에 보낼 수 있는 패킷 용량을 10배로 늘렸다. 한 번에 보다 많이 보낼 수 있으면서 데이터 자체의 전송 속도가 빨라졌다. 따라서 보다 적은 배터리 소비로 많은 데이터를 보낼 수 있으며 전송 오류도 줄일 수 있게 됐다. 데이터 전송 효율로 따지면 250배가 증가한 셈이다.

속도 증가는 지연 현상을 줄여 각 기기 간 동기화를 원활하게 해준다. 이런 규격 특성을 이용해서 스마트폰 같은 음악 재생기기를 근처에 가져가면 자동으로 연동해 가까이 있는 스피커가 자동으로 재생을 이어받는 스마트 오디오 시스템도 출시될 예정이다.

기존 블루투스 4.0 버전은 2010년 6월 30일에 나왔으며 저전력 소모를 위한 싱글과 듀얼 모드가 각각 초당 1Mbit와 3Mbit의 전송 속도를 지원하고 있다. 또한 추가되는 하이스피드 규격을 지원하면 초당 24Mbit의 전송 속도를 낼 수 있었다.


연결성 강화 : 인터넷 프로토콜 지원으로 사물인터넷에 대응


블루투스 4.2 버전부터는 인터넷 프로토콜 지원 프로파일(IPSP) 개발로 블루투스 장치가 인터넷에 직접 접속할 수 있다. IPSP는 블루투스에 무제한 인터넷 주소 체계인 IPv6와 저전력 무선통신 기술인 6LowPAN(IPv6 over Low power Wireless Personal Area Network) 적용을 가능하게 만들었다.


이제까지 블루투스는 주로 컴퓨터와 기기의 1대1 통신을 위주로 사용됐다. 하지만 블루투스 4.2를 탑재한 사물인터넷 기기나 스마트 디바이스를 이용하면 인터넷에 직접 접속할 수 있다.

따라서 좀 더 편리한 방법으로 스마트홈 시스템을 구현할 수 있다. 블루투스4 .0부터 적용된 저전력(LE)을 통한 에너지 효율성도 좋아졌다. 최대 60m, 일반적으로 20m 수준의 반경에 걸친 연결을 지원해서 비콘 등 무선통신 기술로도 활용도가 높아졌다. 최근 업체에서도 이러한 경향을 이어받아 블루투스 장치와 바로 접속 가능한 홈 서버 등의 장비가 출시되고 있다.


개인정보 보호 :128비트 AES 암호화, 허락 없는 위치 추적 차단


블루투스 4.2 버전부터는 개인정보보호 기능도 크게 향상됐다. 개인정보와 사생활 보호를 위한 보안 기능을 제공하고 사용자 허락 없이 블루투스 기기 위치를 추적할 수 없다. 128비트 AES 암호화를 통해 공공 분야에서 요구하는 레벨의 보안 등급을 지원한다.

2.5배의 데이터 전송 속도 향상은 새로운 하드웨어가 필요하지만, 개인정보보호는 기존 블루투스 기기에 대한 펌웨어 업데이트만으로도 대응할 수 있다. 이런 보안성 향상은 블루투스가 직접 인터넷에 연결되고 사물인터넷 등에 널리 이용되는 방향에 따른 보완 조치다. 근거리에서 개인이 1대1 기기 연결에 이용하던 때와 달리 해킹에 쓰일 가능성이 훨씬 높아졌기 때문이다.

블루투스 4.2 기술은 LG전자를 포함해서 ST코리아, 디아메스코, BDE, Rooti, 젤리코스터, 인사이트파워 등이 다양한 제품들을 만들어 선보이고 있다. 젤리코스터의 스마트보틀, 디아메스코의 혈당 측정기, 인사이트파워의 전력소비를 줄여주는 스마트 플러그와 같이 실생활에서 유용하고 편리하게 쓰일 수 있는 제품들이 있다.

블루투스 SIG 측은 “웨어러블 등 애플리케이션 다양화로 블루투스 시장은 더욱 확장되고 있다. 피트니스 모니터 등 사물인터넷(IoT)로의 연결이 강화됐다”며 “자동차 안에서 스트리밍 오디오 기능과 같은 인포테인먼트 시스템 적용이 증가하는 등 오토모티브 관련 사업 기회도 증가해 향후 3년 뒤에는 자동차의 70%에 블루투스가 적용될 것”이라고 설명했다. 새로운 규격의 지향점과 미래를 잘 나타내는 말이다.


안드로이드에서의 블루투스 기술 및 방향


<그림 1>은 안드로이드에서 지원하는 블루투스 BLE의 기술에 대한 그림이다.

그림 1. 안드로이드 운영 체제에서 지원하는 블루투스 기술



웨어러블 장치들에 있어서 가장 중요한 요소는 착용하기 편하고 오래 사용할 수 있어야 한다. 안드로이드 운영 체제에서는 이를 위해서 블루투스 스마트 레디라는 기술을 정식으로 탑재하게 됐다. 주요 기술적인 특징을 살펴보면 다음과 같다.

- 극히 적은 피크전력, 평균전력 및 대기전력
- 동전 모양의 배터리로 수년간 작동할 수 있는 역량
- 저비용
- 다수 업체 간의 상호호환성
- 길어진 송수신 거리

안드로이드 운영 체제에서는 기존의 지원 방식과 마찬가지로 블루투스 저전력 기술을 이용하기 위해 android.hardware.bluetooth_le라는 설정으로 사용할 수 있도록 기능을 제공하고 있다.

마찬가지로 manifest 파일에서의 설정 방법은 다음과 같다.


<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />

[리스트 1. 블루투스 사용 설정]


블루투스 스마트 레디 혹은 블루투스 LE(Low Energy) 버전을 사용하기 위해서는 기존 블루투스 사용 방법과는 다르게 새로운 BluetoothManger를 클래스를 통하여 접근하게 된다. BluetoothAdapter를 통해 안드로이드 장치에 연결된 블루투스 LE 장치들을 찾아내고 연결하게 된다.


final BluetoothManager bluetoothManager =
        (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
mBluetoothAdapter = bluetoothManager.getAdapter();

[리스트 2. 블루투스 매니저의 생성]


startLeScan()을 통해 블루투스 장치들을 검색하고 검색된 장치에 대해서는 BluetoothAdapter.LeScanCallback을 통하여 세부 동작들을 구현하게 된다.


AVRCP 1.3 프로파일

블루투스 스피커와 같은 장치들이 인기를 끌고 있고 마찬가지로 블루투스를 통한 멀티미디어에 대한 강화 형태로 AVRCP 1.3이 탑재됐다. 미디어 장치의 재생 제어, 작곡자 및 미디어에 대한 메타 데이터 관리를 할 수 있도록 지원하고 있다.


프로파일

4.3 버전에서 가장 큰 변화라고 하면 다중 사용자에 대한 지원일 것이다. PC처럼 주 사용자와 게스트 사용자를 구분하고, 사용자에 따라 사용할 수 있는 앱과 권한을 제한할 수 있다는 것이다. 이러한 점은 앱 개발 시에도 사용자 프로파일에 따라 작업할 수 있는 권한을 제한할 수 있는 기능을 프로그래밍 할 수 있다는 점이다.
제한된 프로파일에 대한 접근 제어는 [리스트 3]와 같은 설정을 통해 접근하게 된다.


<application ...
    android:restrictedAccountType="com.example.account.type" >

[리스트 3. 제한된 프로파일에 대한 접근]


앱 내부에서 프로파일에 따른 기능 제한을 하기 위해서는 현재 프로파일에 대해 제약 사항을 검사하고 특정 기능이 동작하지 않도록 구성할 수 있다.


UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
Bundle restrictions = um.getUserRestrictions();
if (restrictions.getBoolean(UserManager.DISALLOW_MODIFY_ACCOUNTS, false)) {
   // 기능 제한 코드를 추가
}

[리스트 4. 프로파일 제한에 따른 프로그래밍]


위치정보의 역할

위치정보는 현재 앱 구조에 있어 중요한 역할을 하고 있다. SNS, 체크인, 건강 관리 앱에서의 활동량 측정. 위치 정보의 활용과 정확성을 위해 다음과 같은 기능들을 강화하고 있다.


지오팬싱(geofencing) : 말 그대로 가상의 울타리를 구성하는 기능으로 앞으로 많은 활용이 기대되는 기능이다. 현재는 소프트웨어적으로 구현되고 있으며 안드로이드에서 하드웨어적으로 지원하여 소모 전류를 줄일 수 있는 기능을 제공하고 있다.

그림 4. 위치정보 제공에 대한 그림



와이파이 검색 모드 : GPS를 통해 위치 정보를 찾지만 대도시 실내에서는 쉽지 않고 그것을 보완하기 위해 나온것이 와이파이를 이용한 위치 검색법이다. 이러한 기능을 강화하기 위해 와이파이에 접속하지 않고 검색된 정보를 통해 위치를 추적할 수 있는 기능을 제공하고 있다.


그림 5. 지오팬싱의 개념 그림


구글의 Eddystone


Google의 Eddystone은 크게 하드웨어 데이터 규격과 구글에서 제공하는 Beacon Server-side 플랫폼 두 가지로 구분할 수 있다. <그림 6>과 <그림 7>을 보면 Eddystone에서 추구하는 서비스의 대략적인 그림을 볼 수 있다. 애플의 iBeacon에 대응하는 비콘과 비콘 서비스라고 볼 수 있다.


그림 6. 구글의 eddystone의 서비스 개략도를 표시한 그림


그림 7. 구글의 eddystone의 서비스 개략도를 표시한 그림


 <그림 8>은 구글의 Eddystone 서비스의 내부 동작 방식 및 서비스 방식에 대한 내부 구조도다. 애플의 iBeacon과 마찬가지로 Eddystone에서 전달된 정보를 바탕으로 서버와 연동하여 정보를 전달해주는 구조로 구성된다.


그림 8. 구글 Eddystone의 서비스 구조 및 내부 동작 그림



구글의 Eddystone은 크게 하드웨어 데이터 규격과 구글에서 제공하는 Beacon Server-side 플랫폼 두 가지로 구분할 수 있다.

하드웨어 측면에서 살펴보면, iBeacon은 공식적으로 iOS에서 지원하는 Beacon의 Advertising Data 규격이다. Eddystone은 Android와 iOS를 모두 지원하는 Open Protocol이다. 또한 세 가지의 데이터 패킷(Data Packet)을 지원하고 있다. 하지만 동작하는 방식은 동일하고 전달하는 데이터의 차이만 있다고 보면 되겠다.


Eddystone은 iBeacon과 비슷하게 비콘 ID를 기반으로 한 Eddystone-UID와 URL을  애드버타이징해 기존의 콘텐츠를 바로 볼 수 있도록 하게 하는 URL 방식, 비콘 내부에 있는 센서 정보와 배터리, 송신 상태 등을 모니터링할 수 있게 데이터 값을 실어보내는 Eddystone-TLM(Telemetry) 모드를 지원하고 있다.


Eddystone - UID(Frame Type 0x00)


iBeacon의 ID 영역은 총 20bytes(UUID 16 bytes, Major, Minor ID 각 2bytes)로 되어 있지만 Eddystone의 UID는 총 16bytes이며 두 영역으로 나뉘어 있다. Namespace는 UUID와 비슷하며 10bytes로 구성되어 있으며 기존의 UUID를 활용하여 사용 가능하다. UUID의 총 16bytes에서 가운데 6bytes를 제외하고 앞과 뒷부분을 붙여주어 사용한다.


UUID : 8B0CA750-E7A7-4E14-BD99-095477CB3E77 중 가운데 3영역 E7A7-4E14-BD99를 제외하면 8B0CA750095477CB3E77가 된다. 나머지 6bytes는 Instance로 iBeacon의 Major와 Minor ID처럼 비콘을 구별하는 데 사용된다.


Eddystone - URL
iBeacon은 비콘의 ID를 활용하여 필요한 콘텐츠를 이미 설치되어 있는 스마트폰의 앱을 통해 전달하도록 되어 있는 반면 웹 페이지의 URL을 그대로 전달하여 웹브라우저를 통해 추가적인 앱 설치 없이 정보를 볼 수 있게 하는 장점이 있다. 이러한 URL을 브로드캐스팅할 수 있게 Eddystone에서도 URL 형식을 지원한다. ID 대신 URL scheme과 17bytes의 압축된 URL을 전달하게 된다.

UID와 URL 모드에서 공통적으로 RSSI를 통한 거리측정의 기준이 되는 측정된 Tx값을 보내게 되는데 iBeacon은 1m에서 측정된 RSSI 값을 보내게 되지만 Eddystone은 0m에서 측정한 값을 보내고 있다.


그림 9. BLE를 이용한 IoT 시스템의 구현




Eddystond - TLM
기존의 다른 비콘 모드와는 달리 TLM 모드는 실제 데이터를 실어 보내게 된다. 현재 규정된 데이터 필드는 배터리의 전압과 비콘 내부에 설치된 온도 센서의 온도 정보, 비콘의 동작(리셋) 이후 패킷이 전송되는 횟수, 비콘의 동작(리셋) 이후 0.1초 단위의 시간이 있다.

Nearby API는 Nearby Message API와 Nearby Connections API로 나뉘는데, 이중 Beacon의 애드버타이징 데이터(Advertising Data)를 전달받기 위해서 Nearby Message API를 사용하게 되며 해당 규격은 아직까지 공개되지 있지 않다.


해당 API를 지원하는 안드로이드상의 기능은 플레이스토어 서비스(Play Store service)가 7.8로 업데이트돼야 가능하다고 한다.  하지만 이는 새롭게 출시되는 단말기부터 지원하는 것이 아니라 기존의 안드로이드 버전에서도 해당 모듈만 업데이트되면 가능하므로 오픈 이후 빠른 시간 내에 적용 모델이 늘어날 것으로 예상된다.

Nearby connections API는 주로 같은 로컬 네트워크상의 디바이스들과 연결하여 멀티 게이밍(Multi Gaming)과 같은 기능을 제공하기 위해 사용한다.

Proximity Beacon API는 Eddystone 플랫폼의 일부로 비콘을 등록하고 관리하고 업데이트하기 위한 기능들을 제공하며 REST(Representational State Transfer) 인터페이스를 사용한다. Proximity Beacon API를 이용하여 등록된 비콘의 정보는 클라우드에 저장되며 아래와 같은 meta data를 포함한다.


•Advertised ID (required).
•Status.
•Expected stability.
•Latitude and longitude coordinates.
•Indoor floor level.
•Google Places API Place ID.
•Freeform text description.
또한 Proximity Beacon API를 이용하여 1024byte까지의 데이터를 첨부시키거나 기존에 첨부된 데이터를 이용할 수 있다.
마지막으로 Eddystone - TLM 를 통해 기록된 아래 정보들을 활용해
•배터리 레벨.
•전송된 패킷 수
•비콘의 동작 시간
•비콘의 온도 혹은 측정된 실내 온도

비콘의 상태를 모니터링고 아래와 같은 상황을 알려주기도 한다.
•잔여 배터리량
•설치된 위치로부터 벗어났을 경우에 대한 정보
•비정상적인 동작 정보

이런 Proximity Beacon API를 사용하기 위해서는 구글 계정이 있거나 새로 가입해야 한다.


BLE를 이용한 IoT의 구현


ULP(Ultra Low Power) RF 전문기업인 노르딕 세미컨덕터(Nordic Semiconductor, www.nordicsemi.com)는 IPv6 기반의 인터넷 프로토콜 솔루션인 nRF51 IoT SDK를 이용하여 블루투스를 이용한 IoT 장비를 개발할 수 있도록 지원하고 있다.


물론 다른 업체들도 BLE를 사용한 IoT 장비 개발을 위한 소프트웨어 개발 도구를 릴리스하고 있다.

블루투스 SIG(Bluetooth SIG)에서 이번에 새롭게 발표한 IPSP(Internet Protocol Support Profile)와 IETF(Internet Engineering Task Force)의 6LoWPAN 기술을 활용한 이 SDK는 종단간 IP 기반 통신을 가능하게 함으로써 노르딕의 nRF51 시리즈 블루투스 스마트(Bluetooth® Smart)와 IoT를 구현할 수 있도록 한다는 것이다.

이러한 솔루션은, 지금까지 서비스와 기기 간의 직접적인 통신이 가능해졌지만 서로 인지하는 데 문제가 있었던 스마트 홈, 산업 및 엔터프라이즈 자동화 애플리케이션, 물류 및 액세스 제어, 클라우드 서비스 등과 관련된 대규모, 분산형 클라우드-연결, 이종 네트워크 간의 구축을 가능하게 한다는 점에서 의미가 크다.

IP는 그 자체로 블루투스 스마트 지원 기기(Thing)가 ‘헤드리스 라우터(Headless Routers: 별도의 프로파일을 사용할 필요 없이 IPv6를 통해 직접 연결되는 방식의 라우터)’와 인터넷을 통해 서로 통신할 수 있음을 의미하며, 또한 블루투스 스마트 지원 기기(Thing)가 와이파이나 이더넷, 지그비(ZigBee), 스레드(Thread)와 같은 다른 IPv6-지원 유무선 기술을 이용해 이종 네트워크 형태로 통신할 수 있음을 의미한다.

프록시 또는 전용 인터넷 게이트웨이 브리지 기반의 다른 IoT 솔루션과 달리, nRF51 IoT SDK는 전적으로 개방형 표준에 기반하고 있고, 기기(Thing) 간의 IP 어드레스를 확장하기 때문에 헤드리스 라우터를 가능하게 한다.

이번에 발표된 버전의 프로토콜 스택은 IPSP 및 6LoWPAN 적용 레이어, IPv6 인터넷 라우팅 레이어, UDP(User Datagram Protocol), TCP(Transmission Control Protocol), 전송 레이어, CoAP(Constrained Application Protocol), MQTT(Message Queuing Telemetry Transport) 애플리케이션 레이어와 더불어 다양한 애플리케이션 예제들이 포함되어 있다. 


또한 내장된 메모리는 nRF51 시리즈 SoC상에서 완벽한 프로토콜 스택을 구동할 수 있도록 해주며, 개발자들이 최종적으로 제품의 소모 전류 및 크기, 비용을 최소화할 수 있도록 해준다.

SDK와 더불어 노르딕은 라즈베리 파이(Raspberry Pi) 모델 B와 블루투스 스마트 레디(Bluetooth Smart Ready) USB 동글, 라즈비안(Raspbian) GNU/리눅스 커널 3.17.4 및 radvd 데몬(deamon)을 이용하여 IPv6 블루투스 스마트를 지원하는 헤드리스 라우터를 사용해 볼 수 있도록 소프트웨어 설정을 제공하고 있다. 


이 헤드리스 라우터 설정과 새로운 nRF51-DK 및 nRF51 IoT SDK의 조합으로, 개발자들은 노르딕의 nRF51 시리즈 SoC와 함께 블루투스 스마트 기반 IoT 애플리케이션을 위한 강력하면서도 완벽한 플랫폼을 갖출 수 있다.

지금까지 IoT에 관련된 기술 동향에 대해 살펴봤다. 다음에는 위 기술들을 활용한 실제 구현 사례에 대해 살펴보도록 하겠다.


라영호 _ 테뷸라 대표

Copyright ⓒ 첨단 & Hellot.net




상호명(명칭) : (주)첨단 | 등록번호 : 서울,자00420 | 등록일자 : 2013년05월15일 | 제호 :헬로티(helloT) | 발행인 : 이종춘 | 편집인 : 김진희 | 본점 : 서울시 마포구 양화로 127, 3층, 지점 : 경기도 파주시 심학산로 10, 3층 | 발행일자 : 2012년 4월1일 | 청소년보호책임자 : 김유활 | 대표이사 : 이준원 | 사업자등록번호 : 118-81-03520 | 전화 : 02-3142-4151 | 팩스 : 02-338-3453 | 통신판매번호 : 제 2013-서울마포-1032호 copyright(c) HelloT all right reserved.