Le processeur devient assez chaud lors de l'utilisation de Raspberry Pi 4. Je voulais savoir à quel point le processeur serait chaud, j'ai donc créé un programme qui affiche la température du processeur toutes les 5 secondes en utilisant Python3.
OS : Ubuntu server20.04 + Xubuntu Desktop(gdm3)
cpu_temperature.py
import time
import threading
import subprocess
def schedule(interval, func, wait = True):
base_time = time.time()
next_time = 0
while True:
t = threading.Thread(target = func)
t.start()
if wait:
t.join()
next_time = ((base_time - time.time()) % interval) or interval
time.sleep(next_time)
def get_cpu_temperature():
output = subprocess.check_output("cat /sys/class/thermal/thermal_zone0/temp", shell = True, encording = "UTF-8")
return int(output) / 1000
def print_cpu_temperature():
print(get_cpu_temperature())
if __name__ == "__main__":
schedule(5, print_cpu_temperature)
J'ai fait référence à l'article suivant. Exécuter le traitement en Python à intervalles réguliers Ceci est un pakuri de la fonction de planification introduite dans l'article. Vous pouvez spécifier le nombre de secondes que vous souhaitez exécuter avec intervalle et la fonction que vous souhaitez exécuter avec func. Pour plus de détails, veuillez consulter l'article à l'URL.
J'ai fait référence à l'article suivant. J'ai essayé d'obtenir la température du processeur de Raspberry Pi (Raspbian) sans utiliser cat Exécuter la commande depuis Python Il semble que la température du processeur puisse être obtenue en utilisant la méthode vcgencmd, mais cette fois j'ai décidé d'utiliser cat au lieu d'utiliser cette méthode. Si vous utilisez cat, il sera affiché à 1000 fois la valeur, il est donc difficile de comprendre si vous l'affichez tel quel.
Il existe différentes manières d'appeler des commandes Linux depuis Python3, mais cette fois, je voulais traiter la chaîne de caractères obtenue à l'aide de cat en Python, j'ai donc décidé d'utiliser la fonction check_output.
Obtenez la température du processeur en utilisant cat avec la fonction check_output. Puisque la valeur est multipliée par 1000 telle quelle, j'ai changé la chaîne de caractères en type int et l'ai divisée par 1000 pour la faire revenir. Si vous utilisez vcgencmd, vous pouvez le renvoyer tel quel.
C'est une fonction qui imprime uniquement la valeur obtenue par la fonction get_cput_temperature. À l'origine, j'ai essayé de dessiner un graphique en utilisant la fonction de planification et la fonction get_cpu_temperature, mais avant cela, j'avais des problèmes si les deux fonctions ci-dessus ne fonctionnaient pas correctement, j'ai donc créé cette fonction.
Cela signifie exécuter la fonction print_cpu_temperature toutes les 5 secondes. Si vous changez la partie 5 en 10, l'intervalle sera de 10 secondes.
Recommended Posts