Moniteur de température Raspberry Pi

Moniteur de température Raspberry Pi
Raspberry Pi est un puissant ordinateur à carte unique (SBC). Il peut être utilisé pour faire 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 souffrira en raison de la température. Ceci est également connu sous le nom de limitation thermique.

Si la température du processeur de votre framboise 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 Raspberry Pi Foundation recommande que la température de votre appareil Raspberry Pi soit inférieur à 85 degrés Celsius pour qu'il fonctionne correctement. C'est la limite maximale. Mais cela commencerait à étrangler à 82 degrés Celsius.

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

Mesurer la température de Raspberry Pi SBC:

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

$ VCGencmd Meason_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 montre une valeur de température différente.

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 pas effectuer de calcul dessus. Nous pouvons facilement utiliser une 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 de shell bash, vous pouvez extraire les données de température avec faire un coup de pouce Commande comme suit:

$ VCGencmd Measure_Temp | egrep -o '[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 de shell (disons print_temp.shot) comme suit:

$ nano print_temp.shot

Ici, sur la ligne 3, j'ai réglé le temp variable aux données de température analysées que j'obtiens du vcGencmd et grep commande.

En ligne 5, j'ai utilisé écho pour imprimer le contenu du temp variable à l'écran.

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

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

$ chmod + x print_temp.shot

Maintenant, exécutez le script comme suit:

$ ./ print_temp.shot

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 à chaque seconde sur l'écran de manière bien formatée.

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

$ Touch Tempmon.shot

Maintenant, modifiez le tempon.shot script avec la commande suivante:

$ nano tempmon.shot

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

Ici, sur la ligne 4, printf est utilisé pour imprimer les cordes horodato et température (DEGC) comme colonne de largeur fixe.

En ligne 5, j'ai utilisé printf encore une fois pour imprimer une ligne en pointillés juste pour rendre la sortie plus lisible et attrayante.

En ligne 7-13, j'ai exécuté une boucle infinie pour imprimer les données de température à chaque seconde.

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

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

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

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

Maintenant, faites le script tempon.shot Exécutable avec la commande suivante:

$ chmod + x tempmon.shot

Enfin, exécutez le script tempon.shot avec la commande suivante:

$ ./ tempmon.shot

Comme vous pouvez le voir, le script de moniteur de température fonctionne parfaitement. Il imprime les données de température à chaque seconde.

Comme vous pouvez le voir, à mesure que j'ai augmenté la charge du système, la température a légèrement augmenté.

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, copiez-le à / usr / bin annuaire. De cette façon, vous pouvez l'exécuter comme toutes les autres commandes Linux.

Pour copier le script tempon.shot au / usr / bin répertoire, exécutez la commande suivante:

$ sudo cp tempmon.sh / usr / bin / tempmon

Comme vous pouvez le voir, je peux exécuter le script de surveillance de la température tout comme j'exécute les commandes Linux standard.

Modification tempon pour l'impression des données de température dans Fahrenheit:

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

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

F = (9/5) * C + 32
Ou
F = 1.8 * C + 32

Mais le problème est que Bash Shell n'a pas les fonctions nécessaires pour effectuer des calculs de points flottants. Vous devez donc compter sur 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:

$ sudo apt install bc

avant JC devrait être installé.

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

Modifier le tempon.shot script avec la commande suivante:

$ nano tempmon.shot

Maintenant, effectuez les modifications marquées dans la capture d'écran ci-dessous.

Ici, sur la ligne 4, j'ai imprimé Temp (f) au lieu de Temps (DEGC).

Sur la ligne 9, j'ai changé la variable de temp pour tempc.

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

Enfin, j'ai imprimé la valeur de tempf variable au lieu de temp en ligne 12.

Maintenant, exécutez le script comme suit:

$ ./ tempmon

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

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