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

다이소 양념통 스탠드어론 아두이노 DHT22 온습도 lcd 디스플레이

coding art 2018. 1. 4. 18:39
728x90

 

 

측정 범위가 넓고 정밀도가 높은 아두이노 온습도 측정용 센서 DHT22 의 측정 결과를 lcd 로 디스플레이 해보자. 이 배선은 지난번 블로그에에 포스팅하였던 결과를 그대로 이용하면 쉽게 만들 수 있다.
 
   초보자를 위한 아두이노 DHT11 온습도 측정 결과 1602 lcd 출력
      lcd_DHT11_01
       http://blog.daum.net/ejleep1/526

 

DHT11은 향 후 다른 코딩에서도 사용할 것에 대비하여 그대로 두고 DHT22 온습도 센서의 데이터 선을 7번 핀에 배선하도록 한다.

 

 


lcd, 백라이트 밝기 조절용 가변저항 및 아두이노 우노가 설치된 길쭉한 빵판 전체를 다이소 양념통 하우징에 설치한다. 이 다이소 양념통의 뚜껑에 9V 건전지 포함 길죽한 빵판이 자로 잰 듯이 정확하게 들어간다. I2C lcd를 사용하지 않으면 배선 공간이 넓지 못하므로 남아있는 7번 디지털 데이터 핀에 DHT22 데이터 핀을 연결하도록 한다.

DHT22 lcd 출력을 위한 아두이노 코드는 지난번 게시했던 lcd_DHT11_01 코드에 DHT22_01 코드를 믹스하여 수정하도록 한다. 특히 온도 값에서 소수이하 첫 자리가 디스플레이 되도록 유의하자.

일단 코드가 제대로 실행이 되면 USB 케이블을 뽑은 후 9V 전지 어댑터를 연결하여 스탠드 어론(Stand Alone)형으로 바꾸고 창밖에 설치 후 살 떨리는 영하의 온도를 측정해 보도록 하자.

 

스탠드 어론 온습도계가 성공적으로 작동한다면 다음번에 블루투스를 설치하여 사무실에서 PC 나 스마트 폰으로 결과를 받아 보도록 개량해 보기로 한다.

 

 


lcd_DHT22_01

 

#include <DHT.h>    //DHT22 라이브러리
#include <LiquidCrystal.h>
#define DHTPIN 7     // DHT22 데이타 핀
#define DHTTYPE DHT22   // DHT 22(AM2302)


DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal lcd(12,11,5,4,3,2);
     
void setup()  {
  Serial.begin(9600);
  dht.begin();
  lcd.begin(16,2);
  delay(2000);
}
 
void loop()  {

  float h = dht.readHumidity();//온도 읽기
  float t= dht.readTemperature();//습도 읽기
 
  lcd.setCursor(0,0);
  lcd.print("Humidity: ");
  lcd.print(h,0);// 소수 이하 자리 없음
  lcd.print(" %");
  lcd.setCursor(0,1);
  lcd.print("Temp: ");
  lcd.print(t, 1);//소수 이하 1자리 허용
  lcd.println(" C deg");
  delay(2000);// 샘플링 간격 2초 부여
   
}//끝