Kazalo:

Natančen nadzor temperature na Raspberry Pi 4: 3 korakih
Natančen nadzor temperature na Raspberry Pi 4: 3 korakih

Video: Natančen nadzor temperature na Raspberry Pi 4: 3 korakih

Video: Natančen nadzor temperature na Raspberry Pi 4: 3 korakih
Video: Полное руководство по Google Forms - универсальный инструмент для опросов и сбора данных онлайн! 2024, November
Anonim
Natančen nadzor temperature na Raspberry Pi 4
Natančen nadzor temperature na Raspberry Pi 4

Pimoroni Fan Shim je odlična rešitev za znižanje temperature vašega Pi, ko se segreje. Proizvajalci ponujajo celo programsko opremo, ki sproži ventilator, ko se temperatura CPE dvigne nad določen prag (npr. 65 stopinj). Temperatura se hitro zniža pod spodnji prag in izklopi ventilator. To je super, vendar povzroča zvišanje in znižanje temperature pri zmernih obremenitvah ter ustvarja zvok hrupa ventilatorja. Ta navodila bodo zmanjšala hrup ventilatorja, medtem ko bo temperatura procesorja določena na določeno vrednost z uporabo nečesa, kar se imenuje PID krmilnik. Višji pragi (na primer 65 stopinj) bodo povzročili veliko tišji ventilator, medtem ko bodo nižji pragi (npr. 50 stopinj) povzročili glasnejši ventilator, vendar boljši nadzor temperature.

Zgornji primer prikazuje moje rezultate pri izvajanju krmilnika PID in spreminjanju ciljne temperature vsakih 500 sekund. Natančnost je +/- 1 stopinja z nekaj preseganjem pri nenadnih spremembah temperature.

Pomembno je, da je bil ta test opravljen pod enako obremenitvijo celotnega časa testiranja (gledanje BBC iPlayerja).

Zaloge

  • Malina Pi 4
  • Pimoroni Fan Shim

1. korak: Nastavite ventilator

Nastavite svoj ventilator
Nastavite svoj ventilator

Prvi korak je nastavitev ventilatorja. Pimorinijeva vadnica je odlična!

Nato odprite terminal na svojem Pi (ctrl alt t)

In namestite kodo Pimoronija

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

2. korak: Ustvarite krmilnik PI (D)

Ustvarite krmilnik PI (D)
Ustvarite krmilnik PI (D)

Krmilnik proporcionalnega integralnega izvlečka (PID) je sistem, ki se uporablja za nadzor vrednosti določenega procesa (temperatura CPE -ja) z manipulacijo neke fizične naprave (hitrost ventilatorja). S hitrostjo in hrupom ventilatorja lahko upravljamo tako, da ga občasno vklapljamo in izklapljamo (Pulse Wave Modulation). Čas, v katerem je vklopljen v določenem obdobju (npr. 1 sekunda), določa, kako hiter in kako glasen je ventilator (900 ms = glasno in hitro, 100 ms = tiho in počasi). PID bomo uporabili za manipulacijo hitrosti ventilatorja in s tem za nadzor temperature.

Uporabo PID lahko razdelimo na več korakov.

  1. Odločite se za vrednost procesne spremenljivke, ki jo želite doseči (npr. Temperatura procesorja = 55). To se imenuje vaša nastavljena vrednost.
  2. Izračunajte napako PID. Če je vaša nastavljena vrednost 55 stopinj, dejanska temperatura pa 60 stopinj, je vaša napaka 5 stopinj (temperatura - nastavljena vrednost)
  3. Spremenite čas delovanja ventilatorja sorazmerno z napako (velike napake povzročijo velike spremembe v hitrosti ventilatorja, majhne napake povzročijo majhne spremembe hitrosti ventilatorja).
  4. Prilagodite ventilator v preprituciji na pretekle vrednosti (integral/vsota vseh prejšnjih napak)
  5. Po želji lahko hitrost ventilatorja prilagodite glede na stopnjo spremembe napake (izpeljanka), vendar tega tukaj ne bomo storili

Zdaj, ko imate teorijo, zaženite spodnjo kodo v Thonny IDE (ali kateri koli drugi Python IDE). V spodnji kodi spremenite vrednost 'target', da spremenite temperaturo, pri kateri želite ohraniti svoj Pi. Izraze "P" in "I" sem nastavil na nekoliko poljubne vrednosti. Prilagodite jih, če vam ne delujejo. povečanje 'P' pomeni, da se bo krmilnik hitro odzval na nove napake (vendar morda ne bo stabilen). Če spremenite 'I', bo krmilnik povečal težo, zato bo njegov odziv bolj na pretekle vrednosti. Teh izrazov ne bi poskušal povečati, saj hitro spreminjanje hitrosti ventilatorja ne bo hitro spremenilo temperature. Tudi če na svojem Pi opravljate neverjetno težka dela, morda ne boste dosegli želene temperature (omejitve ventilatorja še vedno veljajo).

od fanshim uvoz FanShim

from time import sleep, time import os import math # Vrni temperaturo procesorja kot niz znakov def getCPUtemperature (): res = os.popen ('vcgencmd mere_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," "))) fanshim = FanShim () cilj = 55 # želena temperatura (igrajte se s tem in poglejte, kaj se zgodi) obdobje = 1 # obdobje PWM na =.1 # inicializirajte na 0 % obratovalni cikel izklopljen = obdobje vklopa # inicializirano na 0% obratovalnega cikla P =.01 # sorazmerni dobiček (igrajte se s tem in poglejte, kaj se zgodi) intErr = 0 # integralna napaka I =.0001 # medgralen dobiček (igrajte se s tem in poglejte, kaj se zgodi) medtem ko je True: # get temperaute temp = int (float (getCPUtemperature ())) # izračuna napako in gladko err = temp-target # izračunaj integra lerror in jo omeji intErr = intErr+err če je intErr> 10: intErr = 10, če je intErr = obdobje: vklopljeno = izklopljeno obdobje = 0 drugo: vklopljeno = vklopljeno = vklopljeno obdobje # nastavite najmanjši obratovalni cikel, če je vklopljeno <.09: vklopljeno =.09 drugače: vklopljeno = vklopljeno # PWM na zatiču ventilatorja, če na == obdobje: fanshim.set_fan (True) spanje (on) else: fanshim.set_fan (True) s leep (vklopljeno) fanshim.set_fan (False) spanje (izklopljeno)

3. korak: Zaženite kontrolni skript ob zagonu

Zaženi kontrolni skript ob zagonu
Zaženi kontrolni skript ob zagonu

Ta skript lahko zaženete vsakič, ko zaženete pi, ali pa ga samodejno sprožite pri ponovnem zagonu. To je zelo preprosto narediti s crontabom.

  1. odprite terminal
  2. v terminal vnesite crontab-e
  3. dodajte naslednjo vrstico kode v datoteko '@reboot python /home/pi/bootScripts/fanControl.py &'
  4. izhod in ponovni zagon

Skript (fanControl.py) sem dal v floder, imenovan bootScripts, vendar ga lahko postavite kamor koli, samo pazite, da v crontab navedete pravilno pot.

Končano! Zdaj bo vaš ventilator nadzoroval temperaturo vašega CPU -ja na določeno vrednost, hkrati pa zmanjšal zvočni hrup, ki ga proizvaja.

Priporočena: