蓝天白云
摩天 Lv2  
楼主
树莓派散热片安装与风扇接线方法/ 和自动温控方法
查看:13473   回复:0   发布于2019-05-17 12:36:42
树莓派3B+的发热量要远远高于树莓派2和树莓派3. 可以在这里参考下之前的 树莓派2和树莓派3的对比:树莓派2 vs 树莓派3(性能、发热量等)。3B+在这个基础上在增加了10%左右。


Image

树莓派可以24小时开着,耗电非常少。然而还是会发热的,主板超过70°温度以上就会触发它过热关机了,尤其是夏天快到了,很容易就把树莓派给烧了。所以给主板做好散热是很有必要


查询树莓派CPU温度命令:vcgencmd measure_temp


Image


散热片方案一:  贴散热片


推荐这种三片的,可以分别贴在树莓派的三个芯片上面。


主板三个芯片分别是:  正面最大的是CPU, 第二个是以太网卡,背面是内存芯片, 之前看到网友说主芯片是不需要贴散热片的这样会导致降低散热效果,经过我们多次测试然并不是这样的。在3B+的CPU芯片上在加一个散热片是可以提升散热效果10%,并且使用效果不会有任何影响。


Image

Image

树莓派3B+散热片贴法:

ImageImage

树莓派4B散热片贴法:

ImageImage



散热片方案一:  散热片风扇


考虑到更热带地区天气恶劣的情况和长时间开机运行,建议再加一个风扇。风扇通常有很多种,风扇的大小建议选择长宽30mm两线制的,一般红色线是正极,黑色线是负极。 所以在树莓派上使用时,红色线应插到GPIO针脚5V上,黑色线应插到针脚GND上。  如果你不清楚树莓派的针脚定义请参考下面图。一定

不要插错了,正负插反了容易损坏风扇和主板的。

风扇的LOGO标签是出风口,可以将风扇LOGO对着芯片吹风, 也可以将风扇LOGO朝外,这样也能将主板热量吸走排出去。具体装法可以自定!


ImageImage

 Image



四:DIY温控启停风扇

我们还可以DIY根据CPU温度自动控制风扇起停的方案。原理就是通过树莓派GPIO来控制,但是GPIO口输出电流很低,无法直接带动风扇,所以还需要一个三极管来放大电流。 我们这里采用型号是S9012PNP,价格差不多是3分钱一个,非常便宜。

接线方法:

三极管的E接正极(右上角第二个),B接GPIO口(建议用21号口,最右下方,比较好找),C接风扇的负极(右上角第三个)。B口建议再加上一个1K的电阻,防止三极管过热。

ImageImage

温度传感器是CPU内置的,通过读取系统的
/sys/class/thermal/thermal_zone0/temp文件就可以获取到温度。用Python代码就是

def cpu_temp():
with open("/sys/class/thermal/thermal_zone0/temp", 'r') as f:
return float(f.read())/1000

而GPIO口的电压高低可以通过python的RPi.GPIO库来控制。比如想设置IO-21号口为高电平,代码是

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(21, GPIO.OUT)
GPIO.output(21, GPIO.HIGH)

整合起来的代码如下

import sys
import time
try:
import RPi.GPIO as GPIO
except RuntimeError:
print("Error importing RPi.GPIO! This is probably because you need superuser privileges. You can achieve this by using 'sudo' to run your script")


def cpu_temp():
with open("/sys/class/thermal/thermal_zone0/temp", 'r') as f:
return float(f.read())/1000


def main():
channel = 18
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)

# close air fan first
GPIO.setup(channel, GPIO.OUT, initial=GPIO.HIGH)
is_close = True
while True:
temp = cpu_temp()
if is_close:
if temp > 45.0:
print time.ctime(), temp, 'open air fan'
GPIO.output(channel, GPIO.HIGH)
is_close = False
else:
if temp < 38.0:
print time.ctime(), temp, 'close air fan'
GPIO.output(channel, GPIO.LOW)
is_close = True

time.sleep(2.0)
print time.ctime(), temp


if __name__ == '__main__':
main()

代码中使用了双区间,从而避免了温度变化时,风扇状态的频繁变化。

之后就真的就可以整夜整夜的开着树莓派,而不用担心过热的问题了。每当树莓派CPU高速运转的时候,风扇就会转起来,其他时候,风扇就会安静下来。用手感觉一下CPU的温度,凉凉的,非常好。

我很帅 
回复列表
默认   热门   正序   倒序

回复: 树莓派散热片安装与风扇接线方法/ 和自动温控方法

Powered by Raspigeek RASPIGEEK_VERSION

©2015 - 2020 树莓派极客论坛

官方网站 联系站长

您的IP:18.232.188.89,2020-07-14 23:13:16,Processed in 0.05156 second(s).