فهرست مطالب:

کنترل دقیق دما در مراحل رزبری پای 4: 3
کنترل دقیق دما در مراحل رزبری پای 4: 3

تصویری: کنترل دقیق دما در مراحل رزبری پای 4: 3

تصویری: کنترل دقیق دما در مراحل رزبری پای 4: 3
تصویری: Chia Chat with Jon from Chia Links - Chia Farming, Chia Price, Crypto and the future 2024, نوامبر
Anonim
کنترل دقیق دما در رزبری پای 4
کنترل دقیق دما در رزبری پای 4

Pimoroni Fan Shim یک راه حل عالی برای کاهش دمای Pi هنگام گرم شدن است. سازندگان حتی نرم افزاری را ارائه می دهند که با افزایش دمای CPU از یک آستانه مشخص (به عنوان مثال 65 درجه) فن را فعال می کند. دما به سرعت زیر آستانه پایین تر کاهش می یابد و فن را خاموش می کند. این عالی است اما باعث افزایش و کاهش دما تحت بارهای متوسط می شود و صدای فن قابل شنیدن ایجاد می کند. این دستورالعمل هنگام تنظیم درجه حرارت CPU به مقدار خاصی با استفاده از چیزی به نام کنترلر PID ، سر و صدای فن را کاهش می دهد. آستانه های بالاتر (به عنوان مثال 65 درجه) منجر به ایجاد صدای بسیار کم صدا می شود در حالی که آستانه های پایین تر (به عنوان مثال 50 درجه) منجر به بلندتر شدن فن اما کنترل بهتر دما می شود.

مثال بالا نتایج من را از اجرای کنترلر PID و تغییر دمای مورد نظر هر 500 ثانیه نشان می دهد. دقت +/- 1 درجه است با کمی پیشروی در تغییرات ناگهانی دما.

نکته مهم این است که این آزمایش تحت همان بار برای کل زمان آزمایش (تماشای iPlayer BBC) انجام شد.

تدارکات

  • تمشک پای 4
  • پیمورونی فن شیم

مرحله 1: فن خود را تنظیم کنید

طرفدار خود را تنظیم کنید
طرفدار خود را تنظیم کنید

اولین قدم این است که فن خود را راه اندازی کنید. آموزش Pimorini عالی است!

سپس ترمینال Pi خود را باز کنید (ctrl alt t)

و کد ارائه شده توسط Pimoroni را نصب کنید

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

مرحله 2: یک کنترلر PI (D) ایجاد کنید

یک کنترلر PI (D) ایجاد کنید
یک کنترلر PI (D) ایجاد کنید

کنترل کننده مشتق انتگرال متناسب (PID) سیستمی است که برای کنترل مقدار یک فرایند خاص (دمای CPU) با دستکاری برخی از دستگاه های فیزیکی (سرعت فن) استفاده می شود. ما می توانیم با روشن و خاموش کردن دوره ای سرعت و سر و صدای فن دستکاری کنیم (مدولاسیون موج پالس). مدت زمان روشن بودن آن در یک دوره معین (به عنوان مثال 1 ثانیه) تعیین می کند که فن چقدر سریع و بلند است (900ms = بلند و سریع ، 100ms = آرام و آهسته). ما از PID برای دستکاری سرعت فن و در نتیجه کنترل دما استفاده می کنیم.

ما می توانیم استفاده از PID را به چند مرحله تقسیم کنیم.

  1. در مورد مقدار متغیر فرایندی که می خواهید به آن برسید تصمیم بگیرید (به عنوان مثال دمای CPU = 55). به این می گویند نقطه تنظیم شما.
  2. خطای PID را محاسبه کنید. اگر نقطه تنظیم شما 55 درجه و دمای واقعی 60 درجه باشد خطای شما 5 درجه است (دما - نقطه تنظیم)
  3. تغییر به موقع فن متناسب با خطا (خطاهای بزرگ منجر به تغییرات بزرگ در سرعت فن می شود ، خطاهای کوچک باعث تغییرات کوچک در سرعت فن می شود).
  4. تنظیم فن در تناسب با مقادیر گذشته (یکپارچه/مجموع تمام خطاهای قبلی)
  5. در صورت تمایل ، سرعت فن را بر اساس میزان تغییر خطا (مشتق) تنظیم می کنید ، اما ما در اینجا این کار را انجام نمی دهیم

