背景
买树莓派的时候,看到外壳带散热风扇好便宜,再加上之前把玩实验室树莓派的时候,芯片还是很热的,于是就顺便买了一个。
到手之后就装上了,风扇转的很欢。只是目前树莓派主要是放在寝室当24小时热点和梯子,晚上风扇还是一直转的话,有点吵,想着能不能通过GPIO控制风扇开关。然后找到一堆教程,除了继电器之外,用三极管控制的方法真是让人眼前一亮,经济又实惠。
注:我对电子知识完全不懂,都是按照网上教程做的,略有修改
预览图
先放图,懒得弄动图了
目前稳定运行48小时了,没有出现什么状况
硬件
散热风扇、三极管(S8050)、母对母杜邦线
这几个器件都不贵,最好是找人要或者凑单,单独买的话还要出邮费
其他的三极管应该也可以,但是我找到的教程都是用的这个
接线
注意:一定要先确认引脚再连线,烧坏风扇事小,万一一不留神把屋子烧了。。。(话说接错线之后效果很明显,立马一股焦味)
引脚介绍
树莓派3 GPIO引脚参考: 树莓派 3 UART 及 GPIO 针脚定义
风扇:我买的风扇红线是接5V、黑线接地,请参照实际情况区分
三极管:把平的那面对准自己,三个引脚分别是E、B、C
三极管顾名思义,它有3个极。分别是E发射机、B基极、C集电极。可以理解为E极是正极、C极是负极、B极是信号极控制是否通电。和二极管一样,正极接电源正极,负极接电源的负极。S8050的引脚示意图如下:
接线方式
风扇红线 接 树莓派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中