我们会使用 Python 脚本控制 GPIO 风扇,然后用 systemd 设置开机自启服务。
✅ 第一步:Python 脚本
将以下脚本保存为:/home/pi/fan_control.py
#!/usr/bin/env python3
import RPi.GPIO as GPIO
import time
FAN_PIN = 18 # 根据你的接线调整 GPIO 引脚
TEMP_THRESHOLD = 45.0 # 触发风扇的温度(摄氏度)
GPIO.setmode(GPIO.BCM)
GPIO.setup(FAN_PIN, GPIO.OUT)
def get_cpu_temp():
with open("/sys/class/thermal/thermal_zone0/temp", "r") as f:
return int(f.read()) / 1000
try:
while True:
temp = get_cpu_temp()
if temp >= TEMP_THRESHOLD:
GPIO.output(FAN_PIN, GPIO.HIGH)
else:
GPIO.output(FAN_PIN, GPIO.LOW)
time.sleep(5)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
给脚本执行权限:
chmod +x /home/pi/fan_control.py
✅ 第二步:创建 systemd 服务
创建一个 systemd 单元文件:
sudo nano /etc/systemd/system/fancontrol.service
粘贴以下内容:
[Unit]
Description=GPIO Fan Control Service
After=multi-user.target
[Service]
ExecStart=/usr/bin/python3 /home/pi/fan_control.py
Restart=always
User=pi
[Install]
WantedBy=multi-user.target
✅ 第三步:启用并启动服务
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable fancontrol.service
sudo systemctl start fancontrol.service
✅ 检查状态
systemctl status fancontrol.service
如果看到 Active: active (running),说明脚本已经运行。
✅ 附加说明
- 风扇接 GPIO18 和 GND;
- 可以根据需要修改脚本中的 GPIO 引脚和温度;
- 如果你用的不是
pi
用户,需要修改 service 中的User=
行。