【问题标题】:How do I get the NVIDIA core temperature in an integer value?如何以整数值获取 NVIDIA 核心温度?
【发布时间】:2014-04-06 12:30:42
【问题描述】:

我正在学习 Arduino 微控制器课程,并且正在完成我的最后一个项目:根据外壳温度工作的自动计算机冷却系统。

我无法使用以下来源获取我的 NVIDIA GPU 核心温度:this MSDN linkthis NVIDIA link。如何获取 GPU 的温度值?

我的 C# 知识很基础,我无法从那本手册或 MSDN 中的代码示例中脱颖而出。

【问题讨论】:

  • 为什么不在机箱中使用一个或多个热敏电阻来测量温度,所以它是一个独立的系统,不依赖系统中的东西。
  • 读数与真正的核心温度确实不同,将 gpu 核心上的探针与来自 OpenHardwareMonitor 的实际软件数据进行比较。我确实进行了一般情况测量,但我根据实际核心温度控制 GPU 风扇。

标签: c# arduino gpu nvidia temperature


【解决方案1】:

经过长时间的搜索,我将继续回答我自己的问题,我找到了一种获取数据的方法。

使用他们的开源链接中的 OpenHardwareMonitor.dll,我能够得到我需要的东西。

这是我在 windows c# 应用程序中使用的代码(它可能不是最好的方法,但它可以完成工作。

希望有人觉得这有帮助:

using OpenHardwareMonitor.Hardware;

。 . .

public partial class mainWindow : Form
{

    Computer myComputer;

    public mainWindow()
    {
        InitializeComponent();

        myComputer = new Computer();
        myComputer.Open();
        myComputer.GPUEnabled = true;
        myComputer.CPUEnabled = true;
        foreach (var hardwareItem in myComputer.Hardware)
        {
            if (hardwareItem.HardwareType == HardwareType.GpuNvidia)
            {
                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        GPUtemp.Text = String.Format(sensor.Value + "°C");
                    }
                }
            }
            if (hardwareItem.HardwareType == HardwareType.CPU)
            {
                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        CPUtemp.Text = String.Format(sensor.Value + "°C");
                    }
                }
            }

        }
    }

    private void valueRefresh_Tick(object sender, EventArgs e)
    {
        myComputer = new Computer();
        myComputer.Open();
        myComputer.GPUEnabled = true;
        myComputer.CPUEnabled = true;
        foreach (var hardwareItem in myComputer.Hardware)
        {
            if (hardwareItem.HardwareType == HardwareType.GpuNvidia)
            {
                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        GPUtemp.Text = String.Format(sensor.Value.ToString()); // write the value to a lable on the form
                    }
                }
            }
            if (hardwareItem.HardwareType == HardwareType.CPU)
            {
                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        CPUtemp.Text = String.Format(sensor.Value.ToString());    // write the value to a lable on the form

                    }
                }
            }

        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    相关资源
    最近更新 更多