라즈베리파이 node.js 기반 DHT11 온/습도 센서 데이터 읽기

 

 

5v 사용

 

라이브러리 설치

(출처 : Raspberry Pi 에서 node.js를 이용하여 온도/습도 측정 )

bcm2835 설치

$ wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.52.tar.gz
$ tar xzf bcm2835-1.52.tar.gz
$ cd bcm2835-1.52
$ ./configure
$ make
$ sudo make check
$ sudo make install

node-gyp 설치

$ sudo npm install -g node-gyp

node-dht-sensor 설치

$ npm install node-dht-sensor

 

node-dht-sensor 테스트

(출처 : http://fishpoint.tistory.com/1899 )

var sensorLib = require('node-dht-sensor');
 
var sensor = {
  initialize: function() {
    return sensorLib.initialize(11, 4);
  },
  read: function() {
    var readout = sensorLib.read();
    console.log('Temperature: '+readout.temperature.toFixed(2)+'C, humidity: '+readout.humidity.toFixed(2)+'%');
    setTimeout(function() {
      sensor.read();
    }, 1500);
  }
};
 
if (sensor.initialize()) {
  sensor.read();
} else {
  console.warn('Failed to initialize sensor');
}


출처: http://fishpoint.tistory.com/1899 [기린]

 

node.js를 이용하여 GET method 동작 시키기

지난 게시물에( http://vlee.kr/2013 ) 이어 GET method 반환 값으로 JSON 포멧으로 전달 해보자.

var express = require('express');
var router = express.Router();
var sensorLib = require('node-dht-sensor');

var sensor = {
        initialize: function() {
                return sensorLib.initialize(11, 24);
        },
        read: function() {
                var readout = sensorLib.read();
                setTimeout(function() {
                        sensor.read();
                }, 1500);

                return readout;
        }
};


/* GET users listing. */
router.get('/', function(req, res, next) {
        var readout;
        if(sensor.initialize()) {
        readout =sensor.read();
        }
        res.setHeader('Content-Type', 'application/json');
        res.json(readout);
});
module.exports = router;

 

 

 

Leave a Reply