Mục lục:
- Quân nhu
- Bước 1: Thiết lập người hâm mộ của bạn
- Bước 2: Tạo bộ điều khiển PI (D)
- Bước 3: Chạy Control Script khi khởi động
Video: Kiểm soát nhiệt độ chính xác trên Raspberry Pi 4: 3 Bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
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
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)
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.
- 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.
- 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)
- 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ỏ).
- Đ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 đó)
- 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
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.
- mở thiết bị đầu cuối
- gõ crontab-e vào thiết bị đầu cuối
- thêm dòng mã có đuôi vào tệp '@reboot python /home/pi/bootScripts/fanControl.py &'
- 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:
Đồng hồ đo điện áp chính xác & chính xác Arduino (0-90V DC): 3 bước
Đồng hồ đo điện áp chính xác & chính xác Arduino (0-90V DC): Trong tài liệu hướng dẫn này, tôi đã chế tạo một vôn kế để đo điện áp cao DC (0-90v) với độ chính xác và độ chính xác tương đối bằng cách sử dụng Arduino Nano. Các phép đo thử nghiệm tôi đã thực hiện đủ chính xác, chủ yếu là trong khoảng 0,3v so với điện áp thực được đo bằng
Xúc xắc điện tử - Arduino Die / xúc xắc 1 đến 6 Xúc xắc + D4, D5, D8, D10, D12, D20, D24 và D30: 6 bước (có Hình ảnh)
Xúc xắc điện tử - Arduino Die / xúc xắc 1 đến 6 Xúc xắc + D4, D5, D8, D10, D12, D20, D24 và D30: Đây là một dự án arduino đơn giản để tạo ra một con xúc xắc điện tử. Có thể chọn cho 1 đến 6 viên xúc xắc hoặc 1 trong 8 viên xúc xắc đặc biệt. Lựa chọn được thực hiện đơn giản bằng cách xoay một bộ mã hóa quay. Đây là các tính năng: 1 xúc xắc: hiển thị các chấm lớn 2-6 xúc xắc: hiển thị các chấm
Kiểm soát nhiệt độ phòng dựa trên IOT: 5 bước
Điều khiển nhiệt độ phòng dựa trên IOT: Điều này được hướng dẫn trên dự án điều khiển nhiệt độ phòng dựa trên IOT. Các tính năng: -1. Tự động BẬT quạt trên nhiệt độ phòng quy định. Tự động TẮT quạt dưới nhiệt độ phòng quy định. Kiểm soát thủ công tại bất kỳ thời điểm nào
Nhiệt kế nấu ăn đầu dò nhiệt độ ESP32 NTP với cảnh báo nhiệt độ và hiệu chỉnh Steinhart-Hart.: 7 bước (có hình ảnh)
Nhiệt kế nấu ăn đầu dò nhiệt độ ESP32 NTP với cảnh báo nhiệt độ và hiệu chỉnh Steinhart-Hart. là một chương trình Có thể hướng dẫn cho thấy cách tôi thêm đầu dò nhiệt độ NTP, piezo b
Kiểm soát bộ điều nhiệt của quạt trao đổi nhiệt: 7 bước (có hình ảnh)
Điều khiển bộ điều nhiệt của quạt trao đổi nhiệt: Xin chào tất cả mọi người, Trong bài viết có thể hướng dẫn này, tôi sẽ hướng dẫn các bạn cách tự động hóa quạt trao đổi nhiệt bằng cách sử dụng mô-đun điều nhiệt rẻ tiền. Tôi không chắc bạn đang làm gì, đừng cố gắng