라즈베리 파이 DHT 센서를 이용한 냉각 시스템

이 튜토리얼은 Raspberry Pi, 팬 및 DHT11 또는 DHT22 센서를 사용하여 온도를 조절하는 방법을 안내합니다.

DS18B20 센서를 DHT 센서 대신 사용하고 싶다면, 라즈베리 파이 - DS18B20 센서를 사용한 냉각 시스템을 참조하여 더 많은 정보를 확인하세요.

Hardware Preparation

1×Raspberry Pi 4 Model B Amazon
1×DHT11 Temperature and Humidity Sensor Amazon
1×Relay Amazon
1×12V DC Cooling Fan Amazon
1×(Alternative) 5V DC Cooling Fan 쿠팡 | Amazon
1×12V Power Adapter Amazon
1×DC Power Jack 쿠팡 | 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

You can use DHT22 sensor instead of DHT11 sensor.

공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

냉각 팬 및 DHT 센서에 대하여

이 튜토리얼에서 사용하는 팬은 12v 전원 공급 장치를 필요로 합니다. 전원이 공급되면 팬이 켜지고, 그렇지 않으면 꺼진 상태로 유지됩니다. Raspberry Pi로 팬을 제어하려면, 릴레이를 그 사이에 삽입해야 합니다.

온도 센서와 팬(핀아웃, 작동 방식 및 프로그래밍 방법 포함)에 익숙하지 않은 경우, 다음 튜토리얼이 도움이 될 수 있습니다:

Wiring Diagram

  • DHT11을 사용하는 배선도
라즈베리 파이 DHT11 냉각 팬 시스템 배선도

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

  • DHT22를 사용하는 배선도
라즈베리 파이 DHT22 냉각 팬 시스템 배선도

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

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

Raspberry Pi Screw Terminal Block Shield

시스템 작동 방식

  • 라즈베리 파이는 온도 센서에서 온도를 얻습니다.
  • 온도가 상한선을 초과하면, 라즈베리 파이는 팬을 작동시킵니다.
  • 온도가 하한선 아래로 떨어지면, 라즈베리 파이는 팬을 비활성화합니다.

루프가 계속 반복됩니다.

온도가 특정 지점 이상 또는 이하일 때 팬을 활성화 및 비활성화하려면 상한과 하한을 동일한 수로 설정하십시오.

라즈베리 파이 코드

DHT11 센서를 사용한 냉각 시스템용 Raspberry Pi 코드

라즈베리 파이를 위한 파이썬 코드를 작성해봅시다. 온도가 25°C를 넘으면 라즈베리 파이가 팬을 활성화합니다. 온도가 20°C 이하로 떨어질 때까지 팬은 계속 켜져 있게 됩니다.

Detailed Instructions

  • Raspberry Pi에 Raspbian 또는 다른 Raspberry Pi 호환 운영 체제가 설치되어 있는지 확인하세요.
  • Raspberry Pi가 PC와 동일한 로컬 네트워크에 연결되어 있는지 확인하세요.
  • 필요한 라이브러리를 설치해야 하는 경우 Raspberry Pi가 인터넷에 연결되어 있는지 확인하세요.
  • Raspberry Pi를 처음 사용하는 경우, Raspberry Pi 설정 방법을 참조하세요.
  • Linux 및 macOS에서 기본 SSH 클라이언트를 사용하거나 Windows에서 PuTTY를 사용하여 PC를 Raspberry Pi에 SSH로 연결하세요. SSH를 통해 PC를 Raspberry Pi에 연결하는 방법을 참조하세요.
  • RPi.GPIO 라이브러리가 설치되어 있는지 확인하세요. 설치되어 있지 않다면, 다음 명령어를 사용하여 설치하세요.
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • DHT11 온도 및 습도 센서를 위한 라이브러리를 설치하려면 다음 명령어를 실행하십시오:
sudo pip3 install Adafruit_DHT
  • cooling.py라는 이름의 Python 스크립트 파일을 생성하고 다음 코드를 추가하세요:
