Domotique Open source & high Tech
Raspberry PI : bouton marche arrêt et refroidissement automatique

Raspberry PI : bouton marche arrêt et refroidissement automatique

Dans un premier contact avec le Raspberry PI, une question vient rapidement à l’esprit : comment allumer et éteindre ce petit ordinateur ? où est le bouton d’arrêt ? en réponse rapide : le Raspberry PI est conçu pour travailler H24, donc pas besoin d’un bouton, pour le démarrer, il suffit d’insérer le câble d’alimentation, et pour l’arrêter (proprement) ça doit se faire sur l’OS.

Cependant il y a des cas d’utilisation, qu’on a besoin d’un allumage/extinction physique, pour exemple un Raspberry PI en media center ou en retro-gaming.

Aussi, en jetant un coup d’œil sur les accessoires du Rapsberry PI, on remarque l’existence de dissipateurs thermiques, ainsi que de boîtiers avec fixation pour ventilateur, ici, autre question se pose: dois-t-on refroidir la framboise ?

Après un long débat sur ce groupe Facebook  et des recherches sur internet, je peux dire que le refroidissement par ventilateur, dans certains cas, est très exigé, dans d’autres cas,c’est souhaitable, car ça aide à prolonger la durée de vie, et améliorer les performance du processeur. alors pourquoi et comment ?

le Raspberry PI est conçu à fonctionner entre -40°C et 82°C. Si la température du processeur dépasse les 82°C, la vitesse de ce dernier sera ralentie jusqu’à ce que la température chute en dessous de 82°C. Dans le cas d’un Media center par exemple, la lecture d’un film en MKV peut entraîner une montée excessive de température et des interruptions de lecture. le ralentissement de la vitesse du CPU ne peut se faire rapidement, surtout s’il est overclocké, la température risque de s’envoler et on pourrait avoir un plantage.

Un moyen facile d’ajouter un ventilateur, est de simplement connecter les fils de celui-ci à des broches de 3,3 V ou 5 V et au Ground. En utilisant cette méthode, le ventilateur fonctionnera tout le temps. Pourquoi donc ne pas surveiller la température, ne démarrer le ventilateur qu’en cas de dépassement d’un seuil élevé,  et l’arrêter juste après refroidissement ?

Cela dit, voyons comment ajouter un bouton poussoir au Raspberry PI et comment automatiser le son refroidissement. c’est parti !

Matériel nécessaire :

NB : je ne suis pas un ingénieur en électronique, le matériel est choisit d’après mes recherches sur internet, et ce que j’avais sous les mains.

-Un bouton poussoir (pour le test j’ai utilisé un shield pour wemos D1)

voir sur : Amazon   Aliexpress

-une résistance de 220Ω (ou une valeur proche)

il vaut mieux acheter un lot avec différentes valeurs pour vos futurs projets, voir sur : Amazon   Aliexpress

-Des cables DuPont femelle.

voir sur : Aliexpress  Amazon

-Un ventilateur pour Raspberry PI (il faut avoir un boitier compatible)

voir sur : Amazon   Aliexpress

et finalemet :

-Un transistor : moi j’avais le 2N2222A en stock, vous pouvez aussi utiliser le S8050 ou le BC 337

voici un lot à différentes références, voir sur Amazon   Aliexpress

Schéma de câblage :

côté bouton poussoir, on connecte une patte au ground et l’autre au GPIO 3 en passant par une résistance de 220Ω.

côté ventilo, le cable rouge directement sur le 5V ou le mieux sur 3.3v (pour ne pas avoir du bruit) . le câble noir (bleu dans le schéma) sur le collecteur du transistor.

la base du transistor (orange) à connecter au GPIO 25. et l’émetteur (noir) au Ground.

Raspberry PI bouton – script on/off

Méthode 1

j’ai adapté un script shell pour les utilisateurs de Raspbian qui va se charger d’installer les packages nécessaires, télécharger les scripts python et les exécuter. il suffit de taper la commande suivante :

