Mündəricat:

Raspberry Pi 4: 3 addımlarında Həssas Temperatur Nəzarəti
Raspberry Pi 4: 3 addımlarında Həssas Temperatur Nəzarəti

Video: Raspberry Pi 4: 3 addımlarında Həssas Temperatur Nəzarəti

Video: Raspberry Pi 4: 3 addımlarında Həssas Temperatur Nəzarəti
Video: Raspberry Pi 4B в корпусе Argon ONE M.2 c SSD диском 128 ГБ, собираем сервер для Home Assistant 2024, Noyabr
Anonim
Raspberry Pi 4 -də dəqiq temperatur nəzarəti
Raspberry Pi 4 -də dəqiq temperatur nəzarəti

Pimoroni Fan Shim, Pi işləyərkən istiliyini azaltmaq üçün əla bir həlldir. İstehsalçılar, hətta CPU istiliyi müəyyən bir həddən (məsələn, 65 dərəcə) yuxarı qalxdıqda fanı işə salan proqram təmin edir. Temperatur tez bir zamanda aşağı bir eşikdən aşağı düşür və fanı söndürür. Bu əladır, amma istiliyin orta yüklər altında yüksəlməsinə və düşməsinə səbəb olur və fanat səsləri eşidilir. Bu təlimat, PID nəzarətçisi adlanan bir şey istifadə edərək CPU temperaturunu müəyyən bir dəyərə sabitləyərkən fanın səs -küyünü azaldacaq. Daha yüksək eşiklər (məsələn, 65 dərəcə) daha çox səssiz bir fanla nəticələnəcək, daha aşağı eşiklər (məsələn, 50 dərəcə) daha yüksək bir fanat, lakin daha yaxşı bir temperatur nəzarəti ilə nəticələnəcək.

Yuxarıdakı nümunə, PID nəzarətçisini işə salmaqdan və hədəf istiliyini hər 500 saniyədən bir dəyişməkdən əldə etdiyim nəticələri göstərir. Dəqiqlik +/- 1 dərəcədir və termometriyədə ani dəyişikliklər müşahidə olunur.

Əhəmiyyətli olan bu test, ümumi test müddəti üçün eyni yük altında həyata keçirildi (BBC iPlayer -ə baxır).

Təchizat

  • Moruq Pi 4
  • Pimoroni Fan Shim

Addım 1: Fanınızı qurun

Fanatınızı qurun
Fanatınızı qurun

İlk addım pərəstişkarınızı qurmaqdır. Pimorini dərsliyi əladır!

Sonra Pi cihazınızın terminalını açın (ctrl alt t)

Və Pimoroni tərəfindən verilən kodu quraşdırın

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

Addım 2: PI (D) Nəzarətçisi yaradın

PI (D) Nəzarətçisi yaradın
PI (D) Nəzarətçisi yaradın

Proportional İnteqral Törəmə (PID) nəzarətçisi, müəyyən bir fiziki cihazı (Fan Sürəti) manipulyasiya edərək müəyyən bir prosesin dəyərini (CPU temperaturu) idarə etmək üçün istifadə olunan bir sistemdir. Fanı vaxtaşırı yandırıb söndürərək 'sürətini' və səs -küyünü idarə edə bilərik (Pulse Dalğası Modulyasiyası). Müəyyən bir müddətdə (məsələn, 1 saniyə) işə salınma müddəti, fanın nə qədər sürətli və nə qədər yüksək olduğunu müəyyən edir (900ms = yüksək və sürətli, 100 ms = sakit və yavaş). Fanın sürətini manipulyasiya etmək və beləliklə temperaturu idarə etmək üçün PID -dən istifadə edəcəyik.

PID istifadəsini addımların sayına bölə bilərik.

  1. Əldə etmək istədiyiniz proses dəyişəninin dəyərinə qərar verin (məsələn, CPU temperaturu = 55). Buna təyinat nöqtəniz deyilir.
  2. PID səhvini hesablayın. İstədiyiniz nöqtəniz 55 dərəcə və faktiki temperatur 60 dərəcədirsə, səhviniz 5 dərəcədir (Temperatur - setpoint)
  3. Fanın vaxtını xətaya görə dəyişdirin (Böyük səhvlər fan sürətində böyük dəyişikliklərə səbəb olur, kiçik səhvlər fan sürətində kiçik dəyişikliklərə səbəb olur).
  4. Fanı keçmiş dəyərlərə uyğun olaraq tənzimləyin (Bütün əvvəlki səhvlərin cəmidir)
  5. İsteğe bağlı olaraq, fan sürətini xətanın dəyişmə sürətinə (törəmə) əsaslanaraq düzəldə bilərsiniz, amma burada bunu etməyəcəyik

İndi nəzəriyyəniz Thonny IDE -də (və ya başqa bir python IDE) aşağıdakı kodu işlədin. Pi'nizi hansı temperaturda saxlamaq istədiyinizi dəyişdirmək üçün aşağıdakı koddakı 'hədəf' dəyərini dəyişdirin. 'P' və 'I' şərtlərini bir qədər ixtiyari dəyərlərə qoydum. Sizin üçün işləmirsə bunları tənzimləməkdən çekinmeyin. 'P' ni daha böyük etmək, nəzarətçinin yeni səhvlərə sürətli cavab verəcəyi deməkdir (lakin sabit olmaya bilər). 'I' dəyişdirilməsi, nəzarətçinin keçmiş dəyərlərə daha çox reaksiya verməsinə səbəb olacaq. Bu şərtləri çox böyük etməyə çalışmazdım, çünki fan sürətini sürətlə dəyişmək istiliyi sürətlə dəyişməyəcək. Ayrıca, Pi -də inanılmaz dərəcədə ağır işlər görürsünüzsə, istədiyiniz müddətə çata bilməyəcəksiniz (fanın sərhədləri hələ də tətbiq olunur).

fanshim idxalından FanShim

vaxt idxal yuxudan, vaxt idxal os idxal riyaziyyat # CPU temperaturunu xarakter simli olaraq qaytarın defCPUtemperature (): res = os.popen ('vcgencmd ölçü_temp'). readline () qayıt (res.replace ("temp =", " ").replace (" 'C / n "," ")) fanshim = FanShim () target = 55 # istədiyiniz temperatur (bununla oynayın və nə olduğunu görün) dövr = 1 # PWM dövrü =.1 # 0 -a sıfırlayın % vəzifə dövrü söndürüldü = dövrdən başlayaraq # sıfırdan 0% -ə qədər vəzifə dövrü P =.01 # nisbi mənfəət müddəti (bununla oynayın və nə olduğunu görün) intErr = 0 # inteqral səhv I =.0001 # intergral mənfəət müddəti (bununla oynayın və nə baş verdiyini görün) True olarkən: # get temperaute temp = int (float (getCPUtemperature ())) # səhv hesablayın və xətanı düzəldin = temp-target # inteqra lerrorunu hesablayın və intErr = intErr+err məhdudlaşdırın intErr> 10: intErr = 10 əgər intErr = period: on = off off = 0 başqa: on = on off = period-on # əgər <.09: on =.09 başqa olarsa minimum vəzifə dövrünü təyin edin: on = on fanshim pinində # PWM varsa == dövrü: fanshim.set_fan (Doğru) yuxu (açıq) başqa: fanshim.set_fan (Doğru) s cüzam (açıq) fanshim.set_fan (Yanlış) yuxu (söndürülmüş)

Addım 3: Başlanğıcda Nəzarət Skriptini işə salın

Başlanğıcda Nəzarət Skriptini işə salın
Başlanğıcda Nəzarət Skriptini işə salın

Pi -yə hər dəfə başladığınızda bu skriptdən istifadə edə bilərsiniz və ya avtomatik olaraq yenidən başladıqda işə sala bilərsiniz. Bunu crontab ilə etmək çox sadədir.

  1. terminalı açın
  2. terminala crontab-e yazın
  3. aşağıdakı kodu "@reboot python /home/pi/bootScripts/fanControl.py &" faylına əlavə edin
  4. çıxın və yenidən başladın

Ssenarini (fanControl.py) bootScripts adlı bir floderə qoydum, ancaq hər hansı bir yerə qoya bilərsiniz, yalnız crontab -da düzgün yolu göstərdiyinizə əmin olun.

Hər şey hazırdır! İndi pərəstişkarınız CPU -nun istiliyini müəyyən bir dəyərə qədər idarə edəcək və istehsal etdiyi səs -küyü minimuma endirəcək.

Tövsiyə: