Mục lục:

Kiểm soát nhiệt độ chính xác trên Raspberry Pi 4: 3 Bước
Kiểm soát nhiệt độ chính xác trên Raspberry Pi 4: 3 Bước

Video: Kiểm soát nhiệt độ chính xác trên Raspberry Pi 4: 3 Bước

Video: Kiểm soát nhiệt độ chính xác trên Raspberry Pi 4: 3 Bước
Video: Lập trình đọc cảm biến DHT22 qua chân GPIO Raspberry Pi 4| Bài 6 - Lập trình IoT cơ bản 2024, Tháng mười một
Anonim
Kiểm soát nhiệt độ chính xác trên Raspberry Pi 4
Kiểm soát nhiệt độ chính xác trên Raspberry Pi 4

Quạt Pimoroni Shim là một giải pháp tuyệt vời để giảm nhiệt độ của Pi khi nó nóng. Các nhà sản xuất thậm chí còn cung cấp phần mềm kích hoạt quạt khi nhiệt độ CPU tăng lên trên một ngưỡng nhất định (ví dụ: 65 độ). Nhiệt độ nhanh chóng giảm xuống dưới ngưỡng thấp hơn và tắt quạt. Điều này là tuyệt vời nhưng làm cho nhiệt độ tăng và giảm khi tải vừa phải và tạo ra tiếng ồn của quạt. Hướng dẫn này sẽ làm giảm tiếng ồn của quạt trong khi cố định nhiệt độ CPU thành một giá trị cụ thể bằng cách sử dụng một thứ gọi là bộ điều khiển PID. Ngưỡng cao hơn (ví dụ: 65 độ) sẽ dẫn đến quạt chạy êm hơn nhiều trong khi ngưỡng thấp hơn (ví dụ: 50 độ) sẽ dẫn đến quạt lớn hơn nhưng kiểm soát nhiệt độ tốt hơn.

Ví dụ trên cho thấy kết quả của tôi khi chạy bộ điều khiển PID và thay đổi nhiệt độ mục tiêu sau mỗi 500 giây. Độ chính xác là +/- 1 độ với một số quá tải về sự thay đổi đột ngột của nhiệt độ nước.

Quan trọng là, bài kiểm tra này đã được hoàn thiện dưới cùng một tải cho tổng thời gian kiểm tra (xem BBC iPlayer).

Quân nhu

  • Raspberry Pi 4
  • Pimoroni người hâm mộ Shim

Bước 1: Thiết lập người hâm mộ của bạn

Thiết lập người hâm mộ của bạn
Thiết lập người hâm mộ của bạn

Bước đầu tiên là thiết lập quạt của bạn. Hướng dẫn Pimorini là tuyệt vời!

Sau đó, mở thiết bị đầu cuối trên Pi của bạn (ctrl alt t)

Và cài đặt mã do Pimoroni cung cấp

git clone https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh

Bước 2: Tạo bộ điều khiển PI (D)

Tạo bộ điều khiển PI (D)
Tạo bộ điều khiển PI (D)

Bộ điều khiển Đạo hàm Tích phân Tỷ lệ (PID) là một hệ thống được sử dụng để điều khiển giá trị của một quá trình nhất định (nhiệt độ CPU) bằng cách thao tác với một số thiết bị vật lý (Tốc độ quạt). Chúng ta có thể điều khiển 'tốc độ' và tiếng ồn của quạt bằng cách bật và tắt định kỳ (Điều chế sóng xung). Khoảng thời gian bật trong một khoảng thời gian nhất định (ví dụ: 1 giây) xác định tốc độ và độ ồn của quạt (900ms = to và nhanh, 100ms = yên tĩnh và chậm). Chúng tôi sẽ sử dụng PID để điều khiển tốc độ của quạt và do đó kiểm soát nhiệt độ.

Chúng ta có thể chia việc sử dụng PID thành nhiều bước.

  1. Quyết định giá trị của biến quy trình bạn muốn đạt được (ví dụ: nhiệt độ CPU = 55). Đây được gọi là điểm đặt của bạn.
  2. Tính toán sai số PID. Nếu điểm đặt của bạn là 55 độ và nhiệt độ thực tế là 60 độ thì lỗi của bạn là 5 độ (Nhiệt độ - điểm đặt)
  3. Thay đổi thời gian hoạt động của quạt tương ứng với lỗi (Lỗi lớn thì tốc độ quạt thay đổi lớn, lỗi nhỏ thì tốc độ quạt thay đổi nhỏ).
  4. Điều chỉnh quạt theo đề xuất về các giá trị trong quá khứ (Tích / tổng của tất cả các lỗi trước đó)
  5. Bạn có thể tùy ý điều chỉnh tốc độ quạt dựa trên tốc độ thay đổi của lỗi (dẫn xuất) nhưng chúng tôi sẽ không làm điều đó ở đây