# 이 Raspberry Pi 코드는 newbiely.kr 에서 개발되었습니다 # 이 Raspberry Pi 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. # 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: # https://newbiely.kr/tutorials/raspberry-pi/raspberry-pi-cooling-system-using-dht-sensor import Adafruit_DHT import RPi.GPIO as GPIO import time # Constants THRESHOLD_ON = 25 # Upper threshold of temperature, change to your desired value THRESHOLD_OFF = 20 # Lower threshold of temperature, change to your desired value FAN_PIN = 12 # GPIO pin connected to relay, change to your desired GPIO pin DHT11_PIN = 4 # GPIO pin connected to DHT11, change to your desired GPIO pin # Setup GPIO.setmode(GPIO.BCM) GPIO.setup(FAN_PIN, GPIO.OUT) def read_temperature(): try: humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, DHT11_PIN) return temperature except Exception as e: print(f"Error reading temperature: {e}") return None def control_fan(temperature): if temperature is not None: if temperature > THRESHOLD_ON: print("The fan is turned on") GPIO.output(FAN_PIN, GPIO.HIGH) elif temperature < THRESHOLD_OFF: print("The fan is turned off") GPIO.output(FAN_PIN, GPIO.LOW) try: while True: temperature = read_temperature() control_fan(temperature) time.sleep(0.5) except KeyboardInterrupt: pass finally: GPIO.cleanup()
  • 파일을 저장하고 터미널에서 다음 명령을 실행하여 파이썬 스크립트를 실행하십시오:
python3 cooling.py
  • 센서 주변 환경의 온도를 변경하세요.
  • 시리얼 모니터에서 팬의 상태를 확인하세요.

스크립트는 터미널에서 Ctrl + C를 누를 때까지 무한 루프로 계속 실행됩니다.

DHT22 센서를 사용한 냉각 시스템을 위한 Raspberry Pi 코드

DHT11과 유사하게, Raspberry Pi용 아래 Python 코드를 사용하여 DHT22 센서를 통해 냉각 시스템을 만들 수 있습니다.

# 이 Raspberry Pi 코드는 newbiely.kr 에서 개발되었습니다 # 이 Raspberry Pi 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. # 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: # https://newbiely.kr/tutorials/raspberry-pi/raspberry-pi-cooling-system-using-dht-sensor import Adafruit_DHT import RPi.GPIO as GPIO import time # Constants THRESHOLD_ON = 25 # Upper threshold of temperature, change to your desired value THRESHOLD_OFF = 20 # Lower threshold of temperature, change to your desired value FAN_PIN = 12 # GPIO pin connected to relay, change to your desired GPIO pin DHT22_PIN = 14 # GPIO pin connected to DHT22, change to your desired GPIO pin # Setup GPIO.setmode(GPIO.BCM) GPIO.setup(FAN_PIN, GPIO.OUT) def read_temperature(): try: humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, DHT22_PIN) return temperature except Exception as e: print(f"Error reading temperature: {e}") return None def control_fan(temperature): if temperature is not None: if temperature > THRESHOLD_ON: print("The fan is turned on") GPIO.output(FAN_PIN, GPIO.HIGH) elif temperature < THRESHOLD_OFF: print("The fan is turned off") GPIO.output(FAN_PIN, GPIO.LOW) try: while True: temperature = read_temperature() control_fan(temperature) time.sleep(0.5) except KeyboardInterrupt: pass finally: GPIO.cleanup()

고급 지식

위의 규제 접근 방식은 온-오프 제어기, 신호기 또는 "뱅뱅" 제어기로도 불립니다. 이 기술은 실행하기 쉬운 방법입니다.

PID 제어기로 알려진 대체 접근 방식이 있습니다. 이 방법은 원하는 온도를 유지하는 데 더 효과적이지만, 복잡하고 이해 및 적용하기 어렵습니다. 그 결과, PID 제어기는 온도 조절에 널리 사용되지 않습니다.

Video Tutorial

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