Sisukord:
- Tarvikud
- Samm: seadistage ventilaator
- 2. samm: looge PI (D) kontroller
- Samm: käivitage käivitamisel juhtskript
Video: Täpne temperatuuri reguleerimine Raspberry Pi -l 4: 3 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Pimoroni ventilaatorikate on suurepärane lahendus teie Pi temperatuuri vähendamiseks kuumalt töötades. Tootjad pakuvad isegi tarkvara, mis käivitab ventilaatori, kui protsessori temperatuur tõuseb üle teatud läve (nt 65 kraadi). Temperatuur langeb kiiresti alla alamläve ja lülitab ventilaatori välja. See on suurepärane, kuid põhjustab temperatuuri tõusu ja langust mõõdukate koormuste korral ning tekitab kuuldava ventilaatori müra. See juhend vähendab ventilaatori müra, määrates samal ajal CPU temperatuuri kindlale väärtusele, kasutades nn PID -kontrollerit. Kõrgemad künnised (nt 65 kraadi) muudavad ventilaatori palju vaiksemaks, madalamad (nt 50 kraadi) aga tugevamaks, kuid paremaks temperatuuri reguleerimiseks.
Ülaltoodud näide näitab minu tulemusi PID -regulaatori käivitamisel ja sihttemperatuuri muutmisel iga 500 sekundi järel. Täpsus on +/- 1 kraad koos mõningase ületamisega äkilistel temperatuurimuutustel.
Oluline on see, et see test viidi läbi kogu koormuse ajal sama koormuse all (vaadates BBC iPlayerit).
Tarvikud
- Vaarika Pi 4
- Pimoroni fänn Shim
Samm: seadistage ventilaator
Esimene samm on ventilaatori seadistamine. Pimorini õpetus on suurepärane!
Seejärel avage oma Pi terminal (ctrl alt t)
Ja installige Pimoroni pakutud kood
git kloon https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh
2. samm: looge PI (D) kontroller
Proportsionaalse integreeritud tuletise (PID) kontroller on süsteem, mida kasutatakse teatud protsessi väärtuse (protsessori temperatuuri) kontrollimiseks, manipuleerides mõne füüsilise seadmega (ventilaatori kiirus). Me saame manipuleerida ventilaatori kiiruse ja müraga, lülitades selle perioodiliselt sisse ja välja (Pulse Wave Modulation). Ajavahemik, mille jooksul see teatud aja jooksul sisse lülitatakse (nt 1 sekund), määrab ventilaatori kiiruse ja valju (900 ms = vali ja kiire, 100 ms = vaikne ja aeglane). Kasutame PID -d ventilaatori kiiruse muutmiseks ja seega temperatuuri reguleerimiseks.
PID kasutamise saame jagada mitmeks sammuks.
- Otsustage selle protsessimuutuja väärtus, mida soovite saavutada (nt protsessori temperatuur = 55). Seda nimetatakse teie seadeväärtuseks.
- Arvutage PID -viga. Kui teie seadepunkt on 55 kraadi ja tegelik temperatuur on 60 kraadi, on teie viga 5 kraadi (temperatuur - seadepunkt)
- Muutke ventilaatori tööaega proportsionaalselt veaga (suured vead põhjustavad suuri muutusi ventilaatori kiiruses, väikesed vead põhjustavad väikeseid muutusi ventilaatori kiiruses).
- Ventilaatori kohandamine eelmiste väärtustega (integraal/kõigi eelmiste vigade summa)
- Soovi korral reguleerite ventilaatori kiirust vea (tuletis) muutumiskiiruse alusel, kuid me ei tee seda siin
Nüüd, kui teil on teooria, käivitage Thonny IDE -s (või mõnes muus pythoni IDE -s) allolev kood. Muutke allolevas koodis sihtmärgi väärtust, et muuta, millisel temperatuuril soovite oma Pi säilitada. Olen määranud terminid „P” ja „I” mõnevõrra suvalistele väärtustele. Muutke neid julgelt, kui need teie jaoks ei tööta. P -i suurendamine tähendab, et kontroller reageerib kiiresti uutele vigadele (kuid ei pruugi olla stabiilne). "I" muutmine paneb kontrolleri oma vastust varasematele väärtustele rohkem kaaluma. Ma ei üritaks neid termineid liiga suureks muuta, kuna ventilaatori kiiruse kiire muutmine ei muuda kiiresti temperatuuri. Samuti, kui teete oma Pi -ga uskumatult rasket tööd, ei pruugi te soovitud temperatuuri saavutada (ventilaatori piirid kehtivad endiselt).
from fanshim import FanShim
ajast importimise unerežiim, aja import os import matemaatika # Tagastab CPU temperatuuri märgistringina def getCPUtemperature (): res = os.popen ('vcgencmd meet_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," ")) fanshim = FanShim () target = 55 # soovitud temperatuur (mängi sellega ja vaata, mis juhtub) periood = 1 # PWM periood on =.1 # initsialiseeri 0 % töötsükkel välja = periood-on # initsialiseerimine 0-protsendiliseks töötsükliks P =.01 # proportsionaalne võimendustermin (mängige sellega ja vaadake, mis juhtub) intErr = 0 # integraalviga I =.0001 # intergral gain term (mängige sellega ja vaadake, mis juhtub) kuigi tõsi: # get temperaute temp = int (float (getCPUtemperature ())) # arvutage viga ja sujuge viga = temp-target # arvutage integra lerror ja piirake seda intErr = intErr+viga, kui intErr> 10: intErr = 10, kui intErr = periood: sees = periood väljas = 0 muud: sisse = sisse lülitatud = periood-sisse # määrab minimaalse töötsükli, kui on sisse lülitatud <.09: sisse =.09 muu: sisse lülitatud on == periood: fanshim.set_fan (True) uni (on) else: fanshim.set_fan (True) s leep (on) fanshim.set_fan (False) uni (väljas)
Samm: käivitage käivitamisel juhtskript
Saate seda skripti käivitada iga kord, kui käivitate oma pi või võite lasta selle automaatselt taaskäivitamisel käivitada. Crontabiga on seda ülilihtne teha.
- avage terminal
- tippige terminali crontab-e
- lisage failile järgmine koodirida '@reboot python /home/pi/bootScripts/fanControl.py &'
- väljuge ja taaskäivitage
Panin skripti (fanControl.py) floderisse nimega bootScripts, kuid võite selle ükskõik kuhu panna, veenduge, et määrate crontabis õige tee.
Kõik tehtud! Nüüd reguleerib teie ventilaator teie protsessori temperatuuri kindlale väärtusele, minimeerides samal ajal selle tekitatavat kuuldavat müra.
Soovitan:
Waveshare'i e-tindi ekraan Täpne voltmeeter (0-90v DC) Arduino Nanoga: 3 sammu
Waveshare'i e-tindi ekraan Täpne voltmeeter (0-90v DC) Arduino Nanoga: selles juhendis kasutan 2,9-tollist Waveshare'i e-paberi ekraani koos Arduino Nano, pingejaguri ja ADS1115-ga, et kuvada täpseid pingeid kuni 90 volti alalisvoolu E-paberi ekraanil. See juhendab ühendab need kaks eelmist projekti:- Ardui
Arduino täpne ja täpne voltmeeter (0-90V DC): 3 sammu
Arduino täpne ja täpne voltmõõtur (0–90 V alalisvool): selles juhendis olen ehitanud voltmeetri, mis mõõdab Arduino Nano abil suhteliselt täpselt ja täpselt kõrgepingeid (0–90 v). Minu tehtud katsemõõtmised olid piisavalt täpsed, enamasti 0,3 V piires tegelikust pingest, mida mõõdeti
Heleduse reguleerimine PWM -põhine LED -juhtimine nuppude, Raspberry Pi ja Scratch abil: 8 sammu (piltidega)
Heleduse reguleerimine PWM -põhine LED -juhtimine nuppude, Raspberry Pi ja Scratchi abil: Püüdsin leida viisi, kuidas selgitada PWM -i toimimist oma õpilastele, seega seadsin endale ülesandeks proovida kahe nupuvajutusega LED -i heledust juhtida - üks nupp suurendab LED -i heledust ja teine summutab seda. Programmeerimiseks
Temperatuuri reguleerimine Arduino ja PWM ventilaatoritega: 6 sammu (piltidega)
Temperatuuri reguleerimine Arduino ja PWM ventilaatoritega: temperatuuri reguleerimine PID -ga Arduino ja PWM ventilaatoritel DIY serveri/võrguraami jahutamiseks Mõni nädal tagasi oli mul vaja seadistada rack võrguseadmete ja mõne serveriga. Riiul asetatakse suletud garaaži, seega temperatuurivahemik talve ja
Külmiku või külmiku temperatuuri reguleerimine: 7 sammu
Temperatuuri reguleerimine sügavkülmikus või külmikus: see juhend hõlmab Johnson Controlsi temperatuuri reguleerimise integreerimist pikendusjuhtmesse koos lüliti ja pistikupesaga sügavkülmiku juhtimiseks. Õlle kääritamiseks on rinnus sügavkülmik fantastiline platvorm, kuid tehases on