IoT HackDay에서 우승하기!

안녕하세요! SK Planet 인프라엔지니어링 팀에서 클라우드 시스템 엔지니어링을 담당하고 있는 장경철입니다.

이번 Amazon Web Service 서밋 서울 행사 때 AWS와 Intel에서 주최한 사물인터넷(IoT) Hackday도 함께 개최되었는데 이 행사에 같은 팀 김종민, 송지형매니저와 함께 참가하여 대상(1위)을 수상하였습니다. 이번 Hackday는 AWS가 미국밖에서 주최한 첫번째 IoT 해커톤이라고 합니다. 55명 18개 팀이 참석을 했고요~.

저희가 구현한 사물인터넷 기기와 구현 방법에 대해서 설명 드리려고 합니다. 다양하게 확장 가능한 기술이며 이렇게도 구현할 수도 있구나 하고 읽어주시면 감사하겠습니다.

먼저 이번 HackDay에서 사용한 기술 에 대한 소개부터 해드리려 합니다.

사물 인터넷 IoT(Internet of Things) 이란?

사물에 다양한 센서와 통신기능 모듈 등이 탑재된 임베디드 시스템을 통해 인터넷에 연결하여 데이터를 수집하고 제어하는 기술입니다.  예로 센서 기반의 자가학습 및 프로그램 입력이 가능한 온도조절기인 NEST와 Mobile App과 연동 하여 운동량을 기반으로 건강 관리 하는 Nike FuelBand가 대표적인 IoT기술이라고 할 수 있습니다. 가트너에서도 가파른 IoT 기기 증가 추세에 대해서도  언급 하기도 했었죠. http://www.gartner.com/newsroom/id/2636073

Intel Edison이란?

위에서 언급한 임베디드 시스템의 대표적인 상품이며 CPU, Memory, Flash disk, Wi-Fi 모듈을 보유하고 있어서 추가 센서 보드 확장을 통해 데이터 수집 및 제어를 할 수 있는 기기입니다. 2014년 말에 상품으로 오픈 되었으며 성능 대비 매우 컴팩트한 크기가 최대 장점입니다.  500Mhz 듀얼코어 CPU, 1GB 메모리, 4GB 스토리지, Wi-Fi, 및 Bluetooth 의 스펙을 가지고 있습니다.

그림1. 실제 사이즈 비교

Grove sensor 란?

그림2. Grove sensor

Seeed Studio에서 개발한 센서로 터치, 사운드, 온도, 빛 센서 및 LCD, LED 디스플레이 등 이 Edison 과 Base Shield로 연동 되여 데이터를 수집 및 디스플레이 할 수 있는 하드웨어입니다. SparkFun 개발키트와 더불어 가장 유명한 Edison 연동 하드웨어 입니다.

 Amazon Web Service 란?

퍼블릭 클라우드(인터넷을 통해 IT 리소스와 애플리케이션을 온디맨드로 서비스)를 제공 하는 가장 유명한 Provider 입니다. IoT기기 에서 수집되는 방대한 데이터를 저장하고 분석할 수 있도록 리소스를 제공 해주며 AWS내의 다양한 서비스를 이용하여 자유롭게 IoT기술을 구현할 수 있습니다.

그럼 본론으로 들어가 이번 Hackday에서 저와 저희 팀이 개발한 내용에 대해 말씀 드리겠습니다.

서비스 명은 TABATA 라고 이름을 지었으며 서비스 내용은 실시간으로 몸 상태 변화를 분석해 노래를 운동량에 맞게 실시간으로 추천 및 스트리밍 해주는 IoT 퍼스널 트레이너를 컨셉으로 했습니다.  구현 내역에 대해서 크게 세 가지 영역으로 설명 드릴 수 있습니다.

그림 3. IoT 서비스 컴포넌트

첫 번째, 수집(프리젠테이션) 영역은 임베디드 디바이스 및 센서로 크게 구성 된 영역입니다.
대회 때는 위에서 설명 드린 Intel Edison을 사용하였으며 추가 Grove 센서 보드 확장을 통해 심박수, 감정(GSR),  온도, 진동 센서, LCD 디스플레이를 사용하여 데이터를 수집하고 보여주도록 구현하였습니다.

두 번째, 분석영역이며 실제로 서버의 컴퓨팅 자원을 활용해 대량의 가공되지 않은 데이터를 쓸모 있는 정보로 분석해주는 영역이라고 볼 수 있습니다. 대회 때는 저희가 서버에 있는 심박수, 감정, 온도등 0.2 초당 들어오는 데이터를 10초 단위로 취합하여 집계하며 빅데이터 시스템(하둡 클러스터)을 통해 분석된 나의 평균 값 데이터와 비교해 백분율로 만들어 주고, 그 값을 바탕으로 나의 운동량에 맞는 노래를 추천하도록 구현하였습니다. 앞으로 이 분석 영역에 머신러닝을 기술을 적용하여  다양한 기능들을 구현 할 수도 있을 것 같습니다.

