用Python控制电脑风扇速度和检测内部温度?

9 投票
3 回答
13472 浏览
提问于 2025-04-15 20:36

因为我电脑的风扇声音很大,我想自己写个程序来“让它安静下来”,在不需要全速运转的时候。我想用Python来做这个,有没有什么模块可以检测温度或者设置风扇速度呢?

3 个回答

-3

我发现了一些有趣的东西。它并不是直接控制风扇,而是控制 CPU 的温度,风扇是根据这个温度来工作的。我用这个方法来清理风扇。只需运行这段代码,然后用气吹清洁器,就可以清理风扇了。

import multiprocessing

def worker():
    """worker function"""
    print ('Worker')
    k = []

    # of course in an infinite loop
    while True:
        # lets use the cpu mathematical power, to increse its temp
        l = (2*33) >> 3 
        # it is also possible to consume memory..
        # but it will crash windows 8.1 after a while
        # k.append(l)
        pass
    return

if __name__ == '__main__':
    jobs = []

    cpu = multiprocessing.cpu_count()
    print("CPU count=" + str(cpu))
    for i in range(cpu):
        p = multiprocessing.Process(target=worker)
        jobs.append(p)
        p.start()

不过,千万不要取消注释内存的部分,这样会导致你的电脑崩溃。这段代码是在 i7 8核逻辑 CPU 的电脑上使用 Python 3.5 版本运行的。

6

不要使用Python或者WMI。

如果你用的是Windows系统,而且不能使用SpeedFan,那么最好在BIOS层面上进行设置,可以使用微软的ASL编译器。通过这个工具,你可以为不同的风扇速度设置温度阈值。效果很好。不过要小心,这样做会让你的保修失效,原因很简单。如果你不小心使用这个工具,可能会把风扇设置成永远不转,这样你的电脑零件就会因为过热而损坏。所以在使用这个工具之前,最好先了解一下相关知识,并且安装一个温度监控的软件。

我在我的笔记本上也遇到过这个问题,热得厉害。经过调查发现,主要原因是显卡芯片,它在默认的Windows Vista驱动安装下是一直开启的。产生热量的不是CPU,而是GPU。显然这样设置是为了支持Aero图形效果。因此,除了使用ASL来调整温度和风扇速度外,我还降低了显卡的性能。同时,我也降低了时钟速度,因为对我来说,安静和低温比潜在的CPU速度更重要。

这篇超级用户的帖子详细描述了我遇到的问题和解决方案。

1

你可以试试用 WMI 来实现这个功能。这里还有一个相关的问题 在这里

撰写回答