اکنون که نظریه را در اختیار دارید ، کد زیر را در Thonny IDE (یا برخی دیگر از IDE پایتون) اجرا کنید. مقدار "هدف" را در کد زیر تغییر دهید تا دمای موردنظر را برای حفظ Pi خود تغییر دهید. من عبارات "P" و "I" را در مقداری دلخواه دلخواه تنظیم کرده ام. در صورت عدم کارکرد برای شما ، می توانید آنها را تنظیم کنید. بزرگتر کردن 'P' به این معنی است که کنترل کننده به سرعت به خطاهای جدید پاسخ می دهد (اما ممکن است پایدار نباشد). تغییر "من" باعث می شود کنترل کننده پاسخ خود را به مقادیر گذشته بیشتر وزن کند. من سعی نمی کنم این اصطلاحات را خیلی بزرگ کنم زیرا تغییر سریع سرعت فن باعث تغییر سریع دما نمی شود. همچنین ، اگر کار فوق العاده سنگینی را روی Pi خود انجام می دهید ، ممکن است به دمای دلخواه خود نرسید (محدوده فن هنوز اعمال می شود).

از fanshim import FanShim

from time import sleep، time import os import math # بازگشت دمای CPU به عنوان یک رشته کاراکتر def getCPUtemperature (): res = os.popen ('vcgencmd masë_temp'). readline () return (res.replace ("temp ="، " ").replace (" "C / n"، "")) fanshim = FanShim () target = 55 # دمای دلخواه (با این بازی کنید و ببینید چه اتفاقی می افتد) دوره = 1 # دوره PWM در =.1 # مقدار اولیه تا 0 ٪ duty cycle off = period-on # مقداردهی اولیه تا 0٪ چرخه وظیفه P =.01 # نسبت Gain نسبت (با این بازی کنید و ببینید چه اتفاقی می افتد) intErr = 0 # خطای انتگرال I =.0001 # عبارت افزایش بین محلی (بازی با این و ببینید چه اتفاقی می افتد) در حالی که True: # get temperaute temp = int (float (getCPUtemperature ())) # خطا را محاسبه کنید و err را هموار کنید = temp-target # خطای انتگرایی را محاسبه کرده و آن را محدود کنید intErr = intErr+err اگر intErr> 10: intErr = 10 if intErr = period: on = period off = 0 else: on = on off = period-on # حداقل چرخه وظیفه را در حالت <.09: on =.09 else: on = on # PWM در پین fanshim اگر در == دوره: fanshim.set_fan (True) sleep (on) else: fanshim.set_fan (True) s leep (on) fanshim.set_fan (False) sleep (off)

مرحله 3: Control Script را در هنگام راه اندازی اجرا کنید

در هنگام راه اندازی Control Script را اجرا کنید
در هنگام راه اندازی Control Script را اجرا کنید

شما می توانید این اسکریپت را هر زمان که pi خود را شروع می کنید اجرا کنید یا می توانید آن را به طور خودکار در راه اندازی مجدد فعال کنید. این کار با crontab بسیار ساده است.

  1. ترمینال را باز کنید
  2. crontab-e را در ترمینال تایپ کنید
  3. خط کد زیر را به فایل 'reboot python /home/pi/bootScripts/fanControl.py &' اضافه کنید
  4. خروج و راه اندازی مجدد

من اسکریپت (fanControl.py) را در فلودری به نام bootScripts قرار دادم اما می توانید آن را در هر جایی قرار دهید فقط مطمئن شوید که مسیر صحیح را در crontab مشخص کرده اید.

تمام شد! حالا فن شما دمای CPU شما را تا مقدار مشخصی کنترل می کند ، در حالی که صدای قابل شنیدن آن را به حداقل می رساند.

توصیه شده: