SW

10일차. nodejs 서버를 사용하여 console에 온도찍기

S.Zinlee 2015. 11. 27. 23:16

저번 시간에 온도센서를 라즈베리파이에 연결하는 방법에 대해 알아 보았다.


오늘은 앞서 말했던 것과 같이 모듈을 하나 테스트 했으니 서버에 붙일 예정이다.


8일차에 진행했던 node server에 진행해 보도록 한다.


login as : pi
pi@192.168.0.10's password:
pi@raspberrypi ~ $ cd server/was


node server로 이동 하였다면 이제 index파일에 프로그래밍을 할 것이다.


사실 /sys/bus/w1/devices 밑에 잡힌 온도 센서 디바이스에서 w1_slave란 파일을 읽어서 필요한 부분만 짤라서 사용해도 어렵지 않게 코딩을 할 수 있다.


하지만 nodejs는 package를 통해 대부분의 필요한 library를 제공한다.

스스로 직접 코딩해 보는 것도 좋지만 깔끔한 프로그래밍을 위해서는 library를 잘 활용하는 것도 좋다.


nodejs에 package를 간편하게 설치 하기 위해서는 npm이라는 툴이 필요하다.


혹시 nodejs version이 v0.10.x 미만인 경우 v0.10 이상으로 설치하도록 하자.

버전 확인은 nodejs -v로 할 수 있고, 변경 방법은 8일차를 참고하도록 하자.


npm 툴은 아래와 같이 설치한다.


pi@raspberrypi ~/server/was $ sudo apt-get install npm
pi@raspberrypi ~/server/was $ npm -v
1.1.4


npm이 잘 설치 되었는지 확인 후 npm에서 제공하는 raspberry pi 온도 측정 package를 받아 보자.


pi@raspberrypi ~/server/was $ npm install rpi-temp-module


node_modules라는 폴더안에 설치한 rpi-temp-module이라는 package가 생성된 것을 볼 수 있다.


사용해 보도록 하자. 사용전 미리 /sys/bus/w1/devices 밑에 생긴 device 이름을 알아두자

필자는 28-0215529be4ff이다. (이 장치명은 다르므로 꼭 확인하고 맞게 작성해야 한다.)


pi@raspberrypi ~/server/was $ vi index.js



8일차에 작성했던 console.log('Hello World'); 는 이제 지워주고 아래와 같이 입력한다.


var rpiTemp = require('rpi-temp-module');

setInterval(function()
{
    rpiTemp.getTemperature('28-0215529be4ff', function(value)
    {
        console.log("Temperature: ", value);
    });

}, 1000);


저장하고 나온다.

이 코드는 rpi-temp-module를 사용하여 1초에 한번씩 온도를 체크해서 console에 찍어 주도록 하는 프로그램이다.

이제 잘 동작하는지 실행해 보자.



pi@raspberrypi ~/server/was $ node index.js


빠른 변화를 보기 위해서는 온도센서를 물에 담그거나 손으로 꽉 쥐면 된다.


Temperature: 21.5 
Temperature: 22.5 
Temperature: 23 
Temperature: 23.5 
Temperature: 24.5 
Temperature: 25 


잘 변경됨을 확인할 수 있다.

종료 방법은 Ctrl + C 이다.


이로서 nodejs로 간단한 온도 체크 프로그램을 만들어 보았다.