경기 꿈의 대학 넷째주 I: 아두이노 센서 사용 온습도 측정

in #kr5 years ago (edited)

지난 번 LED 의 디지털 ON/OFF 와 아날로그 ON/OFF 방식에 의한 Fade 코딩에 이어 이번에는 DHT11 온습도 센서를 사용한 아두이노 코드를 작성하자. DHT11 로 명명된 온습도 센서는 기상 관측용 센서로 알려져 있다. 아두이노 코딩을 배우려면 누구라도 반드시 한번은 해보아야 할 프로젝트이다. 온습도를 함께 측정하는 이유는 온도와 습도를 동시에 측정하는 기상관측의 원칙에서 비롯된다.

noname01.png

아두이노 온습도 측정을 위한 Adafruit사의 DTH11 센서는 온습도 동시에 측정할 수 있는 디지탈 센서로서 아두이노의 디지털 핀 입력 구조를 정확히 반영하여 제작한 맞춤형 센서다.

noname02.png

아두이노 보드의 디지털 입출력 핀 사용법은 setup()에서 pinMode() 명령을 사용 pin 번호 5번을 입력(INPUT)으로 설정하고 loop()에서 일정한 시간 간격으로 온도 측정 class 명령을 사용하여 DHT11센서로부터 측정된 온습도 값을 받아온다.

특정한 구조 형태를 가지는 class 명령은 확장이 가능하면서 파생된 오브젝트를 생성할 수 있는 명령이다. 그 자체로서 class 명령을 한번 호출하면 뭔가 기능할 수 있는 오브젝트를 생성할 수 있으며 확장 후 실행을 통해서 온습도 데이터를 가져다 줄 수 있다.

noname03.png

class 명령은 아두이노 편집기 코드 내에 넣어 둘 수도 있으나 코드 내용이 복잡하며 예상 밖으로 길면 라이브러리 형태를 취할 수도 있다. DHT11 측정을 지원하는 class 명령 형태의 라이브러리는 DHT11.zip 파일을 인터넷에서 다운받아 특정 폴더에 저장 후 압축을 풀도록 한다. 참고로 DHT11.zip 파일은 아래 url 주소에서 다운 받을 수 있다.

아두이노 Adafruit DHT11 센서를 이용한 온습도 모니터링 155
http://blog.daum.net/ejleep1/320

아래 그림은 위 블로그 주소에서 DHT11센서 사용을 위한 라이브러리 DHT11_library.zip을 다운받아 아는 경로에 설치하고 압축을 푼 후 스케치 탭에서 라이브러리 추가하기 작업을 실시하는 과정을 설명하고 있다.

noname04.png

DHT11 센서의 +핀을 5V(또는 3.3V)에 - 는 GND 즉 접지에, 디지털 데이터 핀은 5번 핀에 연결하도록 한다. 코드를 입력 저장 후 빌드하여 업로딩 후 시리얼 모니터를 열어 온습도 측정 결과를 관찰해 보자.

noname05.png

//DHT_01
#include <DHT11.h> //라이브러리 부르기
int pin = 5; //DHT11 데이타 핀 아두이노 연결
DHT11 dht11(pin); // DHT11 클라스 명령

void setup() {
Serial.begin(9600); //통신속도 설정
pinMode(pin, INPUT);
}

void loop() {
int err;
float temp, humi;
if((err=dht11.read(humi, temp))==0) { //온습도 읽기
Serial.print("temperature:");Serial.print(temp);
Serial.print(" humidity:");Serial.print(humi);
Serial.println();
}
else { //에러 출력
Serial.println();
Serial.print("Error No :");
Serial.print(err);
Serial.println();
}
delay(2000); //2초마다 측정
}//끝

마나마인로고.png

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.032
BTC 60345.08
ETH 2986.57
USDT 1.00
SBD 3.81