Moniteur de température Raspberry Pi

Raspberry Pi Temperature Monitor



Raspberry Pi est un puissant ordinateur monocarte (SBC). Il peut être utilisé pour effectuer de nombreuses tâches sophistiquées. Mais cela augmentera la température du processeur des appareils Raspberry Pi. Ce qui n'est pas bon. Les performances du Raspberry Pi SBC souffriront de la température. Ceci est également connu sous le nom d'étranglement thermique.

Si la température du processeur de votre Raspberry Pi est supérieure à 80 degrés Celsius, vous verrez une icône de thermomètre dans le coin supérieur droit de l'écran. Officiellement, la Fondation Raspberry Pi recommande que la température de votre appareil Raspberry Pi soit inférieure à 85 degrés Celsius pour qu'il fonctionne correctement. C'est la limite maximale. Mais il commencerait à s'étrangler à 82 degrés Celsius.







Dans cet article, je vais vous montrer comment surveiller la température de votre Raspberry Pi. J'utiliserai le système d'exploitation Raspbian sur mon appareil Raspberry Pi 3 modèle B. Mais cela devrait fonctionner sur n'importe quel Raspberry Pi SBC avec le système d'exploitation Raspbian installé.



Vous pouvez mesurer la température centrale de votre appareil Raspberry Pi avec la commande suivante :



$vcgencmd mesure_temp

La température centrale actuelle est de 48,3 degrés Celsius, comme vous pouvez le voir dans la section marquée de la capture d'écran ci-dessous.





Comme vous pouvez le voir, chaque fois que j'exécute la commande, une valeur de température différente est affichée.



Analyse des données de température :

Les données de température que nous obtenons du vcgencmd la commande est une chaîne. Vous ne pouvez effectuer aucun calcul dessus. Nous pouvons facilement utiliser l'expression régulière pour extraire uniquement les données de température et effectuer tout type de calcul dessus.

Si vous souhaitez utiliser les données de température dans un script shell Bash, vous pouvez extraire les données de température avec egrep commande comme suit :

$vcgencmd mesure_temp| egrep -ou '[0-9] * . [0-9] *'

Comme vous pouvez le voir, seules les données de température sont imprimées. Il n'y a rien avant ou après.

Vous pouvez l'utiliser sur votre script shell (disons print_temp.sh ) comme suit:

$nanoprint_temp.sh

Ici, à la ligne 3, j'ai mis le température variable aux données de température analysées que je reçois du vcgencmd et saisir commander.

Sur la ligne 5, j'ai utilisé chassèrent pour imprimer le contenu du température variable à l'écran.

La ligne 1 est utilisée pour indiquer à Linux que le script doit être exécuté avec /bin/bash par défaut.

Maintenant, rendez le script exécutable avec la commande suivante :

$chmod+ x print_temp.sh

Maintenant, exécutez le script comme suit :

$./print_temp.sh

Comme vous pouvez le voir, la sortie souhaitée est imprimée à l'écran.

Écriture d'un script de surveillance de la température Raspberry Pi :

Maintenant que nous pouvons analyser les données de température que nous obtenons du vcgencmd commande, nous pouvons facilement écrire un script de surveillance de la température pour Raspberry Pi. Le script de surveillance de la température imprimera l'horodatage actuel et la température centrale toutes les secondes sur l'écran d'une manière bien formatée.

Tout d'abord, créez un nouveau script tempmon.sh avec la commande suivante :

$touchertempmon.sh

Maintenant, modifiez le tempmon.sh script avec la commande suivante :

$nanotempmon.sh

Maintenant, tapez les lignes de codes suivantes et enregistrez le fichier avec + X puis appuyez sur et suivie par .

Ici, à la ligne 4, imprimer est utilisé pour imprimer les chaînes TIMESTAMP et TEMP(degC) en tant que colonne de largeur fixe.

Sur la ligne 5, j'ai utilisé imprimer à nouveau pour imprimer une ligne pointillée juste pour rendre la sortie plus lisible et attrayante.

Sur la ligne 7-13, j'ai exécuté une boucle infinie pour imprimer les données de température toutes les secondes.

Sur la ligne 9, j'ai stocké les données de température analysées sur le température variable.

Sur la ligne 10, j'ai stocké les données d'horodatage que j'ai obtenues du Date commande sur le horodatage variable.

À la ligne 11, j'ai imprimé la date et l'heure au format d'horodatage et les données de température au format de colonne à largeur fixe.

À la ligne 12, j'ai utilisé la commande sleep 1 pour suspendre l'exécution du script pendant une seconde. Ensuite, la boucle continuera.

Maintenant, faites le script tempmon.sh exécutable avec la commande suivante :

$chmod+ x tempmon.sh

Enfin, exécutez le script tempmon.sh avec la commande suivante :

$./tempmon.sh

Comme vous pouvez le voir, le script du moniteur de température fonctionne parfaitement. Il imprime les données de température toutes les secondes.

Comme vous pouvez le voir, au fur et à mesure que j'augmentais la charge du système, la température augmentait légèrement.

Si vous souhaitez arrêter le script de surveillance de la température, appuyez sur + c . La surveillance de la température ne fonctionne plus comme vous pouvez le voir dans la capture d'écran ci-dessous.

Maintenant que le script de surveillance de la température fonctionne, copions-le dans /usr/bin annuaire. De cette façon, vous pouvez l'exécuter comme n'importe quelle autre commande Linux.

Pour copier le script tempmon.sh à la /usr/bin répertoire, exécutez la commande suivante :

$sudo cptempmon.sh/usr/un m/tempmon

Comme vous pouvez le voir, je peux exécuter le script de surveillance de la température de la même manière que j'exécute les commandes Linux standard.

Modifier tempmon pour imprimer les données de température en degrés Fahrenheit :

Vous pouvez facilement convertir les données de température de Celsius en Fahrenheit.

La formule largement connue pour calculer les températures en Fahrenheit à partir de Celsius est,

F =(9/5)*C+32
Ou
F =1,8 *C+32

Mais le problème est que le shell bash n'a pas les fonctions nécessaires pour effectuer des calculs en virgule flottante. Donc, vous devez vous fier à d'autres programmes tels que avant JC .

avant JC n'est pas installé sur Raspbian par défaut. Mais vous pouvez facilement l'installer avec la commande suivante :

$sudoapteinstaller avant JC

avant JC devrait être installé.

Maintenant, vous devez modifier le script de surveillance de la température et effectuer les calculs nécessaires pour convertir la température en Fahrenheit à partir de Celsius avec avant JC .

Modifier le tempmon.sh script avec la commande suivante :

$nanotempmon.sh

Maintenant, apportez les modifications comme indiqué dans la capture d'écran ci-dessous.

Ici, à la ligne 4, j'ai imprimé TEMP(F) à la place de TEMP(degC) .

A la ligne 9, j'ai changé la variable de température à tempC .

À la ligne 10, j'ai ajouté le résultat de la conversion Celsius en Fahrenheit à une variable tempF .

Enfin, j'ai imprimé la valeur de tempF variable au lieu de température à la ligne 12.

Maintenant, exécutez le script comme suit :

$./tempmon

Comme vous pouvez le voir, la température est imprimée en Fahrenheit.

C'est ainsi que vous surveillez la température dans Raspberry Pi. Merci d'avoir lu cet article.