Sisällysluettelo:

Tarkka lämpötilan säätö Raspberry Pi -laitteella 4: 3 askelta
Tarkka lämpötilan säätö Raspberry Pi -laitteella 4: 3 askelta

Video: Tarkka lämpötilan säätö Raspberry Pi -laitteella 4: 3 askelta

Video: Tarkka lämpötilan säätö Raspberry Pi -laitteella 4: 3 askelta
Video: Замена отопления в новостройке. Подключение. Опрессовка. #17 2024, Marraskuu
Anonim
Tarkka lämpötilan säätö Raspberry Pi 4 -laitteessa
Tarkka lämpötilan säätö Raspberry Pi 4 -laitteessa

Pimoroni Fan Shim on loistava ratkaisu Pi: n lämpötilan alentamiseen kuumana. Valmistajat tarjoavat jopa ohjelmiston, joka käynnistää tuulettimen, kun suorittimen lämpötila nousee tietyn kynnyksen (esim. 65 astetta) yli. Lämpötila laskee nopeasti alemman kynnyksen alle ja sammuttaa tuulettimen. Tämä on hienoa, mutta aiheuttaa lämpötilan nousun ja laskun kohtuullisilla kuormituksilla ja aiheuttaa tuulettimen ääntä. Tämä ohje vähentää puhaltimen kohinaa ja samalla säätää suorittimen lämpötilan tiettyyn arvoon PID -säätimen avulla. Korkeammat kynnysarvot (esim. 65 astetta) johtavat paljon hiljaisempaan tuulettimeen ja alemmat kynnykset (esim. 50 astetta) tuulettimen äänenvoimakkuuteen, mutta parempaan lämpötilan säätöön.

Yllä oleva esimerkki näyttää tulokseni PID -säätimen käyttämisestä ja tavoitelämpötilan muuttamisesta 500 sekunnin välein. Tarkkuus on +/- 1 astetta, ja ylikuumeneminen saattaa aiheuttaa äkillisiä lämpötilan muutoksia.

Tärkeää on, että tämä testi suoritettiin samalla kuormituksella koko testiajan ajan (BBC iPlayerin katseleminen).

Tarvikkeet

  • Raspberry Pi 4
  • Pimoroni Fan Shim

Vaihe 1: Asenna tuuletin

Asenna tuuletin
Asenna tuuletin

Ensimmäinen askel on tuulettimen asentaminen. Pimorinin opetusohjelma on hieno!

Avaa sitten päätelaite Pi -laitteellasi (ctrl alt t)

Ja asenna Pimoronin tarjoama koodi

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

Vaihe 2: Luo PI (D) -ohjain

Luo PI (D) -ohjain
Luo PI (D) -ohjain

Proportional Integral Derivative (PID) -ohjain on järjestelmä, jota käytetään tietyn prosessin arvon (suorittimen lämpötilan) säätämiseen manipuloimalla jotakin fyysistä laitetta (tuulettimen nopeus). Voimme manipuloida tuulettimen "nopeutta" ja kohinaa kytkemällä sen päälle ja pois päältä säännöllisesti (Pulse Wave Modulation). Sen ajan pituus, jonka se on päällä tiettynä ajanjaksona (esim. 1 sekunti), määrittää, kuinka nopea ja voimakas tuuletin on (900 ms = kova ja nopea, 100 ms = hiljainen ja hidas). Käytämme PID: tä puhaltimen nopeuden hallintaan ja siten lämpötilan säätämiseen.

