아두이노 온도 습도 센서

이 튜토리얼에서 우리는 다음을 배우게 됩니다:

만약 온도만 측정하길 원한다면, 아두이노 - 온도 센서를 사용하는 것이 좋습니다. 이것은 저렴하고 깔끔한 센서입니다. 뜨거운 물이나 차가운 물에 넣을 수 있습니다.

준비물

1×아두이노 우노 R3 쿠팡 | 아마존
1×USB 2.0 타입 A-to-B 케이블 (USB-A PC용) 쿠팡 | 아마존
1×USB 2.0 타입 C-to-B 케이블 (USB-C PC용) 아마존
1×DHT11 온도 습도 센서 모듈 아마존
1×(또는) DHT11 Sensor 아마존
1×DHT22 온도 습도 센서 모듈 쿠팡 | 아마존
1×(또는) DHT22 Sensor 아마존
1×10 kΩ Resistor 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 아두이노 우노용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) Sensors/Servo Expansion Shield for Arduino Uno 쿠팡 | 아마존
1×(추천) 아두이노 우노용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

DHT11 및 DHT22 온도 및 습도 센서에 관하여

DHT11과 DHT22의 공통점

  • 핀아웃은 동일합니다
  • 아두이노에 대한 배선은 동일합니다
  • 프로그래밍(라이브러리 사용 시)은 비슷합니다 (코드 한 줄만 다름)

DHT11과 DHT22의 차이점들

DHT11 DHT22
Price ultra low cost low cost
Temperature Range 0°C to 50°C -40°C to 80°C
Temperature Accuracy ± 2°C ± 0.5°C
Humidity Range 20% to 80% 0% to 100%
Humidity Accuracy 5% ± 2 to 5%
Reading Rate 1Hz (once every second) 0.5Hz (once every 2 seconds)
Body size 15.5mm x 12mm x 5.5mm 15.1mm x 25mm x 7.7mm
Operating Voltage3 to 5V 3 to 5V

당신이 보듯이, DHT22는 조금 더 정확하고, 범위가 더 넓지만 DHT11보다는 더 비쌉니다.

핀 배치

DHT11과 DHT22 센서의 원래 형태는 네 개의 핀을 가지고 있습니다:

  • GND 핀: GND(0V)에 연결해야 합니다.
  • VCC 핀: VCC(5V 또는 3.3V)에 연결해야 합니다.
  • DATA 핀: 센서와 아두이노 간의 통신에 사용되는 핀입니다.
  • NC 핀: 연결되지 않음, 이 핀은 무시할 수 있습니다.
dht11 and dht22 temperature and humidity sensor 사용법 핀아웃

일부 제조업체는 세 개의 핀이 있는 모듈 형태로 DHT11 및 DHT22 센서를 제공합니다: GND, VCC 및 DATA 핀(또는 대안으로: -, + 및 OUT 핀).

※ 주의:

모듈 형태에서, 모듈 핀의 순서는 제조업체마다 다를 수 있습니다. 항상 모듈에 인쇄된 라벨을 사용하세요. 자세히 보세요!

dht11 and dht22 temperature and humidity module 사용법 핀아웃

선연결

아두이노에 대한 배선은 두 센서 모두 동일합니다. 원래 형태에서는 데이터 라인을 높게 유지하고 센서와 아두이노 간의 통신을 가능하게 하기 위해 5K에서 10K 옴 사이의 저항이 필요합니다.

아두이노 - DHT11 센서 배선

아두이노 dht11 temperature and humidity sensor 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노 - DHT22 센서 배선

아두이노 dht22 temperature and humidity sensor 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노 - DHT11 모듈 배선

대부분의 DHT22 센서 모듈에는 내장 저항이 있으므로 추가할 필요가 없습니다. 이로 인해 우리는 일부 배선 또는 납땜 작업을 절약할 수 있습니다.

아두이노 dht11 temperature and humidity module 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

점퍼 와이어는 프로젝트를 옮길 때 빠질 수 있습니다. Arduino에 Proto Screw Terminal Block Shield 또는 Screw Shield V2를 쌓고 전선을 나사 단자에 연결할 수 있습니다. 배선은 같습니다. 아래 그림처럼 전선만 나사 단자로 연결됩니다.

