온도 및 습도 측정에 많이 사용되는 센서인듯합니다.
생긴것은 아래와 같습니다.
4개의 연결핀을 가지고 있는데,
1 ~ 4번까지 순서되로,
1 : 5v공급
2 : 센서출력
3 : 연결하지 않음
4 : Gnd
입니다.
센서 단독으로 가지고 계신경우 사용하기 위해서, 센서출력 2번과 1번사이에 10kOhm의 저항을 연결하라고 합니다.
제가 가지고 있는것은 아래 그림과 같이 모듈형태로되 있는데요, 저항이 미리 연결되어 있습니다. 모듈의 장점은 센서를 사용하기 위해서 필요한 부가 부품들이
미리 추가되어 있어서 따로 회로구성할 필요가 없다는 것이겠습니다.
그림에 표시해놓은것처럼 순서되로, 신호선, 5v, Gnd입니다.
해당센서 사용하기 위해서 데이터시트를 참조해서 직접 제어 코드를 만들 수도 있겠지만, 조금만 검색해보면
누군가 만들어놓은 쓰기 편한 라이브러리가 있습니다.
라이브러리는 바로아래 첨부해놓은것을 받으시면됩니다.
DHT_sensor.zip
라이브러리 압축을 푸시고 아두이노의 라이브러리 디렉터리내에 옮기면되는데
아두이노 설치된디렉터리에 보면 아래 사진에 나온것처럼 libraries 라는 폴더가 있습니다.
저기 안에 위에서 받아서 압축푼 폴더를 째로 넣어주시면되는데, 복사하고 나면 아래 처림되겠죠.
DHT_sensor 폴더 안에 들어가보면 아래 그림과 같이 몇개의 파일과 예제가 보입니다.
위사진에 보이는 DHT.h를 아두이노 프로젝트에 include 해서 사용하시면되는데요.
사용법은 매우 간단합니다.
일단 DHT11 센서와 아두이노를 연결합니다.
처음설명했던것처럼 5v, gnd연결하시고, 신호선은 아두이노의 디지털핀중에서 적당한 핀을 연결하시면되겠습니다.
예제에서는 2번핀을 연결하도록 하겠습니다.
///////여기부터 소스--------------------------------------------------------------------------------------------------
#include <dht.h> //라이브러리 헤더를 포함시키고
#define DHT11_PIN 2 //센서와 연결할 핀으로 디지털 2번을 사용하겠습니다.
/*
DHT클래스가 dht계열 센서의 조작관련 기능을 제공하는 클래스입니다.
아래처럼 해당 클래스 인스턴스를 선언하시고 생성자에 전달될 인자에는 순서되로, 신호핀 번호, dht센서종류
를 기입해주시면되겠습니다.
DHT dht(DHTPIN, DHTTYPE);
*/
DHT dht(DHT11_PIN, 11); //dhttype 에는 dht11센서를 사용할꺼기 때문에 11을 줬습니다.
//setup함수에서 dht센서를 초기화 시키면되는데,
void setup()
{
dht.begin(); //이함수를 통해서 초기화시작합니다.
//센서의 출력결과를 시리얼 모니터를 통해서 확인하기 위해서 시리얼도 초기화 시키겠습니다.
Serial.begin(9600);
}
//이제 매 루프마다 센서값을 읽어서 시리얼 포트에 출력해봅니다.
//dht11 센서는 측정주기가 매우 느리다고 합니다. 제가 테스트해본결과도 온도변화를 즉각 감지하지 못하고 온도가 변하고 나서 한참있다가
//변화된 온도가 측정되는것을 확인했습니다.
void loop()
{
float h = dht.readHumidity(); //습도를 읽습니다.
float t = dht.readTemperature(); //섭씨 온도를 읽습니다.
float f = dht.readTemperature(true); //화씨 온도를 읽습니다.
//이제 읽은 결과를 시리얼로 출력합니다.
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t"); //\t 기호는 탭을 뜻합니다.
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
delay(2000); //2초마다 한번씩 센서값을 읽도록 2초 딜레이를 줬습니다.
}
//소스끝------------------------------------------------------------------------------------------------------------------------
보시는 것처럼 라이브러리를 사용하면 매우 간편하게 dht11 센서를 사용할 수 있습니다.