Voimme jakaa PID: n käytön useisiin vaiheisiin.

  1. Päätä saavutettavan prosessimuuttujan arvo (esim. Suorittimen lämpötila = 55). Tätä kutsutaan asetuspisteeksi.
  2. Laske PID -virhe. Jos asetuspisteesi on 55 astetta ja todellinen lämpötila on 60 astetta, virheesi on 5 astetta (lämpötila - asetusarvo)
  3. Muuta puhaltimen käynnistysaikaa suhteessa virheeseen (isot virheet aiheuttavat suuria muutoksia tuulettimen nopeudessa, pienet virheet pieniä muutoksia tuulettimen nopeudessa).
  4. Säädä tuuletin menneisyyteen (Integraali/kaikkien aikaisempien virheiden summa)
  5. Vaihtoehtoisesti voit säätää tuulettimen nopeutta virheen muutosnopeuden perusteella (johdannainen), mutta emme tee sitä täällä

Nyt kun sinulla on teoria, suorita alla oleva koodi Thonny IDE: ssä (tai muussa python IDE: ssä). Muuta alla olevan koodin "tavoite" -arvoa muuttaaksesi lämpötilaa, jossa haluat pitää Pi: si. Olen asettanut P- ja I -termit hieman mielivaltaisille arvoille. Voit vapaasti säätää näitä, jos ne eivät toimi sinulle. P: n suurentaminen tarkoittaa, että ohjain reagoi nopeasti uusiin virheisiin (mutta ei välttämättä ole vakaa). I -arvon muuttaminen saa ohjaimen painottamaan vastaustaan enemmän aiempiin arvoihin. En yrittäisi tehdä näitä termejä liian suuriksi, koska tuulettimen nopeuden nopea muuttaminen ei muuta nopeasti lämpötilaa. Lisäksi, jos teet uskomattoman raskasta työtä Pi: lläsi, et ehkä saavuta haluttua lämpötilaa (tuulettimen rajat ovat edelleen voimassa).

from fanshim import FanShim

ajan tuonnin lepotilasta, ajan tuonti os tuonti matematiikka # Palauta suorittimen lämpötila merkkijonona def getCPUtemperature (): res = os.popen ('vcgencmd meet_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," ")) fanshim = FanShim () tavoite = 55 # haluttu lämpötila (leiki tämän kanssa ja katso mitä tapahtuu) period = 1 # PWM period on =.1 # initialize to 0 % käyttöjakso pois päältä = jaksoittainen # alustaminen 0%: n käyttöjaksoon P =.01 # suhteellinen vahvistusjakso (pelaa tällä ja katso, mitä tapahtuu) ja katso mitä tapahtuu) kun totta: # get temperaute temp = int (float (getCPUtemperature ())) # laske virhe ja suorita err = temp-target # laske integra vika ja rajoita sitä intErr = intErr+err, jos intErr> 10: intErr = 10 jos intErr = jakso: päällä = jakso pois = 0 muu: päällä = päällä pois = jakso päällä # asettaa vähimmäiskäyttöjakson, jos päällä <.09: päällä =.09 muu: päällä = päällä # PWM fanishimin nastassa, jos päällä == jakso: fanshim.set_fan (True) uni (päällä) else: fanshim.set_fan (True) s leep (on) fanshim.set_fan (False) uni (pois)

Vaihe 3: Suorita Control Script käynnistyksen yhteydessä

Suorita Control Script käynnistyksen yhteydessä
Suorita Control Script käynnistyksen yhteydessä

Voit suorittaa tämän komentosarjan joka kerta, kun käynnistät pi, tai voit saada sen käynnistymään automaattisesti uudelleenkäynnistyksen yhteydessä. Tämä on erittäin yksinkertaista tehdä crontabin kanssa.

  1. avaa terminaali
  2. kirjoita päätelaitteeseen crontab-e
  3. lisää seuraava koodirivi tiedostoon '@reboot python /home/pi/bootScripts/fanControl.py &'
  4. poistua ja käynnistää uudelleen

Laitoin komentosarjan (fanControl.py) booderiin nimeltä bootScripts, mutta voit laittaa sen minne tahansa ja varmista, että määrität oikean polun crontabissa.

Valmista! Nyt tuulettimesi säätää suorittimen lämpötilan tiettyyn arvoon ja minimoi sen tuottaman äänen.

Suositeltava: