본문으로 바로가기


온습도센서



온도와 습도를 동시에 알려주는 센서로 가장 저렴한 DHT11 센서를 사용할 것이다. 이 센서는 온도와 습도를 동시에 알려주기 때문에 코드가 복잡하지만 라이브러리를 사용하면 초보자도 편리하게 손쉽게 사용할 수 있다.

DHT11.pdf


DHT11의 데이터시트를 살펴보면 데이터핀 아두이노에 연결할 때는 5K옴 이상의 저항이 필요하다.

핀은 1번 핀 : 3.3V or 5V 2번 핀 : DATA 4번 핀 : GND를 사용한다.

DHT.zip

DHT라이브러리는 위 파일을 다운 받고, 라이브러리를 추가하는 방법은 아래 링크를 참고하기 바란다.

http://codingrun.com/100


실습 내용


온습도센서(DHT11)을 이용하여 시리얼 모니터에 온습도를 표기해 보자.


준비물


아두이노 보드, 브레드 보드, 온습도센서(DHT11) 1개, 저항 5KΩ 1개 (4.7KΩ 사용가능 없을 경우 10KΩ저항 사용), 수수 점퍼선 3개


회로도





소스 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<DHT.h>     //DHT.h 라이브러리 추가
DHT dht(12, DHT11); //DHT 설정 dht(핀, DHT종류)
 
void setup() {
  Serial.begin(9600); //시리얼모니터 시작
}
 
void loop() {
  delay(3000);
  int tem = dht.readTemperature();  //온도 값 정수형 변수 tem에 저장
  int hum = dht.readHumidity();     //습도 값 정수형 변수 hum에 저장
  Serial.print("Temperature :");    //Temperature : 글자 출력
  Serial.print(tem);                //측정된 온도 값 출력
  Serial.print("C ");               //온도C로 표현
  Serial.print("Humidity : ");
  Serial.print(hum);
  Serial.println("% ");             //온도와 동일
}
cs

ex13_temhum.ino



댓글을 달아 주세요

  1. 감사합니다 2017.07.20 22:56 신고

    와 드디어 올려주셨네요

  2. 1111 2018.10.05 19:40 신고

    코드에서 void loop에 delay(3000)을 해주신 이유가 무엇인가요?
    안쓰면 어떤 문제라도 있는건가요?

티스토리 툴바