【 아두이노 센서#17】 DHT11 온·습도 센서 다루기 #1
이번 시간은 온도와 습도를 같이 나타내 줄 수 있는 DHT11 이라는 매우 유용한 센서에 대해 다루어 보고자 한다. 첫 강좌로 센서의 기본적인 활용에 대해 실습한 다음 두 번째 강좌에서 LCD를 장착하여 온도와 습도를 같이 표시해 볼 것이다.
▶ 선수 학습 :
없음
▶ 실습에 사용되는 부품 자료 ( DHT11 )
《 DHT11 핀 배열 》
위와 같은 DHT11 센서를 바로 사용하기도 하지만, 보통은 아래 처럼 풀업저항과 LED가 달려 있는 모듈 형태가 사용하기 편해서 많이 사용한다.
▶ 실습 목표 :
1. 풀업 저항의 기능에 대해 이해한다.
2. DHT11 센서의 온도 값과 습도 값을 시리얼 모니터 창을 통해 확인 할 수 있다.
▶ 실습 회로도면 :
(이미지 클릭하면 확대 가능)
'X' 또는 'NC'(No Connect)는 사용하지 않는 핀이며,
만약 풀업저항이 달려 있는 모듈을 사용한다면, VCC, GND 연결하고, Data핀만 아두이노의 8단자에 바로 연결하면 더 간단히 연결할 수 있다.
※ 센서에서
데이터 값을 아두이노로 정확히 전달하기 위해서 Data
Pin에 풀업 저항(2.2KΩ~10KΩ)을 달아 주어야 한다.
상기 모듈은 풀업 저항 과 칩LED를 추가한 것이다
▶ 프로그램 코드 및 설명 :
/* DHT11 온습도 센서 값을 읽어 시리얼 모니터 창으로 나타내기 */
#include <DHT.h> // DHT.h 헤더파일을 라이브러리에 추가 한다
#define DHTPIN 8 // 온·습도 데이터 핀 설정
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#include <LiquidCrystal.h>
void setup() {
Serial.begin(9600);
}
void loop() {
delay(2000); // 센싱을 위한 시간 지연 값을 준다.
int h = dht.readHumidity();
int t = dht.readTemperature();
Serial.print("Humidity: "); // 시리얼 모니터로 출력
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" C");
}
※ 만약 위 코드를 실행할 때 DHT11 센서관련 라이브러리 관련 에러가 난다면, 아두이노 IDE 메뉴의 라이브러리 관리 팝업창에서 <dht.h> 헤더파일을 검색하여 추가(설치)해 주어야 한다.
① 라이브러리 검색창에서 "dht.h" 검색!
② 설치 클릭!
※ 중요! : 위의 라이브러리 매니저 화면에서 다운로드 받는 DHT.h 는 1.2.3 버전 이하를 사용해야 본문의 코드로 정상 작동 됩니다 !
혹은 첨부되는 라이브러리를 다운로드 받아 설치하세요.
1.2.3버전 이상의 최신버전을 사용하면 에러 나지는 않지만 온도 습도값이 정상적으로 나오지 않습니다.
▶ 실행 결과 :
(영상은 고화질로 설정하고 전체화면으로 보세요)
▶ 아두이노 파일(다운) :
'아두이노 > 2. 아두이노센서' 카테고리의 다른 글
【 아두이노 센서#19】 DHT22 온·습도 센서 다루기 with LCD#3 (0) | 2019.01.02 |
---|---|
【 아두이노 센서#18】 DHT11 온·습도 센서 다루기 #2 (6) | 2018.12.31 |
【 아두이노 센서#16】 TC74 센서 & 74HC595 with I2C LCD (0) | 2018.12.27 |
【 아두이노 센서#15】 TC74 센서 & 74HC595 응용회로 실습 (0) | 2018.12.26 |
【 아두이노 센서#14】 TC74 온도센서값 RGB & LCD로 출력하기 (0) | 2018.12.21 |