树莓派改装计划
一直以来我都将一块树莓派作为我的服务器来使用,但是夏天到了,散热成了新的难题。既不想让风扇一直转(吵人),又想让 CPU 温度到达一定程度的时候启动,这确实有些棘手。查阅了相关达人的经验之后,我决定用继电器来解决这个问题。
思路
由于树莓派的控制脚针 GPIO 的电流并不足以带动风扇,所以使用继电器来间接控制风扇。pin2、pin4 直接连接到电源,不受 CPU 控制,这里的电流足够,而继电器的控制端接 pin12,以此来达到间接控制风扇的目的。
经历
电路
说干就干,在淘宝上不到四块钱买了一个继电器,非常便宜,这里注意要买 5V 电压的。
然后把电路接上,就像这样。此时的控制电路IN
接的是Pin12
也就是BCM
控制方式的18
端口。
程序
获取树莓派 CPU 温度非常简单,最终用 Python 编写。首先需要安装 GPIO 控制包。
sudo apt install rpi.gpio
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
def cpu_temp():
with open("/sys/class/thermal/thermal_zone0/temp", 'r') as f:
return float(f.read())/1000
GPIO.setup(18,GPIO.IN)
is_close = True
while True:
temp = cpu_temp()
if is_close:
if temp > 50.0:
print(f"temp={temp}, open the fan")
GPIO.setup(18,GPIO.OUT)
is_close = False
# 如果已经在开启着
else:
if temp < 45.0:
print(f'temp={temp}, close the fan')
GPIO.setup(18, GPIO.IN)
is_close = True
time.sleep(2)
print(f"temp={temp},is_close={is_close}")
最后使用Screen
在后台运行即可。
成功
我自己改装散热系统(从某个费零件里拆的散热铝片)之后,效果好了不少。
最后修改于 2021-07-25