UPDATED. 2018-10-24 09:40 (수)
DIY 온습도측정기
DIY 온습도측정기
  • 이민휘
  • 승인 2018.06.11 06:45
  • 댓글 0
이 기사를 공유합니다

실내 환경 측정

이번에는 DIY로 실내환경을 측정하는 온도, 습도, 실내오염물질, 미세먼지와 요즈음 문제가 되고 있는 라돈 측정기를 순차적으로 만들어 볼 것이다. 이에 앞서 독자들의 많은 질문 중 마이크로프로세서와 마이크로컨트롤러의 혼돈을 하고 있어 둘 사이의 차이를 설명할 필요가 있다.

마이크로컨트롤러(MCU : Micro Controller Unit)

마이크로컨트롤러는 마이크로프로세서와 이를 사용하기 위한 메모리, 입력장치 등의 필요한 기능이 함께 집적된 장치이다. 우리가 주로 다루고 있는 아두이노의 ATmega328는 8비트 마이크로콘트롤러이다.

마이크로프로세서(MPU : Micro Processor Unit)

프로세서(Processor)란 프로그램의 명령어를 처리하기 위한 장치이다. 명령어 처리는 8비트 16비트... 64비트는 처리능력을 의미한다. 그런데 CPU 또는 마이크로프로세서(MPU)는 연산만 가능한 장치로 램, 롬 등의 주변장치가 있어야 실재 사용할 수 있다. 

DIY 온도/습도 측정기

온도를 측정하는 방법은 물리량을 측정하는 방법이나 사용하는 재질에 따라 다르다. 이번 DIY에서 사용된 DHT11 센서는 서미스터(Thermistor: thermally sensitive resistor)라 하는 반도체의 저항이 온도에 따라 변하는 특성을 이용한 온도센서이다.

일반적으로 금속산화물 반도체를 사용하는데 이는 금속에 비해 비교적 큰 저항온도계수를 갖는 성질을 이용할 수 있기 때문이다. 서미스터의 저항온도계수(TCR: Temperature Coefficient of Resistance)는 일정하지 않고 온도에 따라 달라지는 특성을 갖고 있다.

온도가 증가하면 저항이 증가 하는 타입을 정온도계수(PTC:positive temperature coefficient)형이라 하고 온도가 증가에 따라 저항은 감소하는 타입을 부온도계수(NTC:negative temperature coefficient)형이라 한다. 우리가 사용할 온도센서 DHT11은 NTC형이다.

온도가 오르면 저항값이 떨어지는 NTC(negative temperature coefficient thermistor)는 주로 망간·코발트·니켈·철 등 전이금속산화물(轉移金屬酸化物)의 복합 소결체(燒結體)로서 특성을 지니고 있다. 

습도는 공기중의 수증기량을 말하며, 습도를 측정하는 방법도 측정하는 방법이나 사용하는 재질에 따라 많은 종류가 있다. DHT11센서에서는 습도에 따라 저항이 변하는 정전용량 습도센서를 사용한다. 

습도의 단위 RH(Relative Humidity)는 상대 습도를 말한다. 즉 대기 중에 포함되어있는 수증기량과 측정 당시의 온도에서 포함할 수 있는 최대의 수증기량과의 비를 백분율로 표시한 것이다.

온도의 단위 섭씨 ℃는 얼음의 녹는점 0℃도와 물이 끓는점 100℃로하여 100등분한 단위이며, 화씨 ℉는 얼음이 녹는점을 32℉, 물이 끓는점을 212℉로하여 그 사이를 등분한 단위입니다.

준비물

아두이노 우노, 온습도 센서 모듈(DHT11) 외

DHT11 온습도 센서를 작동하기 위해서는 이미 제작사에서 또는 다른 Maker들이 만들어 놓은 라이브러리를 활용할 것이다. 라이브러리는 스케치(IDE)에서 '스케치 à 라이브러리 포함하기 à 라이브러리 관리, DHT11 검색 설치’하여 사용한다.

소스코드

 

#include <DHT11.h>

 

int PIN = 2;

int err;

float temp, humi;

DHT11 dht11(PIN);

 

void setup() {

Serial.begin(9600);

}

 

void loop() {

  err = dht11.read(humi,temp);

 

  if(err == 0) {

    Serial.print("temp : ");

    Serial.print(temp);

    Serial.print(" , humidity : ");

    Serial.println(humi);

  } else {

    Serial.println();

    Serial.println("Error");

  }

  delay(1000);

}

 

아래 그림 돋보기를 누르면 컴퓨터와 Serial 통신을 이용해서 온습도의 측정값을 읽을 수 있다.

 


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
0 / 400
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.