본문 바로가기

IoT

Raspberry Pi 에서 node.js를 이용하여 온도/습도 측정

최근 Raspberry Pi2에 Raspbian을 새로 설치하고 여러 사이트들을 참조하여 node.js를 이용하여 온도/습도를 알아오는 코드를 작성해 보았다.

우선 node.js까지 설치가 되어 있다는 가정하에 필요한 모듈들 설치 및 코드 작성하는 방법에 대해 기술했다.


Raspberry Pi2 에 DHT11 온도 습도 센서 연결

DHT11 sensor와 RPI2 간 연결은 아래와 같이 연결했다.

DHT11

RPI2 GPIO 

GROUND

GROUND 

DATA 

GPIO4 

PWR 

3.5V 



bcm2835 설치

Broadcom BCM 2835용 C Library를 설치한다. 이 라이브러리는 Raspberry Pi에서 GPIO에 access 할 수 있는 기능을 제공한다.(참조: http://www.airspayce.com/mikem/bcm2835/)

wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.50.tar.gz

tar xvzf bcm2835-1.50.tar.gz

cd bcm2835-1.50

./configure

make

sudo make check

sudo make install


node-gyp 설치

node-dht-sensor 라이브러리가 node-gyp 빌드 툴을 사용해서 빌드하기 때문에 설치가 필요하다.

sudo npm install -g node-gyp


node-dht-sensor module 설치

node project 생성 후 module 추가(참조: https://github.com/momenso/node-dht-sensor)

 npm install node-dht-sensor 


sample code 작성

아래 코드를 작성 후 실행

// file name : sample.js

var sensor = require('node-dht-sensor');


var result = sensor.read(11, 4);

console.log( "temperature: %s, humidity: %s", result.temperature.toFixed(1), result.humidity.toFixed(1) );


for (var n in result) {

    console.log(n + ": " + result[n]);

}


코드 실행 후 isValid값이 true인 경우에만 온도/습도 데이터가 출력된다.

Reference

https://github.com/momenso/node-dht-sensor

http://www.airspayce.com/mikem/bcm2835

'IoT' 카테고리의 다른 글

[Raspberry Pi] Node.js 설치하기  (0) 2015.08.09
[Raspberry Pi] WebIOPi 설치 방법  (0) 2015.08.02