반응형

온습도 센서인 DHT11과 16x2 LCD를 가지고 PC의 시리얼모니터가 아닌 LCD 화면에 독립되어 표시되는 온습도계를 만들어보자.  사실 이전에 본 블로그에 올렸던 온습도 센서 및 LCD 의 사용법에 대해서 다룬 글을 참고 한다면 그리 어렵지 않게 만들 수 있다.


※참고 글

[아두이노] 16x2 LCD 의 사용 (IIC 1602 LCD)

[아두이노] 아두이노 온도 습도 센서의 사용 (DHT11센서)



LCD 앞면이다. 16 행 2열을 표현할 수 있다.



LCD 뒷면이다. 위부터 GND, VCC, SDA, SCL의 핀 배열이다. 



DHT 11 온습도 센서이다. 위부터 GND, VCC, Signal 핀이다.

저항이 포함된 모듈 제품이다.



두 개의 부품 모두 VCC(5V)를 연결하기 때문에(포트 부족) 브레드보드에 아두이노의 5V 와 GND 포트를 연결하여 두 개의 부품에 전원을 공유하였다.


아두이노 와의 연결은 다음과 같다.


 DHT 11 Sensor

 LCD Module

 아두이노(Arduino Uno)

 GND

 GND

 GND

 VCC

 VCC

 5V

 Signal

 

 Digital 2

 

 SDA

 Analog A4

  SCL Analog A5


##소스##

몇 초마다 재측정 할지는 45행의 delay 값을 변경해 주면 된다.

Include 라이브러리는 위의 참고글 링크에 가면 다운로드 받을 수 있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include <DHT11.h>
 
//LCD 설정
LiquidCrystal_I2C lcd(0x27,16,2);  
 
//온습도센서 연결설정
int pin=2;
DHT11 dht11(pin); 
 
void setup()
{
  lcd.init();
  Serial.begin(9600);
}
 
void loop()
{
  int err;
  float temp, humi;
  if((err=dht11.read(humi, temp))==0)
  {
    lcd.backlight();
    lcd.display();
    lcd.print("TEMP:     ");
    lcd.print(temp);
    lcd.setCursor(0,1);
    lcd.print("HUMIDITY: ");
    lcd.print(humi);
 
    Serial.print("temp: ");
    Serial.print(temp);
    Serial.print("humi: ");
    Serial.print(humi);
    Serial.println();
  }
  else
  {
    lcd.backlight();
    lcd.display();
    lcd.print("ERROR NO.: ");
    lcd.print(err);
  }
  delay(10000); //10초마다 Refresh
  lcd.clear();
}
cs



##결과##

10초 마다 결과를 측정하여 보여준다. 5V 휴대폰 충전용 보조배터리를 연결하니 PC와는 별개의 독립된 온습도 측정기가 되었다.





반응형

+ Recent posts