Cuprins:

Control precis al temperaturii pe Raspberry Pi 4: 3 Pași
Control precis al temperaturii pe Raspberry Pi 4: 3 Pași

Video: Control precis al temperaturii pe Raspberry Pi 4: 3 Pași

Video: Control precis al temperaturii pe Raspberry Pi 4: 3 Pași
Video: Heating controlled by Raspberry Pi 2024, Noiembrie
Anonim
Control precis al temperaturii pe Raspberry Pi 4
Control precis al temperaturii pe Raspberry Pi 4

Pimoroni Fan Shim este o soluție excelentă pentru reducerea temperaturii Pi-ului dvs. atunci când este fierbinte. Producătorii oferă chiar și software care declanșează ventilatorul atunci când temperatura procesorului crește peste un anumit prag (de ex. 65 de grade). Temperatura se reduce rapid sub un prag inferior și oprește ventilatorul. Acest lucru este minunat, dar determină creșterea și scăderea temperaturii sub sarcini moderate și creează zgomot audibil al ventilatorului. Această instrucțiune va reduce zgomotul ventilatorului în timp ce fixează temperatura procesorului la o anumită valoare utilizând ceva numit controler PID. Praguri mai mari (de exemplu, 65 de grade) vor avea ca rezultat un ventilator mult mai silențios, în timp ce praguri mai mici (de exemplu, 50 de grade) vor avea ca rezultat un ventilator mai puternic, dar un control mai bun al temperaturii.

Exemplul de mai sus arată rezultatele mele de la rularea controlerului PID și schimbarea temperaturii țintă la fiecare 500 de secunde. Precizia este de +/- 1 grad, cu unele depășiri la modificările bruște ale temperaturii.

Important, acest test a fost efectuat sub aceeași sarcină pentru timpul total de testare (vizionarea BBC iPlayer).

Provizii

  • Raspberry Pi 4
  • Pimoroni Fan Shim

Pasul 1: configurați-vă ventilatorul

Configurați-vă ventilatorul
Configurați-vă ventilatorul

Primul pas este să vă configurați ventilatorul. Tutorialul Pimorini este minunat!

Apoi deschideți terminalul de pe Pi (ctrl alt t)

Și instalați codul furnizat de Pimoroni

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

Pasul 2: Creați un controler PI (D)

Creați un controler PI (D)
Creați un controler PI (D)

Un controlor proporțional integrat derivat (PID) este un sistem utilizat pentru a controla valoarea unui anumit proces (temperatura procesorului) prin manipularea unui dispozitiv fizic (viteza ventilatorului). Putem manipula „viteza” și zgomotul ventilatorului pornindu-l și oprindu-l periodic (Modulație de undă a impulsurilor). Durata de timp pentru care este activată într-o anumită perioadă (de exemplu, 1 secundă) determină cât de rapid și cât de tare este ventilatorul (900 ms = puternic și rapid, 100 ms = liniștit și lent). Vom folosi PID pentru a manipula viteza ventilatorului și astfel vom controla temperatura.

Putem împărți utilizarea unui PID în mai mulți pași.

  1. Decideți valoarea variabilei de proces pe care doriți să o atingeți (de exemplu, temperatura CPU = 55). Acesta se numește punctul dvs. de referință.
  2. Calculați eroarea PID. Dacă valoarea de referință este de 55 de grade și temperatura reală este de 60 de grade, eroarea dvs. este de 5 grade (Temperatura - valoarea de referință)
  3. Schimbați timpul de pornire al ventilatorului proporțional cu eroarea (erorile mari duc la modificări mari ale vitezei ventilatorului, erorile mici determină modificări mici ale vitezei ventilatorului).
  4. Reglați ventilatorul în funcție de valorile anterioare (Integral / suma tuturor erorilor anterioare)
  5. Opțional, reglați viteza ventilatorului în funcție de rata de schimbare a erorii (derivată), dar nu vom face asta aici

Acum că aveți teoria, rulați codul de mai jos în ID-ul Thonny (sau în alt IDE Python). Schimbați valoarea „țintă” din codul de mai jos pentru a schimba la ce temperatură doriți să vă mențineți Pi. Am setat termenii „P” și „I” la valori oarecum arbitrare. Simțiți-vă liber să le ajustați dacă nu funcționează pentru dvs. mărirea „P” înseamnă că controlerul va răspunde rapid la noile erori (dar poate să nu fie stabil). Schimbarea „I” va determina controlerul să cântărească răspunsul său mai mult la valorile anterioare. Nu aș încerca să fac acești termeni prea mari, deoarece schimbarea rapidă a vitezei ventilatorului nu va schimba rapid temperatura. De asemenea, dacă faceți o muncă incredibil de grea pe Pi, este posibil să nu atingeți temperatura dorită (limitele ventilatorului se aplică în continuare).

de la fanshim import FanShim

din timp import somn, import timp os import math # Returnează temperatura CPU ca șir de caractere def getCPUtemperature (): res = os.popen ('vcgencmd measure_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," ")) fanshim = FanShim () target = 55 # temperatura dorită (joacă cu asta și vezi ce se întâmplă) period = 1 # PWM period on =.1 # initialize to 0 % ciclu de funcționare oprit = perioadă de pornire # inițializare la 0% ciclu de funcționare P =.01 # proporțional Termen de câștig (joacă cu asta și vezi ce se întâmplă) intErr = 0 # eroare integrală I =.0001 # termen de câștig intergral (joacă cu acesta și vezi ce se întâmplă) în timp ce este adevărat: # get temperaute temp = int (float (getCPUtemperature ())) # calculate error and smooth err = temp-target # compute integra lerror and constrain it intErr = intErr + err if intErr> 10: intErr = 10 if intErr = period: on = period off = 0 else: on = on off = period-on # set ciclu minim de funcționare if on <.09: on =.09 else: on = on # PWM on the fanshim pin if pe == perioadă: fanshim.set_fan (True) sleep (on) else: fanshim.set_fan (True) s leep (on) fanshim.set_fan (False) sleep (off)

Pasul 3: Rulați Scriptul de control la pornire

Rulați Scriptul de control la pornire
Rulați Scriptul de control la pornire

Puteți rula acest script de fiecare dată când porniți pi-ul sau îl puteți declanșa automat la repornire. Acest lucru este foarte simplu de făcut cu crontab.

  1. deschide terminalul
  2. tastați crontab-e în terminal
  3. adăugați următoarea linie de cod în fișierul „@reboot python /home/pi/bootScripts/fanControl.py &”
  4. ieșiți și reporniți

Am pus scriptul (fanControl.py) într-un floder numit bootScripts, dar l-ați putea pune oriunde, asigurați-vă că specificați calea corectă în crontab.

Totul este gata! Acum ventilatorul dvs. va controla temperatura procesorului dvs. la o anumită valoare, reducând în același timp zgomotul sonor pe care îl produce.

Recomandat: