Raspberry Pi Hệ Thống Làm Mát sử dụng Cảm Biến DHT

Hướng dẫn này chỉ cho bạn cách sử dụng Raspberry Pi, một chiếc quạt và cảm biến DHT11 hoặc DHT22 để điều khiển nhiệt độ.

Nếu bạn muốn sử dụng cảm biến DS18B20 thay vì cảm biến DHT, vui lòng tham khảo Raspberry Pi - Hệ Thống Làm Mát sử dụng Cảm Biến Nhiệt Độ DS18B20 để biết thêm thông tin.

Phần Cứng Cần Thiết

1×Raspberry Pi 5
1×Cảm Biến Nhiệt Độ và Độ Ẩm DHT11
1×Relay
1×Quạt Làm Mát DC 12V
1×(Thay Thế) Quạt Làm Mát DC 5V
1×Adapter Nguồn 12V
1×Đầu Cắm Nguồn DC
1×Dây Jumper

Bạn có thể sử dụng cảm biến DHT22 thay vì cảm biến DHT11.

1×(Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi
1×(Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit
1×(Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Quạt Làm Mát và Cảm Biến DHT

Quạt được sử dụng trong hướng dẫn này yêu cầu nguồn điện 12v. Nếu có nguồn điện, quạt sẽ bật, và nếu không có, quạt sẽ tắt. Để điều khiển quạt bằng Raspberry Pi, cần phải đặt một relay ở giữa chúng.

Nếu bạn chưa quen với cảm biến nhiệt độ và quạt (bao gồm pinout, cách hoạt động và cách lập trình), các hướng dẫn sau có thể giúp bạn:

Sơ Đồ Đấu Nối

  • Sơ đồ đấu nối sử dụng DHT11
sơ đồ đấu nối hệ thống quạt làm mát dht11 Raspberry Pi

This image is created using Fritzing. Click to enlarge image

  • Sơ đồ đấu nối sử dụng DHT22
sơ đồ đấu nối hệ thống quạt làm mát dht22 Raspberry Pi

This image is created using Fritzing. Click to enlarge image

Cách Hệ Thống Hoạt Động

  • Raspberry Pi đo nhiệt độ từ cảm biến nhiệt độ.
  • Nếu nhiệt độ vượt quá ngưỡng trên, Raspberry Pi sẽ kích hoạt quạt.
  • Nếu nhiệt độ giảm xuống dưới ngưỡng dưới, Raspberry Pi sẽ tắt quạt.

Vòng lặp này được lặp lại liên tục.

Nếu bạn muốn bật và tắt quạt khi nhiệt độ trên hoặc dưới một điểm nhất định, chỉ cần đặt ngưỡng trên và dưới ở cùng một giá trị.

Code Raspberry Pi

Code Raspberry Pi cho Hệ Thống Làm Mát với cảm biến DHT11

Hãy viết code Python cho Raspberry Pi sao cho khi nhiệt độ tăng trên 25°C, Raspberry Pi sẽ kích hoạt quạt. Quạt sẽ tiếp tục chạy cho đến khi nhiệt độ giảm xuống 20°C hoặc thấp hơn.

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc hệ điều hành tương thích khác cho Raspberry Pi.
  • Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng local với PC của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối internet nếu bạn cần cài đặt thư viện.
  • Nếu đây là lần đầu bạn sử dụng Raspberry Pi, xem Raspberry Pi - Cài Đặt Phần Mềm
  • Kết nối PC của bạn với Raspberry Pi qua SSH bằng SSH client có sẵn trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
  • Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, cài đặt bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Cài đặt thư viện cho cảm biến nhiệt độ và độ ẩm DHT11 bằng cách chạy lệnh sau:
sudo pip3 install Adafruit_DHT
  • Tạo file Python script cooling.py và thêm code sau:
# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi này được cung cấp để sử dụng công khai, không có ràng buộc. # Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: # https://newbiely.vn/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()
  • Lưu file và chạy Python script bằng cách thực hiện lệnh sau trong terminal:
python3 cooling.py
  • Thay đổi nhiệt độ môi trường xung quanh cảm biến.
  • Kiểm tra trạng thái của quạt trên serial monitor.

Script chạy trong vòng lặp vô hạn liên tục cho đến khi bạn nhấn Ctrl + C trong terminal.

Code Raspberry Pi cho Hệ Thống Làm Mát với cảm biến DHT22

Tương tự như DHT11, chúng ta có thể tạo hệ thống làm mát sử dụng cảm biến DHT22 bằng code Python dưới đây cho Raspberry Pi:

# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi này được cung cấp để sử dụng công khai, không có ràng buộc. # Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: # https://newbiely.vn/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()

Kiến Thức Nâng Cao

Phương pháp điều khiển trên là bộ điều khiển on-off, còn được gọi là bộ báo hiệu hoặc bộ điều khiển "bang-bang". Kỹ thuật này dễ thực hiện.

Một phương pháp khác được gọi là bộ điều khiển PID tồn tại. Phương pháp này hiệu quả hơn trong việc duy trì nhiệt độ mong muốn, tuy nhiên nó phức tạp và khó hiểu cũng như khó áp dụng. Do đó, bộ điều khiển PID không được sử dụng rộng rãi cho việc điều khiển nhiệt độ.

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.