상품상세 정보

뒤로가기
공급사 바로가기

CCK 디지털 온습도센서 DHT11 PCB 온도 습도 아두이노

CCK 디지털 온습도센서 DHT11 PCB 온도 습도 아두이노

기본 정보
판매가 2,300원 (부가세포함)
제조사 OEM
적립금 20 P
상품코드 P0000BDL
국내·해외배송 국내배송
배송방법 택배
배송비 2,700원 (60,000원 이상 구매 시 무료)
수량 수량증가수량감소
배송
수량 down up  
상품 목록
상품 정보 가격 삭제
TOTAL PRICE 0
구매하기예약구매
 


디지털 온습도 센서 DHT11 PCB 조립형(풀업저항)


온도와 습도를 측정하고 이를 이용하여 제어하는 기술이 많은 분야에서 이용되고 있습니다. 아날로그 온도, 습도 센서를 사용하여 마이크로컨트롤러에서 응용하기 위해서는 부가적인 회로나 ADC가 필요합니다. 따라서 요즘에는 신호 증폭, ADC, 보정, 통신 등을 회로를 내장하고 온도, 습도를 동시에 측정할 수 있는 센서들이 나오고 있습니다. 그 중에서도 DHT11이라는 센서가 있습니다. 정밀도는 조금 떨어지나 가격이 저렴하여 취미나 간단한 응용에 적용해 볼 수 있습니다.

다음은 DHT11 디지털 온습도 센서 모듈의 특징 및 스펙입니다.

- 디지털 출력으로 손쉬운 MCU 인터페이스
- 습도 측정 범위 : 20% ~ 90% RH (0-50 ℃ 온도 보상)
- 온도 측정 범위 : 0 ~ +50 ℃;
- 습도 측정 오차 : ± 5.0% RH
- 온도 측정 오차 :
± 2.0 ℃
- 응답 시간 : < 5S;

- 저전력 소모

 

특징

 

- 습도와 온도를 동시에 측정 가능
- 빠른 응답시간
- 디지털 인터페이스로 적용 용이
- 소형 사이즈 ( 12X15.5X5.5 mm )
- 안정성이 우수함

 

 Electrical Characteristics

측정 조건 VDD = 5V , T = 25 ℃

구분

조건

min

typ

max

단위

전압

DC

3

5

5.5

V

전류

 

 

측정시

0.5

 

2.5

mA

평균

0.2

 

0.5

mA

대기시

100

 

150

uA

샘플링 시간

초(Sec)

1

 

 




사이즈


핀맵

1. VCC 3.5~5.5V DC

2. DATA (시리얼 양방향)

3. 사용안함

4. GND


응용 회로예

마이크로컨트롤러의 IO 포트와 DHT11온도센서의 출력핀과 연결하며 풀업저항을 하나 걸어줍니다.

1. 센서와의 길이는 최대한 짧게 하는 것이 좋습니다. 전압강하로 인한 오류가 날 수도 있습니다.

2. 센서로부터 데이터를 읽어 올 때는 최소 5초 간격을 두고 합니다.


* 시리얼 통신 명령 (단일선 양방향 통신)

DHT11 데이터선 하나로 마이크로컨트롤로와 송신, 수신을 합니다. 총 40 비트의 온습도 데이터를 출력하며 MSB가 먼저 출력됩니다.


* 온습도 데이터 포멧

습도 정수 데이터(8비트) + 습도 소수점 데이터(8비트) + 온도 정수 데이터(8비트) + 온도 소수점 데이터(8비트) + 패러티 비트(8비트)

이렇게 8비트 * 5 =>총 40비트의 데이터가 날라옵니다.


* 패러티 비트 계산 방법

패러티 비트(8비트) = 습도 정수 데이터(8비트) + 습도 소수점 데이터(8비트) + 온도 정수 데이터(8비트) + 온도 소수점 데이터(8비트) + 패러티 비트(8비트)

즉, 모든 온습도 데이터를 합한 값입니다.


데이터 수신 예)

0011 0101  0000 0000   0001 1000   0000 0000   0100 1101

이렇게 총 40비트의 데이터가 수신되었다고 하고,

