Sadržaj:
- Supplies
- Korak 1: Postavite ventilator
- Korak 2: Kreirajte PI (D) kontroler
- Korak 3: Pokrenite kontrolnu skriptu pri pokretanju
Video: Precizna kontrola temperature na malini Pi u koracima 4: 3
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Pimoroni Fan Shim odlično je rješenje za smanjenje temperature vašeg Pi -a kada je vruć. Proizvođači čak nude softver koji pokreće ventilator kada temperatura procesora poraste iznad određenog praga (npr. 65 stepeni). Temperatura se brzo smanjuje ispod donjeg praga i isključuje ventilator. To je sjajno, ali uzrokuje porast i pad temperature pri umjerenim opterećenjima i stvara zvuk ventilatora. Ovo uputstvo će smanjiti buku ventilatora dok fiksira temperaturu procesora na određenu vrijednost koristeći nešto što se naziva PID kontroler. Viši pragovi (npr. 65 stepeni) 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. Tačnost je +/- 1 stepen sa nekim prekoračenjem pri naglim promjenama temperature.
Ono što je važno, ovaj test je izveden pod istim opterećenjem za ukupno vrijeme testiranja (gledajući BBC iPlayer).
Supplies
- Raspberry 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: Kreirajte PI (D) kontroler
Kontroler proporcionalne integralne izvedbe (PID) je sistem koji se koristi za kontrolu vrijednosti određenog procesa (temperatura procesora) manipulacijom nekim fizičkim uređajem (brzina ventilatora). "Brzinom" i bukom ventilatora možemo manipulirati povremenim uključivanjem i isključivanjem (Pulse Wave Modulation). Dužina vremena koje je uključen u datom periodu (npr. 1 sekunda) određuje koliko je brz i glasan ventilator (900ms = glasno i brzo, 100ms = tiho i sporo). PID -om ćemo upravljati brzinom ventilatora i na taj način kontrolirati temperaturu.
Upotrebu 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 grešku. Ako je vaša zadana vrijednost 55 stupnjeva, a stvarna temperatura 60 stupnjeva, vaša greška je 5 stupnjeva (temperatura - zadana vrijednost)
- Promijenite vrijeme uključivanja ventilatora proporcionalno grešci (velike greške rezultiraju velikim promjenama brzine ventilatora, male greške uzrokuju male promjene brzine ventilatora).
- Podesite ventilator u proprtionu na prethodne vrijednosti (Integralno/zbir svih prethodnih grešaka)
- Opcionalno, možete podesiti brzinu ventilatora na osnovu brzine promjene greš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 termine '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 greš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 -u, 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 () cilj = 55 # željena temperatura (igrajte se s ovim i vidite što se događa) period = 1 # period PWM na =.1 # inicijalizira se 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 greška I =.0001 # međugranski pojačani pojačanje (igrajte se s ovim i pogledajte što se događa) dok je True: # get temperaute temp = int (float (getCPUtemperature ())) # izračunajte greš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 = period: uključen = period isključen = 0 ostalo: uključen = uključen isključen = period-uključen # postavljen minimalni radni ciklus ako je uključen <.09: uključen =.09 inače: uključen = uključen # PWM na pinu ventilatora ako na == period: fanshim.set_fan (True) spavanje (on) else: fanshim.set_fan (True) s leep (uključeno) fanshim.set_fan (lažno) spavanje (isključeno)
Korak 3: Pokrenite kontrolnu skriptu 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ću liniju koda u datoteku '@reboot python /home/pi/bootScripts/fanControl.py &'
- izađite i ponovo pokrenite sistem
Stavio sam skriptu (fanControl.py) u floder nazvan bootScripts, ali možete je staviti bilo gdje, samo provjerite jeste li naveli ispravnu putanju u crontab -u.
Sve završeno! Sada će vaš ventilator kontrolirati temperaturu vašeg CPU -a na određenu vrijednost, dok će minimizirati zvuk koji proizvodi.
Preporučuje se:
Učinite vanjsko ogledalo u lakim koracima (pomoću LED svjetiljki): 4 koraka
DIY Vanity ogledalo u lakim koracima (koristeći LED svjetla za trake): U ovom postu sam napravio DIY Vanity ogledalo uz pomoć LED traka. Zaista je super i morate ih isprobati
Noćno svjetlo kompatibilno s Lego koracima: 3 koraka
Noćno svjetlo kompatibilno s Lego -om: 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! Hajde da počnemo
Pi Home, virtualni pomoćnik s napajanjem na malini: 11 koraka (sa slikama)
Pi Home, virtualni asistent na malini: Google Home je korisno imati oko kuće. To je prekrasan uređaj s ugrađenim Google pomoćnikom-Google-ovim vrhunskim digitalnim ličnim 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 Univerziteta RWTH u Aachenu i kreirali smo ovaj projekt u kontekstu iGEM takmičenja 2017. Nakon svega što je uloženo u našu pumpu, željeli bismo podijeliti naše rezultate s vama ! Gradili smo
Jeftina i precizna alternativa za fleksibilne senzorske rukavice: 8 koraka (sa slikama)
Jeftina i precizna alternativa za fleksibilne senzorske rukavice: Pozdrav svima, ovo je moje prvo uputstvo i u ovom uputstvu ću vas naučiti da napravite jeftinu i preciznu fleks senzorsku rukavicu. Koristio sam mnogo alternativa flex senzoru, ali nijedna mi nije uspjela. Pa sam proguglao i našao novu