블로그 이미지
조이키트 블로그
아두이노, 라즈베리파이, 반도체 센서/모듈 활용

calendar

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

Notice

250x250
728x90
반응형

DHT11 센서는 온도 및 습도를 측정할 수 있는 센서이다. 이 센서는 아두이노나 라즈베리 파이 같은 마이크로컨트롤러에서 많이 사용된다.

 

DHT11 온습도 센서 특징:

온도 측정 범위 : 0°C ~ 50°C (±2°C의 정확도)

습도 측정 범위 : 20% ~ 90% RH (±5%의 정확도)

응답 시간 : 1초

출력 신호 : 디지털 신호

 

DHT11 핀:

S (핀) : 데이터 신호

"-"  (핀) : 전원 접지

중간 (핀) : 전원 +5V

 

오늘 시간에는 DHT11 온습도 센서를 아두이노에 사용하여 온도와 습도를 LCD1602 디스플레이에 출력하는 실험을 해보겠다.

 

준비품으로는 아두이노 우노 R3, DHT11 온습도 센서, LCD1602 디스플레이 등이 사용된다.

 

준비 부품: 

아두이노 우노 R3 DHT11 온습도 센서 LCD1602 디스플레이

 

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

https://link.coupang.com/a/ch39lc

 

아두이노 DHT11 디지털 온도 및 습도 센서 모듈 - CPU | 쿠팡

쿠팡에서 아두이노 DHT11 디지털 온도 및 습도 센서 모듈 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 CPU 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/cdnaEv

 

아두이노 우노 R3 개발 보드 [ATmega328P 마이크로 컨트롤러 포함] - 액세서리 | 쿠팡

쿠팡에서 아두이노 우노 R3 개발 보드 [ATmega328P 마이크로 컨트롤러 포함] 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 액세서리 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2vTO0

 

아두이노 LCD1602 16x2 4핀 디스플레이 모듈/ Arduino LCD1602 Module - 액세서리 | 쿠팡

쿠팡에서 아두이노 LCD1602 16x2 4핀 디스플레이 모듈/ Arduino LCD1602 Module 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 액세서리 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

위와 같이 부품들이 준비되면 다음과 같이 회로를 구성한다.

아두이노 우노 R3 DHT11 온습도 센서 LCD1602 디스플레이
+5V VCC VCC
GND GND GND
A4   SDA
A5   SCL
D3 S  

 

DHT11 온습도 센서 회로도

 

 

위의 그림과 같이 회로 연결이 끝나면 아두이노 IDE에 다음과 같이 코드를 작성한다.

 

전체 코드:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>  // LCE패널 함수 선언
#include <DHT.h>


#define DHTPIN 3     // DHT 센서가 연결된 핀 번호
#define DHTTYPE DHT11 // DHT11 또는 DHT22 사용

LiquidCrystal_I2C lcd (0x27,16,2);   

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  lcd.init();           // LCD 초기화
  lcd.backlight();      // LCD 뒷 전등 켬
  Serial.begin(9600); 
  dht.begin();
}

void loop() {
  float h = dht.readHumidity();    // 습도 측정
  float t = dht.readTemperature(); // 온도 측정 (섭씨)

  // 오류 체크
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read data from the sensor!");
    return;
  }

  Serial.print("온도: ");
  Serial.print(t);
  Serial.print(" °C ");
  Serial.print("습도: ");
  Serial.print(h);
  Serial.println(" %");

  lcd.setCursor(0,0);            // LCD 1행 2열에 출력
  lcd.print("Temperature:");
  lcd.print(t);
  lcd.print("°C");
  lcd.setCursor(0,1);            // LCD 2행 1열에 출력
  lcd.print("Humidity:");
  lcd.print(h);
  lcd.println("%");  


  delay(2000); // 2초마다 측정

  lcd.clear();  // LCD 클리어
}

 

코드 작성 후 아두이노 우노 R3에 컴파일 후 업로드 하여준다. 그러면 다음과 같은 출력 결과를 볼 수 있다.

 

출력 결과:

https://www.youtube.com/watch?v=cDZFRReQ2J8

 

728x90
반응형
posted by 조이키트 블로그