Bây giờ bạn đã có lý thuyết, hãy chạy mã bên dưới trong Thonny IDE (hoặc một số IDE python khác). Thay đổi giá trị của 'target' trong đoạn mã dưới đây để thay đổi nhiệt độ bạn muốn duy trì Pi của mình. Tôi đã đặt các thuật ngữ 'P' và 'I' ở các giá trị hơi tùy ý. Hãy điều chỉnh những điều này nếu chúng không phù hợp với bạn. làm cho 'P' lớn hơn có nghĩa là bộ điều khiển sẽ phản hồi nhanh chóng với các lỗi mới (nhưng có thể không ổn định). Việc thay đổi 'I' sẽ khiến bộ điều khiển tăng cường phản ứng của nó với các giá trị trong quá khứ. Tôi sẽ không cố gắng làm cho những thuật ngữ này quá lớn vì tốc độ quạt nhanh chóng sẽ không thay đổi nhanh chóng nhiệt độ. Ngoài ra, nếu bạn đang làm công việc cực kỳ nặng nhọc trên Pi của mình, bạn có thể không đạt được nhiệt độ mong muốn của mình (các giới hạn của quạt vẫn được áp dụng).

từ fanshim nhập FanShim

from time import sleep, time import os import math # Trả về nhiệt độ CPU dưới dạng chuỗi ký tự def getCPUtempe Heat (): res = os.popen ('vcgencmd Measure_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," ")) fanshim = FanShim () target = 55 # nhiệt độ mong muốn (chơi với điều này và xem điều gì sẽ xảy ra) giai đoạn = 1 # giai đoạn PWM bật =.1 # khởi tạo thành 0 % chu kỳ nhiệm vụ tắt = khoảng thời gian bật # khởi tạo đến 0% chu kỳ nhiệm vụ P = 0,01 # số hạng tăng theo tỷ lệ (chơi với điều này và xem điều gì sẽ xảy ra) intErr = 0 # lỗi tích phân I =.0001 # số hạng tăng liên số (chơi với điều này và xem điều gì sẽ xảy ra) trong khi True: # get temperaute temp = int (float (getCPUtempe Heat ())) # tính toán lỗi và làm mịn err = temp-target # compute integration lerror và ràng buộc nó intErr = intErr + err nếu intErr> 10: intErr = 10 if intErr = period: on = period off = 0 else: on = on off = period-on # set chu kỳ nhiệm vụ tối thiểu nếu on <.09: on =.09 else: on = on # PWM trên pin fanshim nếu on == period: fanshim.set_fan (True) sleep (on) else: fanshim.set_fan (True) s leep (bật) fanshim.set_fan (Sai) ngủ (tắt)

Bước 3: Chạy Control Script khi khởi động

Chạy Control Script khi khởi động
Chạy Control Script khi khởi động

Bạn có thể chạy tập lệnh này mỗi khi khởi động số pi của mình hoặc bạn có thể để nó tự động kích hoạt khi khởi động lại. Điều này cực kỳ đơn giản để thực hiện với crontab.

  1. mở thiết bị đầu cuối
  2. gõ crontab-e vào thiết bị đầu cuối
  3. thêm dòng mã có đuôi vào tệp '@reboot python /home/pi/bootScripts/fanControl.py &'
  4. thoát và khởi động lại

Tôi đặt tập lệnh (fanControl.py) trong một bộ mã hóa có tên là bootScripts nhưng bạn có thể đặt nó ở bất kỳ đâu chỉ cần đảm bảo rằng bạn chỉ định đúng đường dẫn trong crontab.

Tất cả đã được làm xong! Bây giờ quạt của bạn sẽ kiểm soát nhiệt độ của CPU của bạn đến một giá trị cụ thể, đồng thời giảm thiểu tiếng ồn mà nó tạo ra.

Đề xuất: