위즈네트 아카데미

TUTORIAL

튜토리얼

Home  > 튜토리얼

BLE to TCP Gateway

WIZnet Academy 2016.10.17 10:39 조회 수 : 152

IoT란 Internet of Things의 약자로, 모든 사물이 인터넷에 연결되어 정보를 주고 받는다는 의미입니다. IoT는 차세대 인류에게 굉장한 편리함을 제공 할 것으로 예상 됩니다.
예를 들면, 외출 했을 때 단말기를 통해 집안의 가스밸브나 시건 장치가 잠겨있는지 확인 및 제어하여 집으로 되돌아 오는 경우가 없을 것이며, 집에 들어가기 전 온도센서를 이용하여 집안의 온도를 확인한 뒤 미리 에어컨 혹은 히터를 켜 집에 가자마자 쾌적한 환경에서 휴식을 취할 수 있습니다. 이 외에도 활용 방안은 무궁무진 합니다.

ble_tcp_1

사물이 Internet에 연결 되려면 통신 수단이 있어야 합니다.
Ethernet은 선으로 연결 해야 되고, 전류소모가 많습니다. Wi-Fi는 무선이지만 단가가 비싸고, 전류 소모가 많습니다.

ble_tcp_2

그래서 우리는 저전력 무선 IoT를 구현하기 위해 BLE를 선택 하였습니다. BLE는 Bluetooth Low Energy로, 우리가 흔하게 사용 하는 Bluetooth의 저전력 형태입니다. Coin Cell Battery로 최대 5~6개월 동안 구동이 가능하며, 작은 Size와 저렴한 가격으로 구성 할 수 있는 게 장점입니다. 단점으로는 TCP를 지원하지 않고, Local Network이므로 Internet에 직접적으로 연결 할 수 없다는 게 있습니다.
ble_tcp_3

Bluetooth는 이미 저전력 단거리 무선 연결 분야에서 지배적 위치를 갖고 있습니다.
그리고, 일반적으로 심박수 측정기, 스마트 와치, 센서 등의 Bluetooth Device들은 인터넷(TCP/IP)에 연결하기 위해서는 스마트폰을 게이트웨이로 사용하고 있습니다. 그러나, Bluetooth가 Smart phone 없이도 TCP/IP 네트워크에 연결되어야 하는 상황들은 점점 많아지고 있습니다. Bluetooth 4.2 부터 IPSP(Internet Protocol Support Profile)를 지원 하지만, Router 또는 Gateway가 Linux 기반의 고사양 제품이 필요하기 때문에 이를 활용하기에 어려움이 있습니다. 우리는 Gateway도 저렴하고 가벼워지길 원했습니다.

이에, 위즈네트에서는 Bluetooth Device가 Smart phone 없이도 인터넷 망에 접속하여 구글, IBM, 아마존 등의 클라우드 서비스들에 접속할 수 있도록 BLE to TCP 솔루션을 소개하고자 합니다. WIZnet의 Hardware TCP/IP Chip인 W5500과 Wi-Fi 모듈인 Wizfi310, 그리고 Nordic의 Coretex-M4F 기반의 BLE SoC인 nRF52832를 이용하여 원하는 형태의 저전력 IoT Gateway를 만들었습니다.

ble_tcp_4

이 Gateway를 이용하면 BLE Node의 각종 Data를 BLE로 받고, TCP, UDP, MQTT 등 원하는 Internet Protocol로 변환하여 각종 Cloud Server에 Data를 전달 할 수 있습니다. (Google, Amazon, Azure, Bluemix 등등) Node로부터 전달된 Data는 외부에서 Smart Phone 또는 PC를 통해 확인 할 수 있으며, 반대로 Smart Phone이나 PC에서 Data를 입력하면 Cloud Server를 통해 최종 Node까지 전달 할 수 있습니다.

ble_tcp_5

이 Gateway를 이용하여 BLE Data를 Cloud Server인 Thingspeak에 전송 하는 것을 구현 하였습니다. Node는 BLE Standard Profile인 Heart Rate Service를 사용하여 Heart Rate Data를 Thingspeak DashBoard에서 확인 하였습니다.

ble_tcp_6

순서는 아래와 같습니다.

  1. Nordic의 기본 개발환경 설치
    https://devzone.nordicsemi.com/tutorials/36/

  2. H/W Setting


아래 그림과 같이 Micro USB를 PC에 연결하고, Ethernet Cable을 Router에 연결합니다. 그리고 Writing을 위한 J_LINK도 연결 해 줍니다.

ble_tcp_73. Thingspeak 회원가입 및 Channel 생성.

ble_tcp_8

  • Channels -> My Channels -> New Channel -> 이름 기입 -> Save Channel


ble_tcp_9

ble_tcp_104. API Key 적용

  • API Keys 에서 Write API Key 복사합니다.


ble_tcp_11

  • ...BLE_to_TCP_HRS_Thingspeakexamplesble_centralble_app_hrs_cpca10040s132arm5_no_packs 경로에서 프로젝트를 열어c의 #define WRITE_API_KEY에 복사한 Key 값을 대입합니다.


ble_tcp_125. Build & Writing

Build 한 후에, nRFgo Studio를 통해 SoftDevice (BLE Stack)과 F/W를 Writing 합니다.
ble_tcp_13

ble_tcp_14

주위에 BLE Heart Rate Profile을 지원하는 기기가 있다면 자동으로 인식하여 Thingspeak Cloud에 보내주고, 사용자는 Thingspeak Dash Board에서 이를 확인 할 수 있습니다.

ble_tcp_15

F/W는 아래 링크에서 다운 받으실 수 있습니다.

https://github.com/hooni1020/BLE_to_TCP_HRS_Thingspeak/