Scripts Python pour gérer le ventilateur d'un Pi 4

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Bibi49
Messages : 367
Inscription : 11 mars 2018, 12:42
Localisation : 49

Scripts Python pour gérer le ventilateur d'un Pi 4

Message par Bibi49 »

Bonjour,

J'ai acheté deux boitiers ventilé compatible avec le pilotage (3 fils : noir masse, rouge 5V, bleu régulation).

Le fabricant de ce boitier :
https://wiki.52pi.com/index.php?spm=a2g ... le=ZP-0140 ou
https://wiki.52pi.com/index.php?spm=a2g ... le=ZP-0141 propose un script Py que j'ai légèrement corrigé (ventilation au repos en dessous de 45°, a partir de 45° a 66%, et au dessus de 60° le ventilateur est a 100% avec une pause de 60 secondes entre chaque mesure)

Code : Tout sélectionner

#fan_control.py
#!/usr/bin/python3
import RPi.GPIO as GPIO
import time
import subprocess

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(14, GPIO.OUT)
pwm = GPIO.PWM(14,100)

print("\nPress Ctrl+C to quit \n")
dc = 0
pwm.start(dc)

try:
    while True:
        temp = subprocess.getoutput("vcgencmd measure_temp|sed 's/[^0-9.]//g'")
        if round(float(temp)) >= 60:
            dc = 100
            pwm.ChangeDutyCycle(dc)
            print("CPU Temp:",float(temp)," ventilateur a % ",dc)
            time.sleep(60.0)
        if round(float(temp)) >= 45:
            dc = 66
            pwm.ChangeDutyCycle(dc)
            print("CPU Temp:",float(temp)," ventilateur a % ",dc)
            time.sleep(60.0)
        else:
            dc = 0
            pwm.ChangeDutyCycle(dc)
            print("CPU Temp:",float(temp)," ventilateur au repos",dc)
            time.sleep(60.00)

except KeyboardInterrupt:
    pwm.stop()
    GPIO.cleanup()
print("Ctrl + C pressed -- Ending program")
A activer dans "raspi-config":
4 Performance Option -> P3 Fan -> Oui -> 14 (GPIO) -> 60 (degrés) -> Oui et Reboot

pour qu'il se lance au démarrage :
sudo nano /etc/rc.local
et coller " python3 fan_control.py " puis faire "CTRL+X" "O" "Entrer" pour enregistrer

Enfin un ventilateur qui fonctionne lorsque c'est nécessaire :D


Edit,
en cas d'erreur des GPIO avec le kernel 6.6

Code : Tout sélectionner

sudo apt remove python3-rpi-lgpio
sudo apt install python3-rpi.gpio
RPI 2 -> Bullseye Lite
DomoticZ -> 2024.7
RFXCom 433E -> Pro1 1041
DongleP - Z-Stack 3.30+ (build 20240710) /Z4D 7.1.025 [7.489]
CC1101 433Mhz "Itron EverBlue Cyble"
PiTInfo v1.4
USB->ùSD = Rpi-clones
Répondre