Chargement ...

Projets.

Mes Projets

Gérer un ventilateur avec un RPI 3 - HomeMade


Récemment adepte de Raspberry et de son écosystème, je découvre peu à peu les capacités illimitées de ce produit. Et j'aime le manipuler "à toutes les sauces". Pour des raisons de longévité, je me suis posé la question de savoir comment je pouvais refroidir ma framboise, et je n'ai trouvé que des sites en anglais. Vient alors cet article détaillant l'avancement de l'installation d'un ventilateur géré par un script, et oui un ventilateur intelligent !
N.B - Le but est d'ajouter un ventilateur dans le cas où les dissipateurs thermiques ne suffisent pas !
Si vous posséder un ventilateur 5V c'est parfait", si vous voulez lui ajouter un ventilateur 12V vous devrez avoir une autre alimentation que le bus GPIO du raspberry.
Pré-requis :

  • Un raspberryPi avec raspbian ou autre
  • Un ventilateur 5V ou 3,3V
  • Un boitier "Celui-ci est pas mal sur Amazon "
  • Un transistor NPN S8050
  • Quelques fils pour connecter l'ensemble
  • Faire à souder (pour que ça tienne bien)
  • Logiciel de gestion des GPIO WiringPi via Github ici


  • Cable sur le bus +5V - Ground - GPIO.4
    Cablâge du raspberryPi.

    Brancher d'abord le ventilateur pour voir si celui-ci tourne à l'aide des pin +5V et 0V(ground)
    Nous utiliserons ensuite le pin 16 synonyme de la GPIO.4 pour gérer l'allumage ON/OFF.

    GPIO Raspberry
    Cablâge du raspberryPi.

    On va ensuite cabler le ventilateur via le transistor NPN.
    GPIO Raspberry
    Cablâge du transistor.

    Schéma de principe
    Schéma de principe du câblage

    Le script ci-dessous permet de lancer le ventilateur selon sa température. Je l'ai placé dans un cron qui sera exécuté toutes les 3 min. N.B : Il est aussi possible de le lancer au démarrage via un uptade-rc et une boucle while avec un sleep du temps que l'on souhaite entre les actions. Vous pouvez adapter ce script à vos besoins.

    sudo crontab -e
    
    */3 * * * * /home/pi/Script/auto-fan.sh >> /home/pi/Script/auto-fan.log 2>&1
    

    Je crée ujn fichier de logs qui me permet de tracer les erreurs s'il y en a et de traiter le retour de mon script. Je peux donc savoir à quelle heure mon ventilateur a démarré.

    #!/bin/bash
    # ON/OFF Fan
    # author : clement charnay 18/04/2017
    # Run with Cron all 3 min
    date="$(date "+%H:%M:%S-%d-%m-%Y")"
    #!/bin/bash
    PATH=/usr/bin/:/bin
    
    # high : fan startup (66°C)
    HIGH=66000
    # high : fan stop (58°C)
    LOW=58000
    TEMP=`cat /sys/class/thermal/thermal_zone0/temp`
    LINE=`wc -l < /home/pi/Script/auto-fan.log`
    MAXLINE=5000
    
    #echo "temp= $TEMP"
    #echo "high= $HIGH"
    #echo "low= $LOW"
    
    # Verify log file
    if [ $LINE -gt $MAXLINE ]
    then
    rm /home/pi/Script/auto-fan.log && touch /home/pi/Script/auto-fan.log && echo "Remove file at $date line > $MAXLINE "  >> /home/pi/Script/auto-fan.log
    fi
    
    gpio mode 4 out
    
    # Verify temp
    if [ $TEMP -gt $HIGH ]
    then
    gpio write 4 1 && echo "Start $date - temp= $TEMP - high= $HIGH" >> /home/pi/Script/auto-fan.log
    fi
    if [ $TEMP -lt $LOW ]
    then
    gpio write 4 0  && echo "Stop $date - temp= $TEMP - low= $LOW" >> /home/pi/Script/auto-fan.log
    fi
    

    Ne pas oublié le chmod +x sur votre script pour l'éxecuter. Voilà vous avez ventilé votre RaspberryPi !
    S'il manque des informations ou que vous souhaitez savoir d'autres choses sur mon travail > ici.

Autres Projets :