라즈베리 파이 DHT22

이 튜토리얼은 Raspberry Pi를 사용하여 DHT22 센서로부터 온도와 습도를 읽는 방법을 안내합니다. 자세히 배워볼 내용은 다음과 같습니다:

저희는 다음을 제안합니다:

Hardware Preparation

1×Raspberry Pi 4 Model B Amazon
1×DHT22 Temperature Humidity Sensor Module Amazon
1×10 kΩ resistor Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(추천) Screw Terminal Block Shield for Raspberry Pi 쿠팡 | Amazon
1×(추천) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B Amazon
1×(추천) Plastic Case and Cooling Fan for Raspberry Pi 4B Amazon
1×(추천) HDMI Touch Screen Monitor for Raspberry Pi Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

DHT22 온도 및 습도 센서에 대하여

온도 및 습도 센서 핀아웃

시중에 판매되는 DHT22는 센서와 모듈 두 가지 형태로 제공됩니다.

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

  • GND: 이 핀은 접지(0V)와 연결되어야 합니다.
  • VCC: 이 핀은 전압 공급 장치(5V)와 연결되어야 합니다.
  • DATA: 이 핀은 센서와 Raspberry Pi 간의 통신에 사용됩니다.
  • NC: 이 핀은 연결하지 않아도 되며 무시할 수 있습니다.
DHT22 온도 및 습도 센서 핀아웃

DHT22 모듈에는 세 개의 핀이 있습니다:

  • GND 핀 (-): GND(0V)와 연결해야 합니다.
  • VCC 핀 (+): VCC(5V)와 연결해야 합니다.
  • OUT 핀: 센서와 Raspberry Pi 간의 통신에 사용됩니다.

※ NOTE THAT:

모듈에 있는 핀의 배열은 제조사에 따라 다를 수 있습니다. 모듈을 사용할 때에는 항상 모듈에 인쇄된 라벨을 사용하는 것이 중요합니다. 꼭 꼼꼼히 확인하세요!

Wiring Diagram

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

라즈베리 파이 - DHT22 센서 배선

라즈베리 파이 DHT22 온도 및 습도 센서 배선도

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

DHT22 센서를 Raspberry Pi에 다음과 같이 연결하십시오:

  • DHT22 VCC 핀을 Raspberry Pi 5V (핀 2 또는 5V GPIO 핀)으로 연결
  • DHT22 GND 핀을 Raspberry Pi GND (핀 30 또는 GND GPIO 핀)으로 연결
  • DHT22 DATA 핀을 Raspberry Pi의 GPIO 핀으로 연결 (예: GPIO 12 (핀 32)

더 나은 안정성을 위해 DHT22의 VCC와 DATA 핀 사이에 저항기(값은 5K와 10K Ohms 사이)를 추가해야 합니다.

라즈베리 파이 - DHT22 모듈 배선

대부분의 DHT22 센서 모듈은 통합된 저항기를 포함하고 있어 추가적인 배선이나 납땜이 필요 없습니다.

라즈베리 파이 DHT22 온도 및 습도 모듈 배선도

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

배선 구성을 간단하고 체계적으로 만들기 위해, Raspberry Pi용 스크루 터미널 블록 실드 사용을 권장합니다. 이 실드는 아래와 같이 더욱 안정적이고 관리하기 쉬운 연결을 제공합니다:

Raspberry Pi Screw Terminal Block Shield

DHT22 모듈을 Raspberry Pi에 다음과 같이 연결하십시오:

  • DHT22 VCC 핀을 Raspberry Pi 5V (핀 2 또는 5V GPIO 핀) 연결
  • DHT22 GND 핀을 Raspberry Pi GND (핀 30 또는 GND GPIO 핀) 연결
  • DHT22 DATA 핀을 Raspberry Pi의 GPIO 핀에 연결 (예: GPIO 12 (핀 32)

라즈베리 파이에서 DHT22 센서로 온도와 습도를 읽는 방법 프로그래밍하기

  • Raspberry Pi에서 터미널을 열거나 SSH로 연결하세요.
  • 다음 명령어를 실행하여 패키지 목록을 업데이트하고 필요한 라이브러리를 설치하세요:
sudo apt-get update sudo apt-get install python3-dev python3-pip sudo pip3 install Adafruit_DHT
  • 이제 Raspberry Pi를 위한 Python 스크립트를 작성하여 DHT22 센서로부터 데이터를 읽을 수 있습니다.
# 이 Raspberry Pi 코드는 newbiely.kr 에서 개발되었습니다 # 이 Raspberry Pi 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. # 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: # https://newbiely.kr/tutorials/raspberry-pi/raspberry-pi-dht22 import Adafruit_DHT import time # Set the sensor type and GPIO pin sensor = Adafruit_DHT.DHT11 pin = 17 # Change this to the GPIO pin you used for DATA try: while True: # Try to read the temperature and humidity from the sensor humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) # If the reading was successful, display the values on the same line if humidity is not None and temperature is not None: print(f"Temperature: {temperature:.1f} °C, Humidity: {humidity:.1f} %") else: print("Failed to retrieve data from the DHT22 sensor.") # Wait some time before taking the next reading time.sleep(2) except KeyboardInterrupt: print("\nExiting...")

Python 코드를 라즈베리 파이에 파일(예: dht22.py)로 저장합니다. 그런 다음 터미널에서 스크립트를 실행합니다:

python3 dht22.py
  • 터미널에서 결과를 확인하세요.
PuTTY - Raspberry Pi
Temperature: 25.4 °C, Humidity: 52.7 % Temperature: 25.7 °C, Humidity: 52.1 % Temperature: 26.1 °C, Humidity: 52.3 % Temperature: 25.9 °C, Humidity: 52.3 %

스크립트는 time.sleep(2) 줄에서 지정한 대로 2초마다 센서 데이터를 계속 읽으므로, 터미널에서 Ctrl + C 키를 눌러 스크립트를 중지할 때까지 2초마다 이렇게 업데이트된 읽기를 볼 수 있습니다.

어떠한 이유로든 스크립트가 센서에서 데이터를 읽지 못하면 다음을 표시합니다:

PuTTY - Raspberry Pi
Failed to retrieve data from the DHT22 sensor.

추가 지식

DHT11과 DHT22 센서를 비교해 봅시다.

DHT11과 DHT22의 공통점

  • 온도 및 습도 정보를 제공합니다.
  • 핀배치는 동일합니다.
  • Raspberry Pi에 대한 배선은 변경되지 않았습니다.
  • 프로그래밍은 라이브러리를 활용하여 코드 한 줄만 다른 점을 제외하고는 유사합니다.

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

분명히, DHT22는 DHT11보다 더 정확하고 범위도 넓지만, 가격이 더 비쌉니다.

Video Tutorial

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