Taula de continguts:
- Subministraments
- Pas 1: configureu el ventilador
- Pas 2: creeu un controlador PI (D)
- Pas 3: executeu Control Script a l'inici
Vídeo: Control de temperatura precís al Raspberry Pi 4: 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
El Pimoroni Fan Shim és una gran solució per reduir la temperatura del Pi quan s’escalfa. Fins i tot els fabricants proporcionen programari que activa el ventilador quan la temperatura de la CPU augmenta per sobre d’un determinat llindar (per exemple, 65 graus). La temperatura es redueix ràpidament per sota d’un llindar inferior i apaga el ventilador. Això és fantàstic, però fa que la temperatura pugi i baixi sota càrregues moderades i crea soroll audible del ventilador. Aquesta instrucció reduirà el soroll del ventilador mentre fixa la temperatura de la CPU a un valor específic mitjançant una cosa anomenada controlador PID. Els llindars més alts (per exemple, 65 graus) donaran lloc a un ventilador molt més tranquil, mentre que els llindars més baixos (per exemple, 50 graus) donaran lloc a un ventilador més fort, però amb un millor control de la temperatura.
L'exemple anterior mostra els meus resultats en executar el controlador PID i canviar la temperatura de destinació cada 500 segons. La precisió és de +/- 1 grau, amb una certa superació en canvis sobtats de temperatura.
És important destacar que aquesta prova es va dur a terme amb la mateixa càrrega durant el temps total de prova (veient BBC iPlayer).
Subministraments
- Raspberry Pi 4
- Pimoroni Fan Shim
Pas 1: configureu el ventilador
El primer pas és configurar el ventilador. El tutorial de Pimorini és fantàstic.
A continuació, obriu el terminal del vostre Pi (ctrl alt t)
I instal·leu el codi proporcionat per Pimoroni
git clone https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh
Pas 2: creeu un controlador PI (D)
Un controlador de derivades integrals proporcionals (PID) és un sistema que s’utilitza per controlar el valor d’un determinat procés (temperatura de la CPU) mitjançant la manipulació d’un dispositiu físic (velocitat del ventilador). Podem manipular la "velocitat" i el soroll del ventilador encenent-lo i apagant-lo periòdicament (modulació d'ona de pols). El temps durant el qual està activat en un període determinat (per exemple, 1 segon) determina la velocitat i la intensitat del ventilador (900 ms = fort i ràpid, 100 ms = silenciós i lent). Utilitzarem el PID per manipular la velocitat del ventilador i així controlar la temperatura.
Podem dividir l’ús d’un PID en diversos passos.
- Decidiu el valor de la variable de procés que voleu aconseguir (per exemple, temperatura de la CPU = 55). Això s’anomena el vostre punt de consigna.
- Calculeu l’error PID. Si el vostre valor de consigna és de 55 graus i la temperatura real és de 60 graus, el vostre error és de 5 graus (temperatura - valor de consigna)
- Canvieu el temps d'entrada del ventilador en proporció a l'error (els grans errors produeixen grans canvis en la velocitat del ventilador, els petits errors causen petits canvis en la velocitat del ventilador).
- Ajusteu el ventilador en propietat als valors passats (integral / suma de tots els errors anteriors)
- Opcionalment, ajusteu la velocitat del ventilador en funció de la velocitat de canvi de l'error (derivat), però aquí no ho farem
Ara que teniu la teoria, executeu el codi següent a l'ID Thonny (o algun altre IDE python). Canvieu el valor de "objectiu" al codi següent per canviar a quina temperatura voleu mantenir el vostre Pi. He definit els termes "P" i "I" en valors una mica arbitraris. No dubteu a ajustar-los si no us funcionen. fer més gran "P" significa que el controlador respondrà ràpidament a nous errors (però pot ser que no sigui estable). El canvi de "jo" farà que el controlador ponderi la seva resposta més als valors passats. No intentaria fer aquests termes massa grans, ja que canviar ràpidament la velocitat del ventilador no canviarà ràpidament la temperatura. A més, si feu un treball increïblement pesat al vostre Pi, és possible que no assoliu la temperatura desitjada (els límits del ventilador encara s’apliquen).
de fanshim importen FanShim
a partir de la importació de temps d'importació, importació de temps d'importació matemàtica # Retorna la temperatura de la CPU com una cadena de caràcters def getCPUtemperature (): res = os.popen ('vcgencmd measure_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," ")) fanshim = FanShim () objectiu = 55 # temperatura desitjada (jugar amb això i veure què passa) període = 1 # període PWM activat =.1 # inicialitzar a 0 % cicle de treball desactivat = període de posició # inicialitzat a 0% cicle de treball P = 0,01 # proporcional Termini de guany (jugueu amb això i vegeu què passa) intErr = 0 # error integral I =.0001 # termini de guany intergral (jugueu amb aquest i veure què passa) mentre és True: # get temperaute temp = int (float (getCPUtemperature ())) # calculate error and smooth err = temp-target # compute lerror integra and constrain it intErr = intErr + err if intErr> 10: intErr = 10 if intErr = period: on = period off = 0 else: on = on off = period-on # estableix un cicle de treball mínim si està activat <.09: activat =.09 else: activat = activat # PWM al pin de fanshim si activat == període: fanshim.set_fan (True) dormir (activat) else: fanshim.set_fan (True) s leep (on) fanshim.set_fan (False) sleep (off)
Pas 3: executeu Control Script a l'inici
Podeu executar aquest script cada vegada que inicieu el pi o el podríeu activar automàticament en reiniciar. Això és molt senzill de fer amb crontab.
- obriu el terminal
- escriviu crontab-e al terminal
- afegiu la següent línia de codi al fitxer "@reboot python /home/pi/bootScripts/fanControl.py &"
- sortiu i reinicieu
He posat l'script (fanControl.py) en un floder anomenat bootScripts, però podeu posar-lo en qualsevol lloc, només heu d'assegurar-vos que especifiqueu el camí correcte al crontab.
Tot fet! Ara el ventilador controlarà la temperatura de la CPU fins a un valor específic, alhora que minimitzarà el soroll audible que produeix.
Recomanat:
Voltímetre precís de visualització de tinta electrònica Waveshare (0-90v CC) amb Arduino Nano: 3 passos
Voltímetre precís de visualització de tinta electrònica Waveshare (0-90 v CC) amb Arduino Nano: en aquest manual, faig servir una pantalla de paper electrònic Waveshare de 2,9 "amb un Arduino Nano, un divisor de tensió i un ADS1115 per mostrar tensions precises de fins a 90 volts de CC a la pantalla de paper electrònic. Aquest instructiu combina aquests dos projectes anteriors: - Ardui
Mesurador de voltatge precís i precís Arduino (0-90V CC): 3 passos
Mesurador de voltatge precís i precís Arduino (0-90V CC): en aquesta instrucció, he construït un voltímetre per mesurar tensions altes CC (0-90v) amb una precisió i precisió relativa mitjançant un Arduino Nano. Les mesures de prova que vaig fer van ser prou precises, sobretot a 0,3 v del voltatge real mesurat amb un
GPSDO YT, oscil·lador disciplinat de 10 MHz freqüència de referència. Baix cost. Precís: 3 passos
GPSDO YT, oscil·lador disciplinat de 10 MHz freqüència de referència. Baix cost. Precís .: ************************************************ ******************************** STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP Aquest és un projecte obsolet. nova versió de pantalla LCD 2x16 disponible aquí: https: //www.instructables.com/id
Comptador de subscriptors de YouTube precís: 4 passos
Comptador de subscriptors de YouTube precís: vaig començar a preparar-me per a aquest projecte fa aproximadament un mes, però YouTube em va descarrilar quan van anunciar que ja no proporcionaran el nombre real de subscriptors, sinó el número arrodonit més proper. De moment, això no és realment un problema per a
Un model precís d'una estrella variable de cefeida: 5 passos (amb imatges)
Un model precís d’una estrella variable de cefeides: l’espai és gran. Molt gran. Astronòmicament, fins i tot es podria dir. Això no té cap influència en aquest projecte, només volia fer servir el joc de paraules. No és estrany que hi hagi moltes estrelles al cel nocturn. No obstant això, pot sorprendre a alguns que són nous a la realitat