Sadržaj:
- Pribor
- Korak 1: Postavite ventilator
- Korak 2: Izradite PI (D) kontroler
- Korak 3: Pokrenite Control Script pri pokretanju
Video: Precizna kontrola temperature na malini Pi u koracima 4: 3
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Pimoroni Fan Shim izvrsno je rješenje za smanjenje temperature vašeg Pi -a dok je vruć. Proizvođači čak nude softver koji pokreće ventilator kada temperatura procesora poraste iznad određenog praga (npr. 65 stupnjeva). Temperatura se brzo smanjuje ispod donjeg praga i isključuje ventilator. To je sjajno, ali uzrokuje porast i pad temperature pod umjerenim opterećenjima te stvara zvuk ventilatora. Ovo uputstvo će smanjiti buku ventilatora dok fiksira temperaturu procesora na određenu vrijednost pomoću nečega što se naziva PID kontroler. Viši pragovi (npr. 65 stupnjeva) rezultirat će mnogo tišim ventilatorom, dok će niži pragovi (npr. 50 stupnjeva) rezultirati jačim ventilatorom, ali boljom kontrolom temperature.
Gornji primjer prikazuje moje rezultate pokretanja PID kontrolera i promjene ciljne temperature svakih 500 sekundi. Točnost je +/- 1 stupanj s nekim prekoračenjem pri naglim promjenama temperature.
Ono što je važno, ovaj je test izveden pod istim opterećenjem za ukupno vrijeme testiranja (gledajući BBC iPlayer).
Pribor
- Malina Pi 4
- Pimoroni Fan Shim
Korak 1: Postavite ventilator
Prvi korak je postavljanje ventilatora. Pimorinijev vodič je odličan!
Zatim otvorite terminal na svom Pi (ctrl alt t)
I instalirajte kôd koji pruža Pimoroni
git clone https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh
Korak 2: Izradite PI (D) kontroler
Kontroler proporcionalne integralne izvedenice (PID) sustav je koji se koristi za kontrolu vrijednosti određenog procesa (temperatura CPU -a) manipuliranjem nekim fizičkim uređajem (brzina ventilatora). 'Brzinom' i bukom ventilatora možemo manipulirati povremenim uključivanjem i isključivanjem (Pulse Wave Modulation). Koliko dugo je uključeno u određenom razdoblju (npr. 1 sekunda) određuje koliko je ventilator brz i glasan (900 ms = glasno i brzo, 100 ms = tiho i sporo). PID -om ćemo upravljati brzinom ventilatora i tako kontrolirati temperaturu.
Korištenje PID -a možemo podijeliti u nekoliko koraka.
- Odlučite se o vrijednosti varijable procesa koju želite postići (npr. Temperatura procesora = 55). To se naziva vaša zadana vrijednost.
- Izračunajte PID pogrešku. Ako je vaša zadana vrijednost 55 stupnjeva, a stvarna temperatura 60 stupnjeva, vaša pogreška je 5 stupnjeva (temperatura - zadana vrijednost)
- Promijenite vrijeme uključivanja ventilatora proporcionalno pogrešci (velike pogreške rezultiraju velikim promjenama u brzini ventilatora, male pogreške uzrokuju male promjene u brzini ventilatora).
- Prilagodite ventilator u proprtionu na prethodne vrijednosti (Integralno/zbroj svih prethodnih pogrešaka)
- Po želji možete podesiti brzinu ventilatora na temelju brzine promjene pogreške (izvedenica), ali to ovdje nećemo učiniti
Sada kada imate teoriju, pokrenite donji kod u Thonny IDE -u (ili nekom drugom Python IDE -u). Promijenite vrijednost 'target' u donjem kodu da biste promijenili temperaturu na kojoj želite održavati svoj Pi. Postavio sam izraze 'P' i 'I' na donekle proizvoljne vrijednosti. Slobodno ih prilagodite ako vam ne odgovaraju. povećavajući "P" znači da će kontroler brzo reagirati na nove pogreške (ali možda neće biti stabilan). Promjena 'I' će uzrokovati da kontroler ponderira njegov odgovor više na prošle vrijednosti. Ne bih pokušao učiniti ove izraze prevelikima jer brzo mijenjanje brzine ventilatora neće brzo promijeniti temperaturu. Također, ako radite nevjerojatno težak posao na svom Pi, možda nećete postići željenu radnu temperaturu (ograničenja ventilatora i dalje vrijede).
from fanshim import FanShim
from time import sleep sleep, time import os import math # Vrati temperaturu CPU -a kao niz znakova def getCPUtemperature (): res = os.popen ('vcgencmd mjera_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," ")) fanshim = FanShim () target = 55 # željena temperatura (igrajte se s ovim i vidite što se događa) period = 1 # PWM period na =.1 # inicijalizirajte na 0 % radni ciklus isključen = period uključen # inicijaliziran na 0% radni ciklus P =.01 # proporcionalni pojačani pojam (igrajte se s ovim i vidite što se događa) intErr = 0 # integralna pogreška I =.0001 # pojam intergralnog pojačanja (igrajte se s ovim i vidjeti što će se dogoditi) dok je True: # get temperaute temp = int (float (getCPUtemperature ())) # izračunajte pogrešku i glatko err = temp-target # izračunajte integraciju lerror i ograničite je intErr = intErr+err ako je intErr> 10: intErr = 10 ako je intErr = razdoblje: uključeno = razdoblje isključeno = 0 drugo: uključeno = uključeno isključeno = razdoblje-uključeno # postavlja minimalni radni ciklus ako je uključeno <.09: uključeno =.09 ostalo: uključeno = uključeno # PWM na pinu ventilatora ako uključeno == točka: fanshim.set_fan (True) spavanje (on) else: fanshim.set_fan (True) s leep (uključeno) fanshim.set_fan (lažno) sleep (isključeno)
Korak 3: Pokrenite Control Script pri pokretanju
Ovu skriptu možete pokrenuti svaki put kada pokrenete svoj pi ili je možete automatski pokrenuti pri ponovnom pokretanju. Ovo je super jednostavno učiniti s crontabom.
- otvorite terminal
- upišite crontab-e u terminal
- dodajte sljedeći redak koda u datoteku '@reboot python /home/pi/bootScripts/fanControl.py &'
- izlaz i ponovno podizanje sustava
Ja sam skriptu (fanControl.py) stavio u floder nazvan bootScripts, ali možete ga staviti bilo gdje, samo provjerite jeste li naveli ispravan put u crontab -u.
Sve gotovo! Sada će vaš ventilator kontrolirati temperaturu vašeg CPU -a na određenu vrijednost, dok će minimizirati zvuk koji proizvodi.
Preporučeni:
Kako napraviti 4G LTE dvostruku biQuade antenu jednostavnim koracima: 3 koraka
Kako učiniti 4G LTE dvostruku biQuade antenu lakim koracima: Većinu vremena s kojim sam se suočio nemam dobru snagu signala za svakodnevne poslove. Tako. Tražim i isprobavam različite vrste antena, ali ne uspijeva. Nakon izgubljenog vremena pronašao sam antenu za koju se nadam da ću je napraviti i testirati jer to nije princip izgradnje
Učinite vanjsko ogledalo u lakim koracima (pomoću LED svjetiljki): 4 koraka
DIY Vanity ogledalo u lakim koracima (pomoću LED svjetla za trake): U ovom sam postu napravio LED ogledalo za samce uz pomoć LED traka. Stvarno je super i morate ih isprobati
Noćno svjetlo kompatibilno s Lego koracima: 3 koraka
Noćno svjetlo kompatibilno s Legom: Ovaj projekt je brzo noćno svjetlo koje koristi Lunchbox Electronics PTH LED kockice za pokazivanje nekih od vaših omiljenih Lego kockica i ne zahtijeva lemljenje! Započnimo
Pi Home, virtualni asistent na malini: 11 koraka (sa slikama)
Pi Home, virtualni pomoćnik s napajanjem na malinama: Google Home korisno je imati oko kuće. To je prekrasan uređaj s ugrađenim Google pomoćnikom-Google-ovim vrhunskim digitalnim osobnim asistentom. Može reproducirati medije, spremati vaše podsjetnike i bilješke, govoriti vam o dužini vašeg putovanja na posao
Precizna peristaltička pumpa: 13 koraka
Precizna peristaltička pumpa: Studentski smo tim iz različitih disciplina Sveučilišta RWTH Aachen i stvorili smo ovaj projekt u kontekstu iGEM natjecanja 2017. Nakon svega što je uloženo u našu pumpu, željeli bismo s vama podijeliti naše rezultate ! Gradili smo