Tabla de contenido:

Control de temperatura preciso en Raspberry Pi 4: 3 pasos
Control de temperatura preciso en Raspberry Pi 4: 3 pasos

Video: Control de temperatura preciso en Raspberry Pi 4: 3 pasos

Video: Control de temperatura preciso en Raspberry Pi 4: 3 pasos
Video: 11) Raspberry PI 4 y Python3 desde Cero - Reproducción MP3 y Control de Temperatura 2024, Noviembre
Anonim
Control de temperatura preciso en Raspberry Pi 4
Control de temperatura preciso en Raspberry Pi 4

El Pimoroni Fan Shim es una gran solución para reducir la temperatura de su Pi cuando se calienta. Los fabricantes incluso proporcionan software que activa el ventilador cuando la temperatura de la CPU sube por encima de un cierto umbral (por ejemplo, 65 grados). La temperatura se reduce rápidamente por debajo de un umbral más bajo y apaga el ventilador. Esto es genial, pero hace que la temperatura suba y baje bajo cargas moderadas y crea un ruido audible en el ventilador. Este instructable reducirá el ruido del ventilador mientras fija la temperatura de la CPU a un valor específico usando algo llamado controlador PID. Los umbrales más altos (por ejemplo, 65 grados) darán como resultado un ventilador mucho más silencioso, mientras que los umbrales más bajos (por ejemplo, 50 grados) darán como resultado un ventilador más ruidoso pero un mejor control de la temperatura.

El ejemplo anterior muestra mis resultados de ejecutar el controlador PID y cambiar la temperatura objetivo cada 500 segundos. La precisión es de +/- 1 grado con algo de sobreimpulso en cambios repentinos de temperatura.

Es importante destacar que esta prueba se realizó con la misma carga durante el tiempo total de la prueba (viendo BBC iPlayer).

Suministros

  • Frambuesa pi 4
  • Cuña de ventilador Pimoroni

Paso 1: configura tu ventilador

Configura tu ventilador
Configura tu ventilador

El primer paso es configurar su ventilador. ¡El tutorial de Pimorini es genial!

Luego abre la terminal en tu Pi (ctrl alt t)

E instala el código proporcionado por Pimoroni

clon de git https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh

Paso 2: Cree un controlador PI (D)

Crear un controlador PI (D)
Crear un controlador PI (D)

Un controlador proporcional integral derivado (PID) es un sistema que se utiliza para controlar el valor de un determinado proceso (temperatura de la CPU) mediante la manipulación de algún dispositivo físico (velocidad del ventilador). Podemos manipular la 'velocidad' y el ruido del ventilador encendiéndolo y apagándolo periódicamente (Modulación de onda de pulso). El tiempo que está encendido en un período determinado (por ejemplo, 1 segundo) determina qué tan rápido y qué tan fuerte es el ventilador (900ms = alto y rápido, 100ms = silencioso y lento). Usaremos el PID para manipular la velocidad del ventilador y así controlar la temperatura.

Podemos dividir el uso de un PID en varios pasos.

  1. Decida el valor de la variable de proceso que desea alcanzar (por ejemplo, temperatura de la CPU = 55). A esto se le llama su punto de ajuste.
  2. Calcule el error PID. Si su punto de ajuste es de 55 grados y la temperatura real es de 60 grados, su error es de 5 grados (Temperatura - punto de ajuste)
  3. Cambie el tiempo de encendido del ventilador en proporción al error (los errores grandes dan como resultado grandes cambios en la velocidad del ventilador, los errores pequeños provocan pequeños cambios en la velocidad del ventilador).
  4. Ajuste el ventilador en función de los valores pasados (integral / suma de todos los errores anteriores)
  5. Opcionalmente, ajusta la velocidad del ventilador en función de la tasa de cambio del error (derivada), pero no lo haremos aquí.

Ahora que tiene la teoría, ejecute el siguiente código en el IDE de Thonny (o en algún otro IDE de Python). Cambie el valor de 'objetivo' en el código a continuación para cambiar la temperatura en la que desea mantener su Pi. Establecí los términos 'P' e 'I' en valores algo arbitrarios. Siéntase libre de ajustarlos si no le funcionan. hacer 'P' más grande significa que el controlador responderá rápidamente a nuevos errores (pero puede que no sea estable). Cambiar 'I' hará que el controlador sopese su respuesta más a los valores pasados. No trataría de hacer estos términos demasiado grandes, ya que cambiar rápidamente la velocidad del ventilador no cambiará rápidamente la temperatura. Además, si está haciendo un trabajo increíblemente pesado en su Pi, es posible que no logre la temperatura deseada (los límites del ventilador aún se aplican).

de fanshim importar FanShim

from time import sleep, time import os import math # Devuelve la temperatura de la CPU como una cadena de caracteres def getCPUtemperature (): res = os.popen ('vcgencmd measure_temp'). readline () return (res.replace ("temp =", " ").replace (" 'C / n "," ")) fanshim = FanShim () target = 55 # temperatura deseada (juega con esto y mira qué sucede) period = 1 # PWM period on =.1 # inicializa a 0 % ciclo de trabajo apagado = período encendido # inicialización a 0% ciclo de trabajo P =.01 # Término de ganancia proporcional (juegue con esto y vea qué sucede) intErr = 0 # error integral I =.0001 # término de ganancia integral (juegue con esto y ver qué sucede) while True: # get temperaute temp = int (float (getCPUtemperature ())) # calcular el error y suavizar err = temp-target # calcular el error de integración y restringirlo intErr = intErr + err if intErr> 10: intErr = 10 if intErr = period: on = period off = 0 else: on = on off = period-on # establecer ciclo de trabajo mínimo si está activado <.09: on =.09 else: on = on # PWM en el pin del ventilador si on == period: fanshim.set_fan (True) sleep (on) else: fanshim.set_fan (True) s leep (encendido) fanshim.set_fan (falso) dormir (apagado)

Paso 3: Ejecute el script de control al inicio

Ejecutar secuencia de comandos de control al inicio
Ejecutar secuencia de comandos de control al inicio

Puede ejecutar este script cada vez que inicie su pi o puede hacer que se active automáticamente al reiniciar. Esto es muy sencillo de hacer con crontab.

  1. abre la terminal
  2. escribe crontab-e en la terminal
  3. agregue la siguiente línea de código al archivo '@reboot python /home/pi/bootScripts/fanControl.py &'
  4. salir y reiniciar

Puse el script (fanControl.py) en un floder llamado bootScripts pero puedes ponerlo en cualquier lugar, solo asegúrate de especificar la ruta correcta en crontab.

¡Todo listo! Ahora su ventilador controlará la temperatura de su CPU a un valor específico, mientras minimiza el ruido audible que produce.

Recomendado: