让树莓派根据温度自动控制散热风扇的启停

众所周知,我们一般给Pi装的散热时都是自己插在电源上的,要转就一直转。最近一直在Pi上开个MC的服务器,Pi2的CPU温度在不开风扇时经常飙到50+,而一直开着风扇有太吵,所以就有了这个让树莓派自动控制风扇的东西。

 

原理

硬件上用三极管使树莓派能通过gpio来控制风扇的启停。然后在Pi上写一个很简单的Python小程序,实现温度较高时启动风扇,较低时关闭。

硬件连接

如图所示

软件部分

#!/usr/bin/python2
#coding:utf8

#自动风扇控制程序,使用wiringPi的gpio命令来操作GPIO

import commands, time

#控制风扇的GPIO
FAN_GPIO=15

commands.getoutput('sudo gpio mode '+str(FAN_GPIO)+' output')

while True:

    # 获取CPU温度
    tmpFile = open( '/sys/class/thermal/thermal_zone0/temp' )
    cpu_temp_raw = tmpFile.read()
    tmpFile.close()
    cpu_temp = round(float(cpu_temp_raw)/1000, 1)

    #如果温度大于45`C,就启动风扇
    if cpu_temp>=45.0 :
        commands.getoutput('sudo gpio write '+str(FAN_GPIO)+' 0')

    #如果温度小于42`C,就关闭风扇
    if cpu_temp<42.0 :
        commands.getoutput('sudo gpio write '+str(FAN_GPIO)+' 1')

    time.sleep(5)

温度判断部分使用了双阈值,防止老在临界点徘徊

 

0

作者:WuSiYu

学生,Web开发者,智能硬件&IOT爱好者

13条评论

  1. 你好,感谢您的分享。我也想买个树莓派放在家里24小时开机,可是看不懂您的电路图,能通俗讲解一下吗?谢谢。

    0
  2. 为什么启动风扇用低电平,关闭风扇用高电平?没有想明白。b端有电流不是才导通么?

    0
  3. 你的树莓派能跑Minecraft游戏?刚买的一个raspiberry pi 4,打开一个浏览器都非常的卡顿,键盘输入有时有10几秒的延迟,简直受不了

    0

发表评论

邮箱地址不会被公开。 必填项已用*标注