프로그래밍/아두이노

아두이노 우노 온습도센서 (DHT11) 값 LCD에 출력하기

전자장인 2024. 1. 1.
반응형

안녕하십니까

전력전자 각종MCU를 공부하고 최종적으로 작품을 만드는 전자 장인 입니다 

 

오늘의 주제는

아두이노 우노 온습도센서 (DHT11) 값 LCD에 출력하기

 

1. LCD 개요

2023.12.27 - [프로그래밍/아두이노] - 아두이노 우노 LCD 사용법 및 코드 분석

 

아두이노 우노 LCD 사용법 및 코드 분석

안녕하십니까 전력전자와 각종MCU를 공부하고 최종적으로 작품을 만드는 전자 장인 입니다 오늘의 주제는 아두이노 우노 LCD 사용법 및 코드 분석 1. LCD 개요 1. LCD (Liquid Crystal Display) 액정표시장

electronic95.tistory.com

2. 온습도센서 (DHT11) 개요

2023.12.30 - [프로그래밍/아두이노] - 아두이노 우노 온습도센서(DHT11) 사용법 및 코드 분석

 

아두이노 우노 온습도센서(DHT11) 사용법 및 코드 분석

안녕하십니까 전력전자와 각종MCU를 공부하고 최종적으로 작품을 만드는 전자 장인 입니다 오늘의 주제는 아두이노 우노 온습도센서(DHT11) 사용법 및 코드 분석 1. 온습도센서 (DHT11) 개요 1. 온습

electronic95.tistory.com

 

3. 아두이노 우노  실습 환경 세팅

1. 실습준비물

실습 준비물로는 다음과 같이 준비해주세요

 

1. 아두이노 우노

 

 

2. 브레드보드

 

 

3. LCD

 

 

4. 온습도센서 (DHT11)

 

5. 점퍼 와이어

 

2. 아두이노 우노 및 LCD 및 온습도센서(DHT11) 핀맵 연결

 

 

아두이노 우노 핀 LCD 핀 온습도센서
5V VCC 2pin
GND GND 3pin
A4 SDA -
A5 SCL -
5 - 1pin

 

아두이노 우노와 LCD와 온습도센서(DHT11) 간 연결 핀맵은 다음과 같습니다.

해당 핀맵 확인 후 연결해주세요

 

4. 코드 작성 및 결과확인

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>

#define DHTPIN 5        // DHT 센서 핀 번호

#define DHTTYPE DHT11   
//
사용하는 DHT 센서의 종류 (DHT11, DHT21, DHT22 중 선택)


DHT dht(DHTPIN, DHTTYPE);  // DHT 객체 생성


// LCD 설정

LiquidCrystal_I2C lcd(0x27, 16, 2);  // 주소, 열 수, 행 수

void setup() {

  lcd.begin(16, 2);  // LCD 초기화
  lcd.backlight();
  lcd.print("Temp: ");
  lcd.setCursor(0, 1);
  lcd.print("Humidity: ");
  delay(100);  // 초기화 시간을 위한 대기
  dht.begin();   // DHT 센서 초기화
}

void loop() {

  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

 
lcd.setCursor(6, 0);

  lcd.print(temperature);
  lcd.setCursor(10, 0);
  lcd.print("C");

 
lcd.setCursor(10, 1);

  lcd.print(humidity);
  lcd.setCursor(14, 1);
  lcd.print("%");

 
delay(100);  // 일정 시간 간격으로 측정

}

 

 

5.  코드 해석

void loop() {
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  
lcd.setCursor(6, 0);

  lcd.print(temperature);
  lcd.setCursor(10, 0);
  lcd.print("C");

  
lcd.setCursor(10, 1);

  lcd.print(humidity);
  lcd.setCursor(14, 1);
  lcd.print("%");

  
delay(100);  // 일정 시간 간격으로 측정

}

 

dht.readHumidity(): DHT 센서에서 습도를 읽어와 humidity에 저장

dht.readTemperature(): DHT 센서에서 온도를 읽어와 temperature에 저장

lcd.setCursor(6, 0): LCD 커서를 첫 번째 행, 일곱 번째 열로 이동

lcd.print(temperature): LCD에 온도 값 출력

lcd.setCursor(10, 0): LCD 커서를 첫 번째 행, 열 번호 10으로 이동

lcd.print("C"): LCD에 온도 단위 "C" 출력

lcd.setCursor(10, 1): LCD 커서를 두 번째 행, 열 번호 10으로 이동

lcd.print(humidity): LCD에 습도 값 출력

lcd.setCursor(14, 1): LCD 커서를 두 번째 행, 열 번호 14로 이동

lcd.print("%"): LCD에 습도 단위 "%" 출력

delay(100): 0.1초 동안 대기

반응형

댓글

💲 추천 글