逍遥游

树莓派---利用三极管控制散热风扇

背景

正文之前要先有一段废话。。。

买树莓派的时候,看到外壳带散热风扇好便宜,再加上之前把玩实验室树莓派的时候,芯片还是很热的,于是就顺便买了一个。
到手之后就装上了,风扇转的很欢。只是目前树莓派主要是放在寝室当24小时热点和梯子,晚上风扇还是一直转的话,有点吵,想着能不能通过GPIO控制风扇开关。然后找到一堆教程,除了继电器之外,用三极管控制的方法真是让人眼前一亮,经济又实惠。

注:我对电子知识完全不懂,都是按照网上教程做的,略有修改

预览图

先放图,懒得弄动图了
效果图

目前稳定运行48小时了,没有出现什么状况

硬件

散热风扇、三极管(S8050)、母对母杜邦线

这几个器件都不贵,最好是找人要或者凑单,单独买的话还要出邮费
其他的三极管应该也可以,但是我找到的教程都是用的这个

接线

注意:一定要先确认引脚再连线,烧坏风扇事小,万一一不留神把屋子烧了。。。(话说接错线之后效果很明显,立马一股焦味)

引脚介绍

树莓派3 GPIO引脚参考: 树莓派 3 UART 及 GPIO 针脚定义

风扇:我买的风扇红线是接5V、黑线接地,请参照实际情况区分
三极管:把平的那面对准自己,三个引脚分别是E、B、C

三极管顾名思义,它有3个极。分别是E发射机、B基极、C集电极。可以理解为E极是正极、C极是负极、B极是信号极控制是否通电。和二极管一样,正极接电源正极,负极接电源的负极。S8050的引脚示意图如下:
transistor pins

接线方式

风扇红线 接 树莓派5V,比如4号引脚;
风扇黑线 接 三极管C;
三极管E极 接 树莓派0V,比如6号引脚;
三极管B极 接 GPIO, 我用的8号引脚GPIO14;
这样接正好连在一块

还看到另外一种接线方式是风扇黑线接GPIO接地脚,用GPIO来控制电源输入,但是实际操作发现风扇无法转动。

控制程序(Python)

脚本太长,不贴了。 链接:fan.py

程序主要过程是:每10s 检查一次CPU温度,如果超过50度就开启风扇,低于45度关闭。可以自己修改逻辑,比如加上夜间静音模式。

默认是把输出写到 /var/log/fan_control.log 文件的,可以通过配置 IS_DEBUG=True 来直接输出到终端

开机运行

为了实现开机自动运行,可以把启动脚本写在rc.local中

参考

树莓派用开关三极管控制散热风扇

gpio控制风扇转速 pwm方案

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


多说停止服务,disqus引导注册太过分,暂时不上评论系统了。有机会自己造轮子吧。邮箱:input@newnius.com