Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Asenna tuuletin
- Vaihe 2: Luo PI (D) -ohjain
- Vaihe 3: Suorita Control Script käynnistyksen yhteydessä
Video: Tarkka lämpötilan säätö Raspberry Pi -laitteella 4: 3 askelta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
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
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
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.
- Päätä saavutettavan prosessimuuttujan arvo (esim. Suorittimen lämpötila = 55). Tätä kutsutaan asetuspisteeksi.
- Laske PID -virhe. Jos asetuspisteesi on 55 astetta ja todellinen lämpötila on 60 astetta, virheesi on 5 astetta (lämpötila - asetusarvo)
- Muuta puhaltimen käynnistysaikaa suhteessa virheeseen (isot virheet aiheuttavat suuria muutoksia tuulettimen nopeudessa, pienet virheet pieniä muutoksia tuulettimen nopeudessa).
- Säädä tuuletin menneisyyteen (Integraali/kaikkien aikaisempien virheiden summa)
- 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ä
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.
- avaa terminaali
- kirjoita päätelaitteeseen crontab-e
- lisää seuraava koodirivi tiedostoon '@reboot python /home/pi/bootScripts/fanControl.py &'
- 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:
Arduino tarkka ja tarkka voltimittari (0-90V DC): 3 vaihetta
Arduino tarkka ja tarkka volttimittari (0-90 V DC): Tässä ohjeessa olen rakentanut voltimittarin mittaamaan suurjännitteitä DC (0-90v) suhteellisen tarkasti ja tarkasti Arduino Nanon avulla. Otamani testimittaukset olivat riittävän tarkkoja, enimmäkseen 0,3 V: n sisällä todellisesta jännitteestä, joka mitattiin
ESP8266 Nodemcu -lämpötilan valvonta DHT11: n avulla paikallisessa verkkopalvelimessa - Saat huoneen lämpötilan ja kosteuden selaimeesi: 6 vaihetta
ESP8266 Nodemcu -lämpötilan valvonta DHT11: n avulla paikallisessa verkkopalvelimessa | Saat huoneen lämpötilan ja kosteuden selaimeesi: Hei kaverit tänään, teemme kosteutta & lämpötilan valvontajärjestelmä ESP 8266 NODEMCU & DHT11 lämpötila -anturi. Lämpötila ja kosteus saadaan DHT11 Sensor & selaimesta näkyy, mitä verkkosivua hallitaan
Lämpötilan säätö Arduino- ja PWM -tuulettimilla: 6 vaihetta (kuvilla)
Lämpötilan säätö Arduino- ja PWM -tuulettimilla: Lämpötilan säätö PID: llä Arduino- ja PWM -tuulettimilla DIY -palvelin-/verkkotelinejäähdytykseen Muutama viikko sitten minun oli asennettava teline verkkolaitteilla ja muutamilla palvelimilla. joten lämpötila vaihtelee talven ja
Pakastimen tai jääkaapin lämpötilan säätö: 7 vaihetta
Pakastimen tai jääkaapin lämpötilan säätö: Tämä ohje kattaa Johnson Controlsin lämpötilansäätimen integroinnin jatkojohtoon, jossa on kytkin ja pistorasia pakastimen ohjaamiseksi. Oluen käymiseen rintapakastin on upea alusta, mutta tehdas jatkaa
Tehokas, pitkän kantaman, erittäin tarkka kynäkeula !!!: 6 askelta
Tehokas, pitkän kantaman, erittäin tarkka kynäkeula !!!: Tämä on yksi niistä kuuluisista kynäjousista !!! =) Nauti! P.S. nämä asiat ovat tavallaan voimakkaita, älä kohdista ketään. Mukaan lukien ihmiset ja eläimet. Tämä on ensimmäinen Instructable -vetoomukseni