Температура CPU, GPU, RAM, с помощью Python

Температура CPU, GPU, RAM, с помощью Python

Автор: Рамис | Статьи 15 марта 2023

В этом маленьком руководстве я покажу как с помощью Python получить информацию всех датчиков температуры доступных в системе (температура процессора, видеокарты, ОЗУ и т.д.)

Шаг первый. Скачайте бесплатное программное обеспечение Open Hardware Monitor. Извлеките из архива файл OpenHardwareMonitorLib.dll и поместите его в каталог c будущим проектом.

Шаг второй. Установите пакет pythonnet, который позволит взаимодействовать с DLL.

pip install pythonnet

Шаг третий. Создайте, и запустите представленный ниже Python скрипт от имени администратора.

Вам нужно запустить скрипт от имени администратора, в противном случае код не будет работать должным образом и может не отобразить данные датчиков температуры.

import clr
import os

hwtypes = ['Mainboard','SuperIO','CPU','RAM','GpuNvidia','GpuAti','TBalancer','Heatmaster','HDD']

def initialize_openhardwaremonitor():
    file = rf'{os.getcwd()}\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):
    if sensor.Value:
        if str(sensor.SensorType) == 'Temperature':
            result = u'{} {} Temperature Sensor #{} {} - {}\u00B0C'\
                    .format(hwtypes[sensor.Hardware.HardwareType], 
                            sensor.Hardware.Name, sensor.Index, 
                            sensor.Name, sensor.Value
                    )
            print(result)

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

Результат.

Temperature Sensor python

Комментарии

Markdown
Войти