Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Sett opp viften din
- Trinn 2: Lag en PI (D) -kontroller
- Trinn 3: Kjør kontrollskript ved oppstart
Video: Presis temperaturkontroll på Raspberry Pi 4: 3 -trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Pimoroni Fan Shim er en flott løsning for å redusere temperaturen på Pi når den går varm. Produsentene tilbyr til og med programvare som utløser viften når CPU -temperaturen stiger over en viss terskel (f.eks. 65 grader). Temperaturen reduseres raskt under en lavere terskel og slår av viften. Dette er flott, men får temperaturen til å stige og falle under moderate belastninger og skaper hørbar viftestøy. Denne instruksen vil redusere støyen fra viften mens du fikser CPU -temperaturen til en bestemt verdi ved å bruke noe som kalles en PID -kontroller. Høyere terskler (f.eks. 65 grader) vil resultere i en mye roligere vifte mens lavere terskler (f.eks. 50 grader) vil resultere i en høyere vifte, men bedre temperaturkontroll.
Eksemplet ovenfor viser resultatene mine fra å kjøre PID -kontrolleren og endre måltermperaturen hvert 500 sekund. Nøyaktigheten er +/- 1 grad med noe overskridelse av plutselige endringer i terminsperioden.
Viktigere var at denne testen ble utført under samme belastning for den totale testtiden (se BBC iPlayer).
Rekvisita
- Bringebær Pi 4
- Pimoroni Fan Shim
Trinn 1: Sett opp viften din
Det første trinnet er å sette opp viften din. Pimorini -opplæringen er flott!
Åpne deretter terminalen på Pi (ctrl alt t)
Og installer koden levert av Pimoroni
git-klon https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh
Trinn 2: Lag en PI (D) -kontroller
En Proportional Integral Derivative (PID) kontroller er et system som brukes til å kontrollere verdien av en bestemt prosess (CPU -temperatur) ved å manipulere en fysisk enhet (viftehastighet). Vi kan manipulere "hastigheten" og støyen fra viften ved å slå den på og av med jevne mellomrom (Pulse Wave Modulation). Lengden den er på i en gitt periode (f.eks. 1 sekund) bestemmer hvor raskt og hvor høyt viften er (900 ms = høyt og raskt, 100 ms = stille og sakte). Vi vil bruke PID til å manipulere viftehastigheten og dermed kontrollere temperaturen.
Vi kan dele bruken av en PID i flere trinn.
- Bestem verdien av prosessvariabelen du vil oppnå (f.eks. CPU -temperatur = 55). Dette kalles settpunktet ditt.
- Beregn PID -feilen. Hvis settpunktet ditt er 55 grader og den faktiske temperaturen er 60 grader, er feilen din 5 grader (Temperatur - settpunkt)
- Endre viftens tid i forhold til feilen (Store feil resulterer i store endringer i viftehastigheten, små feil forårsaker små endringer i viftehastigheten).
- Juster viften i proportion til tidligere verdier (integrert/sum av alle tidligere feil)
- Du kan eventuelt justere viftehastigheten basert på endringshastigheten til feilen (derivat), men vi vil ikke gjøre det her
Nå som du har teorien kjørt koden nedenfor i Thonny IDE (eller en annen python IDE). Endre verdien av 'mål' i koden nedenfor for å endre hvilken terperatur du vil beholde din Pi på. Jeg har satt termene 'P' og 'I' til noe vilkårlige verdier. Juster gjerne disse hvis de ikke fungerer for deg. å gjøre 'P' større betyr at kontrolleren vil svare raskt på nye feil (men er kanskje ikke stabil). Hvis du endrer "I", vil kontrolleren veie sin respons mer på tidligere verdier. Jeg ville ikke prøve å gjøre disse begrepene for store, ettersom hurtigjustering av viftehastigheten ikke raskt vil endre løpetiden. Også, hvis du gjør utrolig tungt arbeid på Pi -en din, kan det hende du ikke oppnår ønsket periode (viftens grenser gjelder fortsatt).
fra fanshim import FanShim
fra tid import søvn, tid import os import matematikk # Returner CPU -temperaturen som en tegnstreng def getCPUtemperature (): res = os.popen ('vcgencmd measure_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," ")) fanshim = FanShim () target = 55 # ønsket temperatur (lek med dette og se hva som skjer) periode = 1 # PWM periode på =.1 # initialiser til 0 % duty cycle off = period-on # initialize to 0% duty cycle P =.01 # proporsjonal Gain term (lek med dette og se hva som skjer) intErr = 0 # integral error I =.0001 # intergral gain term (lek med dette og se hva som skjer) mens True: # få temperaute temp = int (float (getCPUtemperature ())) # beregne feil og jevne err = temp-target # beregne integra lerror og begrense det intErr = intErr+err if intErr> 10: intErr = 10 hvis intErr = periode: på = periode av = 0 annet: på = på av = periode på # sett minimum driftssyklus hvis på <.09: på =.09 annet: på = på # PWM på fanshim-pinnen hvis on == periode: fanshim.set_fan (True) sleep (on) else: fanshim.set_fan (True) s leep (on) fanshim.set_fan (False) sleep (av)
Trinn 3: Kjør kontrollskript ved oppstart
Du kan kjøre dette skriptet hver gang du starter pi, eller du kan få det til å utløse automatisk ved omstart. Dette er superenkelt å gjøre med crontab.
- åpne terminalen
- skriv crontab-e inn i terminalen
- legg til følgende kodelinje i filen '@reboot python /home/pi/bootScripts/fanControl.py &'
- avslutt og start på nytt
Jeg la skriptet (fanControl.py) i en floder kalt bootScripts, men du kan sette det hvor som helst, bare pass på at du angir riktig bane i crontab.
Ferdig! Nå vil viften din regulere temperaturen på CPU -en til en bestemt verdi, samtidig som den minimerer den hørbare støyen den produserer.
Anbefalt:
Vanntett Raspberry Pi Powered Wifi DSLR Webcam for Time Laps: 3 Steps (with Pictures)
Vanntett Raspberry Pi Powered Wifi DSLR Webcam for Time Lapses: Jeg er en suger for å se solnedganger hjemmefra. Så mye at jeg får litt FOMO når det er en god solnedgang og jeg ikke er hjemme for å se det. IP -webkameraer ga skuffende bildekvalitet. Jeg begynte å se på måter å gjenbruke min første DSLR: en 2007 Cano
Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Python Tutorial: 4 Steps
Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Python Tutorial: MPL3115A2 bruker en MEMS -trykksensor med et I2C -grensesnitt for å gi nøyaktige trykk-/høyde- og temperaturdata. Sensorutgangene digitaliseres med en høyoppløselig 24-biters ADC. Intern behandling fjerner kompensasjonsoppgaver fra
RASPBERRY PI Pi OBJECT DETECTION WITH MULTIPLE CAMERA'S: 3 Steps
RASPBERRY PI Pi OBJEKTDETEKSJON MED FLERE KAMERAS: Jeg holder introen kort, ettersom tittelen i seg selv antyder hva hovedformålet med den instruerbare er. I denne trinnvise instruksjonen vil jeg forklare deg hvordan du kobler til flere kameraer som 1-pi-kamera og minst ett USB-kamera eller 2 USB-kameraer
Raspberry Pi Whole Home Synchronous Audio With Phone App Remotes: 10 Steps (with Pictures)
Raspberry Pi Whole Home Synchronous Audio With Phone App Remotes: Målet er synkronisert lyd og/eller individuelle kilder i alle rom, enkelt kontrollert med en telefon eller et nettbrett via iTunes Remote (apple) eller Retune (android). Jeg vil også at lydsonene skal slås av/på automatisk, så jeg snudde meg til Raspberry Pi og
SENSLY HAT FOR RASPBERRY PI AIR QUALITY & GAS DETECTOR V1.1: 9 Steps
SENSLY HAT FOR RASPBERRY PI AIR QUALITY & GAS DETECTOR V1.1: Sensly er en bærbar forurensningssensor som er i stand til å oppdage forurensningsnivåene i luften ved hjelp av sine innebygde gassensorer for å samle informasjon om de forskjellige gassene som er tilstede. Denne informasjonen kan mates direkte til smarttelefonen din for sanntid