菜单

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

2015年9月25日 - RaspBerry Pi 相关

众所周知,我们一般给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

让树莓派根据温度自动控制散热风扇的启停》有13个想法

Mike

挺好,风扇声音其实还可以

0
回复
hcr

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

0
回复
    WuSiYu

    补了张图,黑色的那个是一个PNP型的三极管,比如S8550。

    0
    回复
      hcr

      请问风扇副是接E极还是C极,两张图好像是反的。

      0
      回复
        WuSiYu

        均可,不影响

        0
        回复
石樱灯笼

图片都看不到了

0
回复
    WuSiYu

    已补

    0
    回复
  • Pingback 引用通告: Raspberry Pi 2 功耗实测 » WuSiYu Blog

  • 赵仲

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

    0
    回复
    WuSiYu

    因为用的是PNP三极管,也就是“低电平导通”,如果用NPN的三极管就是“高电平导通”

    1+
    回复
    Poplar

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

    0
    回复
      WuSiYu

      mc本身大概是跑不了的,mc服务器倒是可以

      0
      回复

    Raspberry Pi 2 功耗实测 » WuSiYu Blog进行回复 取消回复

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