使用python控制风扇速度并检测电脑的内部温度?

时间:2010-03-19 18:07:37

标签: python cpu

由于我的电脑风扇非常响亮,我不想让自己成为一个程序,当它不需要全速运行时“关闭它”。我想用python制作它,那么有没有可以检测温度和/或设置风扇速度的模块?

3 个答案:

答案 0 :(得分:5)

不要使用python或WMI。

如果你有Windows,并且你不能使用speedfan,最好在BIOS层使用Microsoft's ASL Compiler完成。使用它,您可以为各种风扇速度设置临时阈值。它工作得很好。但要小心。这将使您的保修失效并且有充分的理由。不正确或不小心使用此工具,您可以将风扇设置为永不开启,这将直接烹饪您的组件。因此,在使用此工具之前,请先阅读并获取温度监控器(软件应用程序)。

我的笔记本电脑出现了这个问题,太热了。在调查之后,结果发现一个主要的罪魁祸首是图形芯片,它设置为始终打开,默认安装Windows Vista驱动程序。不是CPU产生了热量。这是GPU。显然它是这样设置的,以支持Aero图形。所以除了做ASL温度/风扇速度之外,我拒绝了GPU。我还调低了时钟速度,因为沉默和酷的温度对我来说比潜在的CPU速度更重要。

This super user post describes the problem & the solutions I used in more detail.

答案 1 :(得分:0)

您可以在WMI中执行此操作。有一个相关问题here

答案 2 :(得分:-1)

我发现至少有些有趣的东西。它不控制风扇的“混乱”,也不控制风扇所依赖的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()

但是,请不要取消注释内存部分,否则将使您的PC崩溃。这是在i7 8core逻辑cpu PC上使用python 3.5版本