세 번째, 시각화 및 데이터 저장영역입니다. 의미 있는 데이터라고 하더라도 직접 최종 사용자 입장에서 받아들일 수 있도록 보여주거나 저장하여 타 시스템과 연동 한다거나 나의 이력을 SNS로 공유 하는 작업을 해야지 실제로 의미가 있다라고 생각 합니다. 이 기능을 실제 클라우드 기반으로 다양하게 처리를 할 수 있으며 특히 클라우드의 자동화된 기능들과 방대한(massive) 확장성을 바탕으로 손쉽게 방대한 데이터를 저장하고 시각화를 하는 동시에 공유를 할 수 있도록 서비스도 설계 하였습니다.

[연동 센서 및 H/W]

심박수, 감정(GSR),  온도, 진동 센서, LCD 디스플레이 및 Bluetooth 스피커

[구현 내역]

  • Python으로 Intel Edison 제어 및 데이터 수집 코드 개발
  • 디바이스 인증 관련 프로세스 개발 (버튼을 5초 누르고 있으면 인증서버와 MAC 확인 및 Queue 생성)
  • 실시간 스트리밍 서비스(Kinesis)에서 데이터를 취합 할수 있도록 Python코드 개발
  • 취합된 데이터 정보를 보내고 활용 할수 있는 API서버 개발
  • 빅데이터 분석을 위한 EMR(Hadoop) 클러스터 연동 및 분석 Hive Query 개발
  • 메세징큐 통신을 할수 있도록 Edison에서 SQS연동 Python코드 개발
  • 추천 노래를RTMP프로토콜로 스트리밍 할 수 있도록 S3와 CloudFront 연동
  • 스마트폰과 AWS SNS연동을 위한 Push Application 개발(GCM이용)

[동작 방법]

  1. Intel Edison과 Grove 버튼 센서를 통해 AWS에 있는 API 서버와 인증을 시도
  2. MAC 인증이 이루어 지면 추후 데이터를 받아올 SQS(Queue) 서비스를 기기 별로 생성
  3. 심박수, 감정, 온도 등 연동한 센서를 통해 실시간으로 데이터를 AWS 시스템으로 전송
  4. 실시간 데이터 중 정보로 활용할수 있는 데이터만 수집(10초 단위로 취합하여 집계)
  5. 집계된 데이터와 나의 몸 상태 평균 데이터를 비교한 값을 백분율로 가공
  6. Queue와 Notification 서비스로 상태 값만 전송 (빠름 5, 빠름4, 보통3, 느림2, 느림1)
  7. SNS 을 통해 모바일 기기에서 현재 운동량과 평균 비교 값 확인
  8. Edison 에서 1:1로 매칭 되어 있는 SQS의 입력된 상태 정보를 메세징 큐 통신 하여 LCD 에 디스플레이 및 운동량 비교 값에 기반한 추천된 노래의 메타값 획득 -> 추천된 노래의 메타값을 AWS S3와 CDN을 통해 RTMP 프로토콜로 실시간 스트리밍하며 Bluetooth 스피커로 출력-> AWS에 구축한 대쉬보드로 실시간 운동량 비교 값 확인
  9. 운동 종료 후 저장되어 있는 대량의 데이터를 하둡 클러스터로 분석하여 운동량 레포트 제공

[서비스 구조도]

그림 4. 서비스 구조도

글을 마치며

대회 특성상 제한된 시간(12시간)내에 서비스를 구현해야 하는 상황이라 중간에 연동이 필요했던 Bluetooth  스피커를 가지러 송지형 매니저님이 집에 택시 타고 다녀오는 등 재미있는 상황도 많았으며 김종민 매니저님과 아이디어를 브레인스토밍 할 때 힘들기도 했지만 즐겁고 의미 있는 시간이었습니다. SK 플래닛에서 인프라엔지니어로 일하면서 다양한 서비스들을 설계해보고 연동해보는 경험을 해본 덕에 여러 기능을 어렵지만 간단하게라도 직접 구현해 볼 수 있었으며 이 부분이 우승 할 수 있게 한 가장 큰 이유라고 생각 합니다.

1등을 하고 블로터 기사에도 나는 영광을 누렸습니다!  대회 때의 사진과 데모 영상을 공유하면서 마무리합니다. 🙂

함께 고생한 김종민, 송지형매니저님께 다시 한번 감사하다는 말씀 드립니다!!

장경철 인프라엔지니어링팀

SK Planet 인프라엔지니어링팀 장경철입니다.
클라우드 시스템을 2010년도 부터 설계/엔지니어링을 하면서 클라우드 시스템이 전통적인 인프라 환경의 변화를 주도 하고 효율적으로 인프라 제공 시간을 줄여줄 뿐만 아니라 사용자들에게 정말 중요한 일에만 집중 할 수 있도록 도와준다라고 믿고 있습니다. 또한 클라우드 시스템은 인프라와 소프트웨어의 상호관계부터 글로벌 비즈니스까지 모든 사람, 모든 곳에서 가치가 있을 것이라 생각합니다.
앞으로도 클라우드 엔지니어로써 탄탄한 프라이빗 클라우드 설계와 구축 그리고 인프라 환경을 개선하여 사용자 경험을 바꿀 수 있도록 앞장서서 이끌어 가겠습니다.

Go to CLOUD. Take a shot !!

Facebook LinkedIn 

공유하기