아두이노 dht11 temperature and humidity module 연결 배선도 (screw shield v2)

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노 - DHT22 모듈 배선

대부분의 DHT22 센서 모듈에는 내장된 저항기가 있으므로 추가로 달 필요가 없습니다. 이것은 우리가 배선이나 납땜 작업을 좀 더 줄일 수 있게 해줍니다.

아두이노 dht22 temperature and humidity module 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

점퍼 와이어를 헤더에 꽂는 것은 빠르지만, 전선이 빠질 수 있습니다. Arduino에 Proto Screw Terminal Block Shield 또는 Screw Shield V2를 추가하기만 하면 됩니다. 배선은 같습니다. 아래 그림처럼 전선만 나사 단자로 연결됩니다.

아두이노 dht22 temperature and humidity module 연결 배선도 (screw shield v2)

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

DHTxx 온도 센서 프로그래밍 방법

두 센서에 대한 프로그래밍은 비슷합니다. 단 한 줄의 코드만 다릅니다.

라이브러리를 포함하세요:

#include "DHT.h"

DHT 센서에 연결된 아두이노 핀 정의하기:

#define DHTPIN 2

센서 유형 정의: DHT11 또는 DHT22 (이것은 다른 코드 라인입니다)

#define DHTTYPE DHT11

또는

#define DHTTYPE DHT22
  • DHT 객체 선언하기
DHT dht(DHTPIN, DHTTYPE);

센서를 초기화하십시오.

dht.begin();

습도 읽기

float humi = dht.readHumidity();

섭씨 온도를 읽으세요.

float tempC = dht.readTemperature();

화씨 온도를 읽으세요.

float tempF = dht.readTemperature(true);

아두이노 코드 - DHT11

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-temperature-humidity-sensor */ #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); // 센서를 초기화합니다 } void loop() { // 측정 사이 몇 초간 대기합니다. delay(2000); // 습도 읽기 float humi = dht.readHumidity(); // 섭씨온도 읽기 float tempC = dht.readTemperature(); // 화씨온도 읽기 float tempF = dht.readTemperature(true); // 읽기가 실패하면 체크 if (isnan(humi) || isnan(tempC) || isnan(tempF)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } }

아두이노 코드 - DHT22

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-temperature-humidity-sensor */ #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); // 센서 초기화 } void loop() { // 측정 사이에 몇 초간 대기합니다. delay(2000); // 습도 읽기 float humi = dht.readHumidity(); // 섭씨로 온도 읽기 float tempC = dht.readTemperature(); // 화씨로 온도 읽기 float tempF = dht.readTemperature(true); // 읽기가 실패했는지 확인 if (isnan(humi) || isnan(tempC) || isnan(tempF)) { Serial.println("DHT 센서에서 읽기 실패!"); } else { Serial.print("습도: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("온도: "); Serial.print(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } }

두 코드를 비교해보면 한 줄 차이가 있다는 것을 알게 됩니다(11번 줄).

사용 방법

  • 아두이노를 USB 케이블을 통해 PC에 연결합니다
  • 아두이노 IDE를 열고, 올바른 보드와 포트를 선택합니다
  • 아두이노 IDE의 왼쪽 바에서 Libraries 아이콘으로 이동합니다.
  • “DHT”를 검색한 다음, Adafruit의 DHT 센서 라이브러리를 찾습니다
  • 라이브러리를 설치하려면 Install 버튼을 클릭합니다.
아두이노 dht sensor 라이브러리
  • 다른 라이브러리 종속성을 설치해 달라는 요청을 받게 될 것입니다.
  • 모든 라이브러리 종속성을 설치하려면 Install All 버튼을 클릭하세요.
아두이노 adafruit unified sensor 라이브러리
  • 사용하고 있는 센서에 해당하는 위의 코드를 복사하고 아두이노 IDE로 열기
  • 코드를 아두이노로 업로드하기 위해 아두이노 IDE에서 Upload 버튼 클릭하기
  • 센서 주변의 환경을 더 덥거나 추워지게 만들기
  • 시리얼 모니터에서 결과 보기
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 32.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 32.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F
Ln 11, Col 1
Arduino Uno on COM15
2

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.