Python obtiene la temperatura de la CPU

El objetivo principal de este artículo es demostrar cómo leer y mostrar la temperatura de la CPU con la ayuda de la biblioteca pythonnet en Python.


Python obtiene la temperatura de la CPU

Según el tipo de aplicación que esté diseñando, es posible que desee controlar los recursos de la máquina en la que se ejecuta el programa.

Esto puede suceder por varias razones. Tal vez necesite que su programa se comporte de cierta manera cuando los recursos del sistema alcancen un cierto umbral.

Los casos de uso pueden variar de un programa a otro.

Entre estos recursos del sistema, la temperatura de la CPU tiene importancia en aplicaciones y casos de uso específicos.

Tal vez su programa esté sobrecargando la CPU y usando muchos recursos innecesariamente. Es posible que desee tomar medidas para mitigar este problema, por lo que es posible que deba controlar la temperatura de los diferentes componentes de la máquina, siendo la CPU uno de ellos.

Para resolver este problema específico, podemos usar la DLL (Biblioteca de enlaces dinámicos) proporcionada por OpenHardwareMonitor.

Esta sección se divide en las siguientes secciones:

  1. Instalar
  2. Código
  3. monitor

Instalar

Primero, necesitamos descargar pythonnet para poder interactuar con la DLL. Para hacer esto, ejecute el siguiente comando en la Terminal.

pip install pythonnet

Esto dará el siguiente resultado:

Collecting pythonnet
  Downloading pythonnet-3.0.0.post1-py3-none-any.whl (279 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 279.4/279.4 kB 639.3 kB/s eta 0:00:00
Requirement already satisfied: clr-loader<0.3.0,>=0.2.2 in c:\program files\python310\lib\site-packages (from pythonnet) (0.2.4)
Requirement already satisfied: cffi>=1.13 in c:\program files\python310\lib\site-packages (from clr-loader<0.3.0,>=0.2.2->pythonnet) (1.15.1)
Requirement already satisfied: pycparser in c:\program files\python310\lib\site-packages (from cffi>=1.13->clr-loader<0.3.0,>=0.2.2->pythonnet) (2.21)
Installing collected packages: pythonnet
Successfully installed pythonnet-3.0.0.post1

Después de instalar pythonnet con éxito, es hora de descargar OpenHardwareMonitor. Descarga el software desde aquí.

Una vez completada la descarga, instale la aplicación. después:

  • Cambie al directorio donde está instalado OpenHardwareMonitor.
  • Busque OpenHardwareMonitorLib.dll en los archivos de la carpeta.
  • Copie en la carpeta deseada, preferiblemente donde se almacenan sus scripts de python.

Código

Una vez que se completa el proceso de instalación, es hora de implementar el código real.

Considere el siguiente código:

import clr #package pythonnet, not clr

openhardwaremonitor_sensortypes = ['Voltage','Clock','Temperature','Load','Fan','Flow','Control','Level','Factor','Power','Data','SmallData']

def initialize_openhardwaremonitor():
    file = 'D:\\Path_TO_DLL\\OpenHardwareMonitorLib.dll'
   
    clr.AddReference(file)
   
    from OpenHardwareMonitor import Hardware

    handle = Hardware.Computer()
    handle.MainboardEnabled = True
    handle.CPUEnabled = True
    handle.RAMEnabled = True
    handle.GPUEnabled = True
    handle.HDDEnabled = True

    handle.Open()
    return handle

def fetch_stats(handle):
    for i in handle.Hardware:
        i.Update()
        for sensor in i.Sensors:
            parse_sensor(sensor)
           
        for j in i.SubHardware:
            j.Update()
            for subsensor in j.Sensors:
                parse_sensor(subsensor)

def parse_sensor(sensor):
    hardwaretypes = openhardwaremonitor_hwtypes
   
    if sensor.Value is not None:
        if str(sensor.SensorType) == 'Temperature':
            print(u"%s %s Temperature Sensor #%i %s - %s\u00B0C" % (hardwaretypes[sensor.Hardware.HardwareType], sensor.Hardware.Name, sensor.Index, sensor.Name, sensor.Value))



if __name__ == "__main__":
    print("OpenHardwareMonitor:")
    HardwareHandle = initialize_openhardwaremonitor()
    fetch_stats(HardwareHandle)

Usando el módulo clr, podemos interactuar con una DLL .NET llamada OpenHardwareMonitorLib.dll. Podemos continuar usando sus funciones y propiedades en nuestro código Python, eventualmente leyendo la temperatura de la CPU y otros componentes que deseemos ver.

Para obtener una introducción detallada de lo que representa cada atributo y su función, consulte la documentación de OpenHardwareMonitor en Github.

Al igual que con cualquier otra funcionalidad personalizada, se recomienda revisar el código para obtener una mejor comprensión y comprensión del funcionamiento interno del código.

monitor

Una vez escrito el código, es hora de ejecutar el programa. Recuerde que debe ejecutar este script como administrador; de lo contrario, el código no funcionará correctamente y es posible que las lecturas necesarias no se muestren correctamente o en absoluto.

Abra un símbolo del sistema o cualquier terminal de su elección y ejecute el script. Para el código anterior, ejecutar como administrador produce el siguiente resultado:

OpenHardwareMonitor:                                                                                                    CPU Intel Core i7-4800MQ Temperature Sensor #0 CPU Core #1 - 60.0°C                                                     CPU Intel Core i7-4800MQ Temperature Sensor #1 CPU Core #2 - 66.0°C                                                     CPU Intel Core i7-4800MQ Temperature Sensor #2 CPU Core #3 - 58.0°C                                                     CPU Intel Core i7-4800MQ Temperature Sensor #3 CPU Core #4 - 58.0°C                                                     CPU Intel Core i7-4800MQ Temperature Sensor #4 CPU Package - 66.0°C                                                     GpuNvidia NVIDIA Quadro K1100M Temperature Sensor #0 GPU Core - 43.0°C                                                  HDD ST500LT012-9WS142 Temperature Sensor #0 Temperature - 37.0°C

Supongo que te gusta

Origin blog.csdn.net/fengqianlang/article/details/132136419
Recomendado
Clasificación