아두이노프로세싱 프로그래밍

초보자를 위한 아두이노 DHT11 온습도 측정 결과 1602 lcd 출력

coding art 2017. 11. 28. 19:09
728x90
 
                                  

 

1602 lcd 판넬은 스탠드어론(stand alone) 형 아두이노 온습도 측정 데이터를 디스플레이하기에 적합하다. 아두이노 코딩을 컴파일 업로딩 후 USB 케이블을 제거하고 9V 전지를 끼워 연결하도록 한다. 아두이노 우노 보드에는 직류 레귤레이터가 내장되어 있어 5V 로 전압을 조정해 주는 기능이 있다.

 

DHT11 온습도 측정 핀은 아두이노 디지털 데이터 핀 6번에 연결하도록 한다. 데이터 핀 2번부터 5번까지는 이미 1602 lcd 판넬 설치에 사용되었다.

 

DHT11 센서에서 측정된 온도와 습도는 일단 정수로 변환시킨 뒤 출력하도록 하며 1줄당 16문자에 제한되므로 주의하도록 한다. 아울러 온도를 출력할 수 있도록 setCursor(0,0)을 적용한다. 2번째 줄에 습도 출력을 위해서 setCursor(0,1)을 적용한다.

 

lcd_DHT11_01

 

#include <DHT11.h>   
#include <LiquidCrystal.h>
int pin= 6;           

DHT11 dht11(pin); 
LiquidCrystal lcd(12,11,5,4,3,2);
     
void setup()  {
  Serial.begin(9600);
  lcd.begin(16,2);
//  lcd.write(" DHT11 Sensing ");
}
 
void loop()  {
  int err;
  float temp, humi;
  if((err=dht11.read(humi, temp))==0) {
    lcd.setCursor(0,0);
    lcd.print("temp:");
    int t = temp;
    lcd.print(t);
    lcd.print(" C deg");

    lcd.setCursor(0,1);
    lcd.print("humidity:");
    int h = humi;
    lcd.print(h);
    lcd.print(" %   ");
    lcd.println();
  }
  else  {
    lcd.println();
    lcd.print("Error No :");
    lcd.print(err);
    lcd.println();   
  }
  delay(20000);      
}