먼저 패러티 비트를 계산하면

0011 0101 + 0000 0000 + 0001 1000 + 0000 0000 = 0100 1101

계산되 패러티 비트가 동일하므로 수신된 데이터는 이상이 없다고 보면 됩니다.

따라서, 습도와 온도는 아래와 같이 계산됩니다(16비트값을 10진수로 바꾸었습니다).

습도 : 0011 0101 = 35H = 53 % RH(상대습도를 의미)

온도 : 0001 1000 = 18H = 24 ℃


* 데이터 신호



센서로부터 온습도 데이터를 받아오기 위해서는 먼저 MCU에서 센서로 다음과 같이 스타트 신호를 주어야 합니다.

평상시에는 데이터핀에 풀업이 걸려있으므로 데이터가 '1'(HIGH)로 유지됩니다. MCU에서 센서와 연결된 IO핀을 출력으로 지정하고 '0'(LOW)신호를 18ms 정도 유지하고 나서 다시 HIGH로 20-40us 정도 유지하면 스타트 신호가 완성되며, MCU의 IO핀을 입력으로 전환하고 센서로부터의 신호를 받습니다.

센서가 40비트의 온습도 데이터를 보내기전에 먼저 MCU의 스타트 신호에 대한 응답신호를 보냅니다. 먼저 LOW 신호를 80us를 보내고, HIGH 신호를 80us 를 순차적으로 보냅니다.


센서의 응답신호의 다음 신호가 40비트의 온습도 신호가 됩니다.

다음은 40비트의 온습도데이터에서 0과 1을 신호 포멧을 살펴봅니다.

아래는 0을 나타냅니다.


아래는 1을 나타냅니다.

0과 1의 신호의 구분은 LOW로 떨어지는 시간은 50us로 동일하고, HIGH로 유지되는 시간만 차이가 나므로 이를 잡아내면 됩니다.


* 소프트웨어 작성

실제로 위의 타이밍을 이용하여 처음부터 코딩하는 것은 상당히 힘듭니다.

아두이노와 같은 경우는 DHT11 라이브러리가 있으므로 아래 코드와 같이 쉽게 구현이 가능합니다.

좀더 자세한 내용은 아두이노 사이트를 참고하십시요.

#include <dht11.h>

dht11 DHT11;
#define DHT11PIN 2

void setup()
{

  Serial.begin(115200);

  Serial.println("DHT11 TEST PROGRAM ");

  Serial.print("LIBRARY VERSION: ");

  Serial.println(DHT11LIB_VERSION);

  Serial.println();

}

void loop()

{

  Serial.println("\n");

  int chk = DHT11.read(DHT11PIN);

  Serial.print("Read sensor: ");

  switch (chk)

  {

    case DHTLIB_OK:

                Serial.println("OK");

                break;

    case DHTLIB_ERROR_CHECKSUM:

                Serial.println("Checksum error");

                break;

    case DHTLIB_ERROR_TIMEOUT:

                Serial.println("Time out error");

                break;

    default:

                Serial.println("Unknown error");

                break;

  }


  Serial.print("Humidity (%): ");

  Serial.println((float)DHT11.humidity, 2);


  Serial.print("Temperature (°C): ");

  Serial.println((float)DHT11.temperature, 2);


  Serial.print("Temperature (°F): ");

  Serial.println(Fahrenheit(DHT11.temperature), 2);


  Serial.print("Temperature (°K): ");

  Serial.println(Kelvin(DHT11.temperature), 2);


  Serial.print("Dew Point (°C): ");

  Serial.println(dewPoint(DHT11.temperature, DHT11.humidity));


  Serial.print("Dew PointFast (°C): ");

  Serial.println(dewPointFast(DHT11.temperature, DHT11.humidity));


  delay(2000);

}

 

 

 

상품결제정보

배송 안내

  • 배송 방법 : 택배
  • 배송 지역 : 전국지역
  • 배송 비용 : 2,700원
  • 배송 기간 : 3일 ~ 7일
  • 배송 안내 :

교환/반품 안내

서비스문의 안내

판매자 정보

게시물이 없습니다

글작성 모두보기

게시물이 없습니다

글작성 모두보기