
La surveillance de la température d’un Raspberry Pi est essentielle pour maintenir la performance et la longévité de l’appareil.
Il est important de connaître les seuils de température pour votre Raspberry Pi.
En général, une température inférieure à 85°C est considérée comme sûre. Au-delà de ce seuil, le CPU peut commencer à ralentir pour éviter la surchauffe
Il existe plusieurs méthodes pour récupérer les valeur des capteurs de température.
Sous Debian il vous suffit d’entrer les commandes suivantes dans un terminal SSH :
- obtenir la température actuelle du CPU :
/opt/vc/bin/vcgencmd measure_temp
Cette commande retournera une valeur sous la forme : temp=46.7'C.
- La seconde renvoie un nombre à 5 chiffres, ex: 46710, il suffit alors de diviser le résultat par 1000 pour ne garder que le résultat sur deux chiffres :
cat /sys/class/thermal/thermal_zone0/temp | awk '{ print $1 / 1000 }'
Cette commande retournera la température en degrés Celsius, par exemple : 46
Script de Surveillance Avancée
Pour une surveillance plus avancée, vous pouvez créer un script bash qui enregistre la température à intervalles réguliers et génère des alertes si nécessaire.
Voici un exemple de script qui vérifie la température toutes les 10 minutes et enregistre les données dans un fichier HTML:
Créer un nouveau script :
nano /home/user/scripts/ctrl_temperature.sh
Insérer le code suivant :
#!/bin/bash
SEND_ALERT="no"
ALERT_MSG="Allerte température haute"
ALERT_MAIL_RECIPIENT="mon_email@mail.com" # adresse mail recevant les alertes
ALERT_MUTT_CONF="/home/user/.muttrc" # chemin vers le fichier de configuration .muttrc
SHUTDOWN="no"
COLOR=""
# Récupération de la température ;
TEMP=$(cat /sys/class/thermal/thermal_zone0/temp)
TEMP=$(($TEMP/1000))
# Récupération de la date et l'heure du jour ;
DATE=$(date +"%A %d %B %Y, %H:%M:%S")
# Répertoire cible (où seront stockées les valeurs);
DIR="/home/user/temperatures"
# fichier "temperature.html"
TEMP_FILE="${DIR}/${DATE_ALT}_temperature.html"
# Si le répertoire cible n'existe pas, on le crée
mkdir -p "$DIR"
# Si le fichier temperature.html n'existe pas, on le crée
if [ ! -f "$TEMP_FILE" ];then
echo "<!DOCTYPE html><html><head><meta charset='utf-8' /></head><body><center>" > "$TEMP_FILE"
fi
# Test de la température relevée
# Si la température est inférieure à 40°C :
if [ "$TEMP" -lt "40" ]; then
COLOR="blue"
# Si la température est comprise entre +40 et 50°C :
elif [ "$TEMP" -ge "40" ] && [ "$TEMP" -lt "50" ];then
COLOR="green"
# Si la température est comprise entre +50 et 70°C :
elif [ "$TEMP" -ge "50" ] && [ "$TEMP" -lt "70" ];then
COLOR="orange"
# Si la température relevée est comprise entre +70 et 75°C, on envoie une alerte "surchauffe" par mail :
elif [ "$TEMP" -ge "70" ] && [ "$TEMP" -lt "75" ];then
COLOR="red"
SEND_ALERT="yes"
ALERT_MSG="Alerte surchauffe, température = ${TEMP}°C"
# Si la température relevée dépasse 75°, on envoie une alerte par mail et on ordonne l'arrêt du RPi :
elif [ "$TEMP" -ge "75" ];then
COLOR="black"
SHUTDOWN="yes"
SEND_ALERT="yes"
ALERT_MSG="Alerte température anormale, arrêt immédiat du pi, température = ${TEMP}°C"
fi
# Ecriture de la température relevée dans le fichier
echo "<font face='Courier'>${DATE}<br><strong><font color='${COLOR}'>${TEMP}°C</font></font></strong><br><br>" >> "$TEMP_FILE"
# Si une alerte doit être envoyée
if [ "$SEND_ALERT" == "yes" ];then
echo "" | mutt -s "$ALERT_MSG" -F "$ALERT_MUTT_CONF" -- "$ALERT_MAIL_RECIPIENT"
fi
# Si le RPi doit être arrêté
if [ "$SHUTDOWN" == "yes" ];then
sudo shutdown -h now
fi
exit
Ce script peut être personnalisé pour envoyer des alertes par e-mail ou arrêter le Raspberry Pi si la température dépasse un certain seuil.
Rendre le script exécutable :
chmod +x /home/user/scripts/ctrl_temperature.sh
Exécution automatique
Pour que le script soit exécuté automatiquement toutes les 10 minutes, il convient alors de rajouter une ligne dans la crontab :
crontab -e
Insérer la ligne suivante :
*/10 * * * * /home/user/scripts/temperature.sh
Conclusion
La surveillance de la température est un aspect crucial de la gestion d’un Raspberry Pi, surtout si vous l’utilisez pour des tâches exigeantes. Les commandes et scripts mentionnés ci-dessus vous aideront à garder un œil sur la santé de votre appareil et à prendre des mesures préventives si nécessaire.
