Raspberry Pi Hệ Thống Sưởi Ấm

Hướng dẫn này sẽ chỉ bạn cách sử dụng Raspberry Pi, phần tử gia nhiệt và cảm biến nhiệt độ DS18B20 để điều chỉnh nhiệt độ phòng.

Ngoài ra, code có thể được điều chỉnh cho các cảm biến nhiệt độ khác như DHT11 hoặc DHT22, LM35 thay thế cho cảm biến DS18B20.

Linh Kiện Cần Thiết

1×Raspberry Pi 5
1×DS18B20 Temperature Sensor (CÓ Adapter)
1×DS18B20 Temperature Sensor (KHÔNG CÓ Adapter)
1×điện trở 4.7 kΩ
1×Relay
1×Phần Tử Gia Nhiệt
1×Adapter Nguồn 12V
1×Jack Nguồn DC
1×Dây Cắm Jumper
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ề Phần Tử Gia Nhiệt và Cảm Biến Nhiệt Độ DS18B20

Phần tử gia nhiệt được sử dụng trong hướng dẫn này yêu cầu nguồn cung cấp 12V. Khi cung cấp điện cho phần tử gia nhiệt, nó sẽ tạo ra nhiệt. Để có thể điều khiển phần tử gia nhiệt bằng Raspberry Pi, một relay cần được chèn vào giữa chúng.

Nếu bạn chưa quen thuộc với cảm biến nhiệt độ và phần tử gia nhiệt (pinout, cách hoạt động, cách lập trình, v.v.), những hướng dẫn sau có thể hữu ích:

Sơ Đồ Kết Nối

sơ đồ kết nối hệ thống sưởi ấm Raspberry Pi

This image is created using Fritzing. Click to enlarge image

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

  • Raspberry Pi thu thập nhiệt độ từ cảm biến nhiệt độ.
  • Nếu nhiệt độ giảm xuống dưới giới hạn thấp nhất định, Raspberry Pi sẽ kích hoạt phần tử gia nhiệt.
  • Khi nhiệt độ vượt quá giới hạn cao nhất định, Raspberry Pi sẽ tắt phần tử gia nhiệt.

Vòng lặp này được lặp lại vô tận.

Code Raspberry Pi cho Hệ Thống Làm Lạnh với cảm biến DS18B20

Trong đoạn code trên, khi nhiệt độ giảm xuống dưới 15°C, Raspberry Pi sẽ kích hoạt phần tử gia nhiệt. Nó sẽ tiếp tục hoạt động cho đến khi nhiệt độ tăng lên trên 20°C.

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc hệ điều hành khác tương thích với Raspberry Pi trên Pi của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng cục bộ 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 một số thư viện.
  • Mới sử dụng Raspberry Pi? Hãy bắt đầu với hướng dẫn Raspberry Pi - Cài Đặt Phần Mềm
  • Kết nối PC của bạn với Raspberry Pi qua SSH sử dụng SSH client tích hợp 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, hãy cài đặt bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Trước khi sử dụng cảm biến nhiệt độ DS18B20 với Raspberry Pi, chúng ta cần bật giao diện 1-Wire trên Raspberry Pi. Xem Cách bật giao diện 1-Wire trên Raspberry Pi
  • Cài đặt thư viện cho cảm biến nhiệt độ DS18B20 bằng cách chạy lệnh sau:
pip install w1thermsensor
  • Tạo file Python script heating.py và thêm đoạn 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-heating-system from w1thermsensor import W1ThermSensor import RPi.GPIO as GPIO import time # Constants THRESHOLD_OFF = 20 # Upper threshold of temperature, change to your desired value THRESHOLD_ON = 15 # Lower threshold of temperature, change to your desired value RELAY_PIN = 21 # GPIO pin connected to the relay module, change to your desired GPIO pin # Setup GPIO.setmode(GPIO.BCM) GPIO.setup(RELAY_PIN, GPIO.OUT) def find_ds18b20_sensor(): for sensor in W1ThermSensor.get_available_sensors(): if sensor.type == W1ThermSensor.THERM_SENSOR_DS18B20: return sensor return None def read_temperature(sensor): try: temperature_celsius = sensor.get_temperature() return temperature_celsius except Exception as e: print(f"Error reading temperature: {e}") return None # Find DS18B20 sensor ds18b20_sensor = find_ds18b20_sensor() if ds18b20_sensor is not None: print(f"DS18B20 Sensor found: {ds18b20_sensor.id}") try: while True: temperature = read_temperature(ds18b20_sensor) if temperature is not None: if temperature > THRESHOLD_OFF: print("The heating element is turned off") GPIO.output(RELAY_PIN, GPIO.LOW) # turn off elif temperature < THRESHOLD_ON: print("The heating element is turned on") GPIO.output(RELAY_PIN, GPIO.HIGH) # turn on time.sleep(0.5) except KeyboardInterrupt: pass finally: GPIO.cleanup() else: print("DS18B20 Sensor not found.")
  • Lưu file và chạy Python script bằng cách thực hiện lệnh sau trong terminal:
python3 heating.py

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

  • Thay đổi nhiệt độ của khu vực xung quanh cảm biến.
  • Kiểm tra nhiệt độ của phần tử gia nhiệt và phòng.

Kiến Thức Nâng Cao

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

Một cách tiếp cận thay thế được gọi là bộ điều khiển PID tồn tại. Phương pháp điều khiển nhiệt độ này ổn định hơn, tuy nhiên nó phức tạp và không được sử dụng rộng rãi. Do đó, bộ điều khiển PID không phải là lựa chọn phổ biến cho việc điều chỉnh nhiệt độ.