Съдържание:

Прецизен контрол на температурата на Raspberry Pi 4: 3 стъпки
Прецизен контрол на температурата на Raspberry Pi 4: 3 стъпки

Видео: Прецизен контрол на температурата на Raspberry Pi 4: 3 стъпки

Видео: Прецизен контрол на температурата на Raspberry Pi 4: 3 стъпки
Видео: Raspberry PI 4B, installing Supervised Home Assistant on RaspiOS 64 - checking instructions 2024, Ноември
Anonim
Прецизен контрол на температурата на Raspberry Pi 4
Прецизен контрол на температурата на Raspberry Pi 4

Pimoroni Fan Shim е чудесно решение за намаляване на температурата на вашия Pi, когато той е горещ. Производителите дори предоставят софтуер, който задейства вентилатора, когато температурата на процесора се повиши над определен праг (например 65 градуса). Температурата бързо намалява под по -нисък праг и изключва вентилатора. Това е страхотно, но причинява покачване и понижаване на температурата при умерено натоварване и създава звуков шум от вентилатора. Тази инструкция ще намали шума на вентилатора, докато фиксира температурата на процесора до определена стойност, използвайки нещо, наречено PID контролер. По -високите прагове (например 65 градуса) ще доведат до много по -тих вентилатор, докато по -ниските прагове (например 50 градуса) ще доведат до по -силен вентилатор, но по -добър контрол на температурата.

Горният пример показва моите резултати от пускането на PID контролера и промяната на целевата термична температура на всеки 500 секунди. Точността е +/- 1 градус с известно превишаване при внезапни промени в температурата.

Важното е, че този тест беше изпълнен при същото натоварване за общото време на тестване (гледане на BBC iPlayer).

Консумативи

  • Малина Пи 4
  • Pimoroni Fan Shim

Стъпка 1: Настройте вентилатора си

Настройте своя вентилатор
Настройте своя вентилатор

Първата стъпка е да настроите своя вентилатор. Урокът по Пиморини е страхотен!

След това отворете терминала на вашия 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) е система, използвана за контрол на стойността на определен процес (температура на процесора) чрез манипулиране на някакво физическо устройство (скорост на вентилатора). Можем да манипулираме „скоростта“и шума на вентилатора, като го включваме и изключваме периодично (Pulse Wave Modulation). Продължителността на времето, през което е включено в даден период (например 1 секунда), определя колко бърз и силен е вентилаторът (900ms = силен и бърз, 100ms = тих и бавен). Ще използваме PID, за да манипулираме скоростта на вентилатора и по този начин да контролираме температурата.

Можем да разделим използването на PID на няколко стъпки.

  1. Решете стойността на променливата на процеса, която искате да постигнете (напр. Температура на процесора = 55). Това се нарича вашата зададена точка.
  2. Изчислете PID грешката. Ако вашата зададена стойност е 55 градуса, а действителната температура е 60 градуса, грешката ви е 5 градуса (Температура - зададена точка)
  3. Променете времето на включване на вентилатора пропорционално на грешката (Големите грешки водят до големи промени в скоростта на вентилатора, малките грешки причиняват малки промени в скоростта на вентилатора).
  4. Регулирайте вентилатора в собствено отношение към минали стойности (Интегрален/сума от всички предишни грешки)
  5. По желание можете да регулирате скоростта на вентилатора въз основа на скоростта на промяна на грешката (производна), но тук няма да направим това

Сега, когато имате теорията, изпълнете кода по -долу в IDE на Thonny (или някаква друга IDE на python). Променете стойността на „target“в кода по -долу, за да промените на каква температура искате да поддържате вашия Pi. Задал съм термините „P“и „I“на малко произволни стойности. Не се колебайте да ги коригирате, ако не работят за вас. увеличаването на „P“означава, че контролерът ще реагира бързо на нови грешки (но може да не е стабилен). Промяната на „I“ще накара контролера да претегли отговора си повече към минали стойности. Не бих се опитал да направя тези термини твърде големи, тъй като бързото променяне на скоростта на вентилатора няма бързо да промени сроковете. Също така, ако вършите изключително тежка работа с вашия Pi, може да не постигнете желаната от вас температура (границите на вентилатора все още важат).

от fanshim внос FanShim

от време за импортиране на сън, време за импортиране os импортиране на математика # Връщане на температурата на процесора като символен низ def getCPUtemperature (): res = os.popen ('vcgencmd измервателна_темпа'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," "))) fanshim = FanShim () target = 55 # желана температура (играйте с това и вижте какво се случва) period = 1 # PWM период на =.1 # инициализирайте на 0 % цикъл на изключване = период на включване # инициализиране до 0% работен цикъл P =.01 # пропорционален термин на усилване (играйте с това и вижте какво се случва) intErr = 0 # интегрална грешка I =.0001 # интергрален термин на усилване (играйте с това и вижте какво се случва) докато True: # get temperaute temp = int (float (getCPUtemperature ())) # изчисляване на грешка и гладко err = temp-target # compute integra lerror и го ограничете intErr = intErr+err, ако intErr> 10: intErr = 10, ако intErr = период: включен = период на изключване = 0 иначе: включен = включен изключен = период-включен # задайте минимален работен цикъл, ако е включен <.09: включен =.09 иначе: включен = включен # PWM на щифта на вентилатора, ако на == период: fanshim.set_fan (True) сън (on) else: fanshim.set_fan (True) s leep (on) fanshim.set_fan (False) sleep (off)

Стъпка 3: Стартирайте контролния скрипт при стартиране

Стартирайте контролния скрипт при стартиране
Стартирайте контролния скрипт при стартиране

Можете да стартирате този скрипт всеки път, когато стартирате вашия pi, или можете да го активирате автоматично при рестартиране. Това е супер лесно да се направи с crontab.

  1. отворете терминала
  2. въведете crontab-e в терминала
  3. добавете следния ред код към файла „@reboot python /home/pi/bootScripts/fanControl.py &“
  4. излезте и рестартирайте

Сложих скрипта (fanControl.py) във флодер, наречен bootScripts, но можете да го поставите навсякъде, просто се уверете, че сте посочили правилния път в crontab.

Готово! Сега вашият вентилатор ще контролира температурата на вашия процесор до определена стойност, като същевременно минимизира шума, който произвежда.

Препоръчано: