Ventilador para Raspberry Pi 4

Raspberry Pi 4 tiene una conexión para ventilador configurada de fábrica al PIN 8 (GPIO 14) que se activa a partir de 60ºC. Aunque el fabricante nos dice que ese rango de temperaturas es correcto, a mi me parece demasiado alto. Por ello he creado un script en Python con el cual podemos decir a qué temperatura queremos poner en marcha el ventilador.

Necesitamos un ventilador de 3 pines, que cuente con un cable rojo 5V positivo, negro para negativo y azul para el control de velocidad.

El funcionamiento es simple, rojo y negro se conectan a 5 voltios de la Raspberry y azul a un pin de nuestra elección para activar o desactivar el ventilador.

En este script, conectaremos el cable azul al pin 18, al cual daremos valor HIGH o LOW, dependiendo de los valores de temperatura que asignemos.

Este tipo de ventilador usa el modo PWM o ancho de pulso para regular el voltaje y así la velocidad de rotación del ventilador, pero eso lo veremos en otro script.

La ejecución del programa es la siguiente:

  • Temperatura igual o superior a 45 grados activa el ventilador.
  • Entre 44 y 39 grados el ventilador se mantiene activo.
  • El ventilador se para al bajar de 39 grados.
  • El ventilador se mantiene apagado hasta que la temperatura sea igual o superior a 45 grados.

Eres libre de usar el rango de temperaturas que más te interesen, modifica los valores en el programa.

Este script espera a ejecutar el bucle cada 5 segundos a fin de no cargar los núcleos del procesador y con ello subir artificialmente la temperatura.

Aquí tenemos el código.

#!/usr/bin/python3
# https://linuxete.duckdns.org/
# https://chapuboot.blogspot.com/
# Importa la librería de control de GPIO de la Raspberry
import RPi.GPIO as GPIO

# Importa  la función sleep del módulo time
import time 

#Desactivar advertencias (warnings)
GPIO.setwarnings(False)

#Modo de identificación de GPIO
GPIO.setmode(GPIO.BOARD)

# Configurar pin 18 como salida
GPIO.setup(18, GPIO.OUT)

# Inicializamos pin 18 apagado con False, con True el programa inicia con el ventilador en marcha hasta meterse en el bucle While.
GPIO.output(18, False)

# Función Lectura de temperatura
def get_cpu_temp():
    temperatura = open( "/sys/class/thermal/thermal_zone0/temp" )
    cpu_temp = temperatura.read()
    temperatura.close()
    return float(cpu_temp)/1000

#bucle infinito
while True:
    time.sleep(5) #espera a ejecutar el bucle cada 5 segundos.
    print(get_cpu_temp())
    if get_cpu_temp() >= 45:
        GPIO.output(18, GPIO.HIGH)
    elif get_cpu_temp() <= 44 and get_cpu_temp() >= 40:
        continue
    elif get_cpu_temp() < 39:
        GPIO.output(18, GPIO.LOW)
      

Abre una terminal y escribe:

nano ventilador.py

Copia, pega el código anterior y guarda pulsando las teclas Crtl + o y sal con Crtl + x

Ahora, dale permisos de ejecución con:

chmod +x ventilador.py

Programa la ejecución del programa al inicio con cron, escribe en la terminal:

crontab -e

Al final del texto, pega el siguiente código:

@reboot /usr/bin/python3 /home/tu_usuario/ventilador.py

Sustituye «tu_usuario» por el tuyo propio.

Guarda con Crtl + o y cierra con Ctrl +x

Ahora cada vez que se encienda tu Raspberry el programa se ejecutará al inicio.

Script ejecutándose y con procesadores trabajando al mínimo.

Ventiladores disponibles 40 mm y 3 pines

GeeekPi Raspberry Pi Cooling Fan de 3 pines al pin 18 (GPIO 24)

Esquema de los pines GPIO

Esquema de los pines GPIO

Comprueba que funciona y mantén tu Raspberry mas fresca que una lechuga.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio