Turinys:
- Prekės
- 1 veiksmas: nustatykite ventiliatorių
- 2 žingsnis: sukurkite PI (D) valdiklį
- 3 veiksmas: paleiskite valdymo scenarijų paleisdami
Video: Tikslus „Raspberry Pi“temperatūros valdymas 4: 3 žingsniais
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
„Pimoroni“ventiliatoriaus tarpiklis yra puikus sprendimas norint sumažinti „Pi“temperatūrą, kai ji įkaista. Gamintojai netgi pateikia programinę įrangą, kuri įjungia ventiliatorių, kai procesoriaus temperatūra pakyla virš tam tikros ribos (pvz., 65 laipsnių). Temperatūra greitai nukrenta žemiau apatinės ribos ir išjungia ventiliatorių. Tai puiku, tačiau temperatūra pakyla ir nukrenta esant vidutinėms apkrovoms ir sukelia girdimą ventiliatoriaus triukšmą. Ši instrukcija sumažins ventiliatoriaus triukšmą, tuo pačiu nustatydama procesoriaus temperatūrą iki tam tikros vertės, vadinama PID valdikliu. Didesni slenksčiai (pvz., 65 laipsniai) sukels daug tylesnį ventiliatorių, o žemesni slenksčiai (pvz., 50 laipsnių) - garsiau, bet geriau valdys temperatūrą.
Aukščiau pateiktas pavyzdys rodo mano rezultatus, paleidžiant PID valdiklį ir keičiant tikslinę temperatūrą kas 500 sekundžių. Tikslumas yra +/- 1 laipsnis, šiek tiek viršijant staigius temperatūros pokyčius.
Svarbu tai, kad šis bandymas buvo atliktas esant vienai apkrovai visą bandymo laiką (žiūrint „BBC iPlayer“).
Prekės
- Raspberry Pi 4
- Pimoroni gerbėjų tarpiklis
1 veiksmas: nustatykite ventiliatorių
Pirmasis žingsnis yra nustatyti ventiliatorių. Pimorini pamoka yra puiki!
Tada atidarykite terminalą savo Pi (ctrl alt t)
Ir įdiekite Pimoroni pateiktą kodą
git klonas https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh
2 žingsnis: sukurkite PI (D) valdiklį
Proporcinio integruoto darinio (PID) valdiklis yra sistema, naudojama tam tikro proceso vertei (procesoriaus temperatūrai) valdyti, manipuliuojant tam tikru fiziniu įrenginiu (ventiliatoriaus greitis). Mes galime manipuliuoti ventiliatoriaus „greičiu“ir triukšmu, periodiškai jį įjungdami ir išjungdami (impulso bangos moduliacija). Nuo to, kiek laiko jis įjungiamas tam tikru laikotarpiu (pvz., 1 sekundė), nustatomas ventiliatoriaus greitis ir garsumas (900 ms = garsus ir greitas, 100 ms = tylus ir lėtas). Mes naudosime PID, kad galėtume valdyti ventiliatoriaus greitį ir taip kontroliuoti temperatūrą.
PID naudojimą galime suskirstyti į kelis veiksmus.
- Nuspręskite norimo pasiekti proceso kintamojo vertę (pvz., Procesoriaus temperatūra = 55). Tai vadinama jūsų nustatytąja verte.
- Apskaičiuokite PID klaidą. Jei jūsų nustatyta vertė yra 55 laipsniai, o faktinė temperatūra yra 60 laipsnių, jūsų klaida yra 5 laipsniai (temperatūra - nustatytoji vertė)
- Pakeiskite ventiliatoriaus veikimo laiką proporcingai klaidai (didelės klaidos lemia didelius ventiliatoriaus greičio pokyčius, mažos klaidos sukelia nedidelius ventiliatoriaus greičio pokyčius).
- Sureguliuokite ventiliatorių pagal ankstesnes vertes (integralas/visų ankstesnių klaidų suma)
- Pasirinktinai galite reguliuoti ventiliatoriaus greitį, atsižvelgdami į klaidos (išvestinės) pasikeitimo greitį, bet mes to nedarysime
Dabar, kai turite teoriją, paleiskite žemiau esantį kodą „Thonny IDE“(ar kitame „python IDE“). Pakeiskite „tikslo“reikšmę žemiau esančiame kode, kad pakeistumėte, kokioje temperatūroje norite išlaikyti „Pi“. Aš nustatiau „P“ir „I“sąlygas savavališkai. Nedvejodami pakoreguokite juos, jei jie jums netinka. padidinus „P“reiškia, kad valdiklis greitai reaguos į naujas klaidas (bet gali būti nestabilus). Pakeitus „I“, valdiklis labiau įvertins atsaką į ankstesnes vertes. Aš nesistengčiau padaryti šių terminų per didelių, nes greitai keičiant ventiliatoriaus greitį, temperatūra greitai nepasikeis. Be to, jei dirbate su savo „Pi“neįtikėtinai sunkiu darbu, galite nepasiekti norimos temperatūros (ventiliatoriaus ribos vis tiek galioja).
iš fanshim importuoja „FanShim“
iš laiko importavimo miego, laiko importavimo os importavimo matematikos # Grąžinti procesoriaus temperatūrą kaip simbolių eilutę def getCPUtemperature (): res = os.popen ('vcgencmd meet_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," ")) fanshim = FanShim () target = 55 # pageidaujama temperatūra (žaisk su tuo ir pažiūrėk, kas atsitiks) periodas = 1 # PWM periodas į.,…. % darbo ciklo išjungimas = laikotarpis-įjungimas # inicializavimas iki 0% darbo ciklo ir pažiūrėkite, kas atsitiks), kol tiesa: # get temperaute temp = int (float (getCPUtemperature ())) # apskaičiuoti klaidą ir lyginti klaidą = temp-target # apskaičiuoti integra lerror ir apriboti ją intErr = intErr+klaida, jei intErr> 10: intErr = 10, jei intErr = laikotarpis: įjungtas = laikotarpis išjungtas = 0 kitaip: įjungtas = įjungtas = laikotarpis-įjungtas # nustatytas minimalus darbo ciklas, jei įjungtas <.09: įjungtas =.09 kitas: įjungtas = įjungtas # PWM ant ventiliatoriaus kaiščio, jei on == period: fanshim.set_fan (True) sleep (on) else: fanshim.set_fan (True) s leep (on) fanshim.set_fan (False) miegoti (išjungta)
3 veiksmas: paleiskite valdymo scenarijų paleisdami
Šį scenarijų galite paleisti kiekvieną kartą, kai paleidžiate „pi“, arba galite automatiškai jį paleisti iš naujo. Tai padaryti su „crontab“yra labai paprasta.
- atidarykite terminalą
- į terminalą įveskite crontab-e
- pridėkite šią kodo eilutę prie failo „@reboot python /home/pi/bootScripts/fanControl.py &“
- išeikite ir paleiskite iš naujo
Įdėjau scenarijų (fanControl.py) į „floder“, vadinamą „bootScripts“, bet galite jį įdėti bet kur, tiesiog įsitikinkite, kad nurodėte teisingą kelią „crontab“.
Viskas padaryta! Dabar jūsų ventiliatorius valdys jūsų procesoriaus temperatūrą iki tam tikros vertės ir sumažins jo skleidžiamą triukšmą.
Rekomenduojamas:
Tikslus ir tikslus „Arduino“voltų matuoklis (0–90 V DC): 3 žingsniai
Tikslus ir tikslus „Arduino“voltų matuoklis (0–90 V DC): Šioje instrukcijoje aš sukūriau voltmetrą, kuris santykinai tiksliai ir tiksliai matuoja aukštą įtampą (0–90 V), naudodamas „Arduino Nano“. Mano atlikti bandomieji matavimai buvo pakankamai tikslūs, daugiausia 0,3 V riboje nuo faktinės įtampos, išmatuotos naudojant
Ryškumo valdymas PWM pagrįstas LED valdymas naudojant mygtukus, „Raspberry Pi“ir „Scratch“: 8 žingsniai (su nuotraukomis)
Ryškumo valdymas PWM pagrįstas LED valdymas naudojant mygtukus, „Raspberry Pi“ir „Scratch“: bandžiau rasti būdą, kaip paaiškinti, kaip PWM veikė mano mokiniams, todėl iškėliau sau užduotį pabandyti valdyti šviesos diodo ryškumą naudojant du mygtukus - vienas mygtukas padidina šviesos diodo ryškumą, o kitas - jį pritemdo. Programa
ESP8266 RGB LED juostelės WIFI valdymas - „NODEMCU“kaip IR nuotolinio valdymo pultas „Led Strip“, valdomas per „Wifi“- RGB LED STRIP išmaniojo telefono valdymas: 4 žingsniai
ESP8266 RGB LED juostelės WIFI valdymas | „NODEMCU“kaip IR nuotolinio valdymo pultas „Led Strip“, valdomas per „Wifi“| „RGB LED STRIP“išmaniojo telefono valdymas: Sveiki vaikinai, šioje pamokoje mes išmoksime naudoti „nodemcu“arba „esp8266“kaip IR nuotolinio valdymo pultą, norint valdyti RGB LED juostą, o „Nodemcu“bus valdomas išmaniuoju telefonu per „Wi -Fi“. Taigi iš esmės galite valdyti RGB LED juostelę savo išmaniuoju telefonu
IOT pagrįstas kambario temperatūros valdymas: 5 žingsniai
IOT pagrįstas kambario temperatūros valdymas: tai galima atlikti naudojant IOT pagrįstą kambario temperatūros valdymo projektą. Savybės: -1. Automatiškai įjunkite ventiliatorių virš nurodytos kambario temperatūros.2. Automatiškai išjunkite ventiliatorių žemiau nurodytos kambario temperatūros.3. Rankinis valdymas bet kuriuo metu
Nuotolinis valdymas 944: 4 žingsniais
Nuotolinis valdymas 944: čia parodysiu, kaip įdiegti „iPod“su „Dock“jungtimi nuotolinio valdymo pultą „Porsche 944“(2-oji karta, ovalioje prietaisų skydelyje. „IPod“prijungtas per FM siųstuvą ir paslėptas (kai automobilis) centre porankyje. Mano žmonai nepatinka visa muzika, kuri man patinka, ty grafas