Node JS,读取CPU温度

13

我目前正在一个项目中,想要读取我的CPU温度,但是不知道如何在不使用外部程序(例如“CpuTemp”等)的情况下正确地实现它。根据一些来源,我应该能够使用Node JS和一个包来读取CPU温度。我已经成功通过“OS”包读取了PC的总内存和运行时间。是否有其他的包可以用来显示CPU温度,或者我应该采取其他措施进行读取?

有人告诉我应该使用Node JS和WMI一起使用,但我不知道如何继续。


如果你正在运行Linux,你可能会有类似这样的命令:cat /sys/class/thermal/thermal_zone0/temp。将结果除以1000,即可得到CPU温度。 - dpetrini
1
相当确信这是一个Windows问题(提到WMI吗?) - Davin Tryon
是的,我在谈论Windows,因为我已经知道如何在Linux上做这件事了。@dpetrini - darclander
5个回答

12

这里有一个 NPM 包,可以获取 CPU 温度以及其他统计信息: https://www.npmjs.com/package/systeminformation
该包有详细的文档,会告诉你具体应该怎么做。否则,你也可以轻松地通过谷歌搜索错误代码或遇到的其他问题。


6
如果您正在运行Linux,则可以执行以下步骤:
1. 创建一个名为"temp.js"的文件。 2. 在文件中插入以下代码:
var spawn = require('child_process').spawn;

temp = spawn('cat', ['/sys/class/thermal/thermal_zone0/temp']);

temp.stdout.on('data', function(data) {
        console.log('Result: ' + data/1000 + ' degrees Celcius');
});

在控制台中运行:

node temp.js

结果应该类似于以下内容:
Result: 46.16 degrees Celcius

是的,我已经了解了这个解决方案,但由于该项目是为Windows制作的,我认为我必须通过WMI或Node Package来工作。 - darclander

6

1
您可以使用以下代码,它每5秒获取一次温度-
const si = require('systeminformation');
setInterval(()=>{
    si.cpuTemperature()
        .then(tmp=>{
            console.log(tmp);
        });
    },5000);

注意:系统应支持此API,否则输出将显示-1。


1
我不确定这是否是您的意思,但是当我以非管理员身份运行它时,我也得到了“ -1”作为输出? - darclander

0

WINDOWS 10用户遇到CPU温度问题的请求。 得到类似这样的东西 { main: -1, cores: [], max: -1 }

我以管理员身份运行了cmd并通过那里执行了脚本,这为我解决了这个问题。

Windows温度,电池等wmic-用于确定 温度和电池有时需要使用管理员权限运行。 因此,如果您没有获得任何值,请尝试再次运行它 相应的特权。如果仍然没有获得任何值,则您的系统 可能不支持此功能。在某些情况下,我们还发现 wmic返回不正确的温度值。


该问题与WMI权限问题无关。 - Javier Brea
1
即使这个回答不是一个答案,它还是帮助了我解决了一个问题。也许它应该是一条评论? - darclander

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接