2014.08.27 04:55

IBM IoT Cloud Raspberry Pi Node JS를 이용한 Test

IBM IoT Cloud 는 Device recipe라는 형태의 일종의 패키지를 제공하여 다양한 종류/환경의 단말이 IBM IoT Service를 이용하도록 하고 있다.


물론 라즈베리파이에 대한 Device recipe도 있으며 다음 ( https://developer.ibm.com/iot/recipes/raspberry-pi )에서 좀 더 자세한 기능을 확인 해 볼 수 있다.


IBM에서 공식적으로 제공하는 라즈베리 파이용 Device Recipe 는 Rasbian용 debian binary package 형태로 되어 있기에 Cross Compiler를 이용한 Build 환경을 갖춰야만 IBM IoT 통신 프로토콜(MQTT)을 사용하는 Client App를 개발해야 하는데, Intel Galileo용 Device recipe는 Node.js로 구성되어 있어 이를 활용해 보고자 한다.


0. 사전 준비

좀 더 시간이 지나면 Node.js용으로 필요한 부분만 사용 할 수 있도록 정리하겠지만

일단, Node.js용으로 IBM IoT 환경을 구성한다 하더라도 라즈베리 파이용 device recipe 가 선행되어야 한다.


특히 IBM PaaS Platform인 Bluemix 등록 및 IoT Foundation 환경 구성을 비롯한 단말 정보 등록 과정들은 반드시 사전에 진행되어야 한다.



1. Node JS 설치

라즈베리 파이에 Node JS는 [ Raspberry Pi에 Node-JS 설치하기 ]를 참고


2. Node JS용 Quick Start 가져오기

앞서 이야기 했듯이 Intel Galileo용으로 제공하는 Device Recipe https://developer.ibm.com/iot/recipes/intel-galileo )인데 Node.js 실행환경이라면 사용에 별 문제가 없다.


다만, Intel Galileo의 모든 Quick Start (ibm-iot-quickstart.zip)를 다 가져올 필요는 없고 우리가 필요한 JavaScript 파일과 json 파일만 가져오도록 한다.


라즈베리용 Device Recipe에서 생성한 device.cfg와 같은 폴더에 다음과 같이 파일을 다운로드 받는다.


sudo wget -O /etc/iotsample-raspberrypi/ibm-iot-quickstart.js https://github.com/ibm-messaging/iot-galileo/raw/master/samples/nodejs/package.json/ibm-iot.js

sudo wget -O /etc/iotsample-raspberrypi/package.json https://github.com/ibm-messaging/iot-galileo/raw/master/samples/nodejs/package.json



그리고 다운로드 받은 ibm-iot.js 를 보면 deviceType이 default로 iotsample-galilieo로 되어 있다. 

이 값은 device.cfg에 정의되어 있는 경우 override 되긴 하지만 라즈베리를 위한 기본 값으로 iotsample-raspberrypi로 변경하여 저장한다.


그리고 node ibm-iot.js로 JavaScript를 실행 해 보면 MQTT 모듈이 설치되어 있지 않아 오류를 발생하게 된다.


<그림>


Quick Start에 필요한 node module은 package.json에 정의되어 있으므로 아래와 같이 npm을 이용한 node module을 설치한다.


sudo npm install


자 이제 다음과 같이 quick start를 실행 해 보면 binary로 실행되는 것처럼 메시지가 정상 동작하는 것을 확인 할 수 있다.


node ibm-iot.js -v

Trackback 0 Comment 0