10. DHT11 온습도센서-LCD 표시

10.1 필요 부품

 

 

  •  정격 전압: +5 V (3.5V~5.5VDC)

  • 온도 범위 :0-50 °C ± 2 °C

  • 습도 범위 :20-90% RH ± 5%

 

  • LCD  16자 X 2줄.

 

10.2 배선

 

  • 아두이노 보드를 USB 케이블을 통하여 PC에 연결

 

온습도센서 배선

  • 센서 GND   ->  아두이노 GND(흑색)

  • 센서 DATA  ->  아두이노 DIGITAL 13 핀(노랑)

  • 센서 VCC    ->  아두이노 5V(빨강)

 

LCD 배선

  • LCD GND    ->  아두이노 GND(흑색)

  • LCD VCC    ->  아두이노 5V(빨강)

  • LCD RS      ->  아두이노 DIGITAL PIN 12(노랑)

  • LCD E      ->  아두이노 DIGITAL PIN 11(녹색)

 

  • LCD D7      ->  아두이노 DIGITAL PIN 2(흑색)

  • LCD D6      ->  아두이노 DIGITAL PIN 3(파랑)

  • LCD D5      ->  아두이노 DIGITAL PIN 4(녹색)

  • LCD D4      ->  아두이노 DIGITAL PIN 5(노랑)

 

10.3 프로그램 입력 및 실행

 

  • 아두이노 개발툴(IDE)을 실행

 

 

  • 다음과 같이 입력 또는 복사하기 -> 붙여넣기

 

// include the library code:

#include <DHT11.h>

#include <LiquidCrystal.h>

int pin=13; // 온습도센서 연결한 아두이노 디지털 핀 번호

DHT11 dht11(pin);

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()

{

  Serial.begin(9600);

  lcd.begin(16, 2);

  lcd.print("Hello, World!");

  delay(2000);

}

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();

    

    lcd.clear();

    lcd.setCursor(0, 0);

    lcd.print("Temp:");

    lcd.print(temp);

    lcd.setCursor(0, 1);

    lcd.print("Humi:");

    lcd.print(humi);

  }

  else

  {

    Serial.println();

    Serial.print("Error No: ");

    Serial.print(err);

    Serial.println();    

    lcd.clear();

    lcd.setCursor(0, 0);

    lcd.print("Error No: ");

    lcd.print(err);

  }

  delay(DHT11_RETRY_DELAY); //delay for reread

}

 

  • 프로그램 업로드 버튼 클릭

 

 

10.4 프로그램 동작

 

  • LCD의 가변저항을 조절하여 글씨가 잘 보이게 한다.

  • 프로그램이 시작되면 LCD 화면에 "hello world!" 2초 표시됨.

  • LCD 화면에 온도와 습도가 표시된다.