用Python控制电脑风扇速度和检测内部温度?
因为我电脑的风扇声音很大,我想自己写个程序来“让它安静下来”,在不需要全速运转的时候。我想用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速度更重要。