curl https://raw.githubusercontent.com/trarizakaria/rpi_scripts/master/setup-shutdown.sh | bash

installation terminé, vous pouvez testé le bouton : appuyer, attendre l’arrêt du Raspberry PI, appuyer de nouveau, le Raspberry PI démarre.

Méthode 2

je vais quand même mettre la procédure manuelle, pour que les utilisateurs d’un autre système (OSMC par exemple) puissent modifier l’utilisateur ‘pi’ par un autre utilisateur.

Mise à jour des paquées :

sudo apt-get -y update

Installation de python.gpio :

sudo apt-get install --yes python-rpi.gpio python3-rpi.gpio

Créer un dossier pour les scripts :

mkdir /home/pi/scripts

Edition du script shutdown.py :

sudo nano /home/pi/scripts/shutdown.py

copier le code suivant, sauvegarder ctrl+o et quitter ctrl+x

#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import subprocess
GPIO.setmode(GPIO.BOARD)
# la numérotation utilisé dans ce script correspont à la numérotation physique
# des broches du Raspberry PI, le pin 5 ici est l'équivalent du GPIO 3
GPIO.setup(5, GPIO.IN)
oldButtonState1 = True
while True:
#conaitre l'état actuel du bouton
buttonState1 = GPIO.input(5)
# verifier si le bouton a été pressé
if buttonState1 != oldButtonState1 and buttonState1 == False:
# Arrêt
subprocess.call("shutdown -h now", shell=True,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
oldButtonState1 = buttonState1
time.sleep(.5)

Exécution permanente du script en arrière plan :

sudo nano /etc/init.d/pi_shutdown

copier le code suivant, sauvegarder ctrl+o et quitter ctrl+x

#! /bin/sh
### BEGIN INIT INFO
# Provides: pi_shutdown
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: S
# Default-Stop: 
# Short-Description: Shutdown on GPIO trigger
# Description: Python script listens for GPIO and runs shutdown command
### END INIT INFO
sudo python /home/pi/scripts/shutdown.py &

ensuite :

sudo chmod +x /etc/init.d/pi_shutdown

enfin :

sudo update-rc.d pi_shutdown defaults

redémarrer le Raspberry PI

Raspberry PI ventilateur – Script de gestion automatique

je vous met ici un script qui permet de lire la température chaque 30 seconde (sleepTime = 30),  en fonction du seuil définit (self.startTemperature = 48.0) il va démarrer le ventilateur, une fois la température est inférieure au seuil-M (48°C – 2 soit 46°c) le ventilateur s’arrête. (self.startTemperature – 2.0)

j’ai mis délibérément des valeurs rapprochées pour vérifier le fonctionnement du script, vous pouvez par la suite modifier le sleep time, la température de démarrage et celle de l’arrêt.

pour installer le script il suffit d’exécuter la commandes suivantes

curl https://raw.githubusercontent.com/trarizakaria/rpi_scripts/master/setup-fan.sh | bash

après l’installation du script, vous pouvez toujours changer la température de démarrage ventilo, ou le sleep time, en modifiant le fichier du script :

sudo nano /home/pi/scripts/run-fan.sh

pour d’autres systèmes avec un utilisateur autre que ‘pi’ vous suivez les commandes de la méthode 2 tout en remplaçant ‘pi’ par l’utilisateur (osmc par exemple), le nom de script shutdown.py par run-fan.py et pi_shutdown par pi_fan. vous trouverez les scripts ici.

Mon tuto touche à sa fin, j’espère que ça a été clair et utile, surtout pour ceux qui disposent d’un boitier Nespi, pour ma part j’essayerai de souder un joli montage et le fixer sur mon boitier. A bientôt !

 

Partager sur :

3 réflexions au sujet de “Raspberry PI : bouton marche arrêt et refroidissement automatique

  1. Bonjour Zakaria
    Très bon Tuto et surtout très utile .
    Je vais m’en servir pour arrêter proprement le Raspberry derrière mon MagicMirror.
    Merci pour ton partage

Laisser un commentaire

© 2018 Made with love by OumaWEB