内容过于简单,加上博主很懒不做详细介绍了
无聊,突发奇想,树莓派的散热风扇可否当检测到核心芯片温度过高的时候开始启动散热,温度下来后开始停止工作做。
动手试试
需要一个元器件PNP三极管,基极连接BOARD编码的3引脚,集电极和发射极分别接在风扇电源线的负极和BOARD编码的6引脚。风扇电源正极连接引脚4。如图
这样当3引脚为低电平时三极管导通风扇启动,高电平时截止风扇停止。
温度由CPU内部温度决定,python脚本如下。
#!/usr/bin/python2
# -*- coding: utf-8 -*- #自动风扇控制程序,使用wiringPi的gpio命令来操作GPIO
import commands,time #控制风扇的GPIO
FAN_GPIO = 8
commands.getoutput('sudo gpio mode '+str(FAN_GPIO)+' OUTPUT')
while True:
# 获取CPU温度
tmpFile = open( '/sys/class/thermal/thermal_zone0/temp' )
cpu_temp_raw = tmpFile.read()
tmpFile.close()
cpu_temp = round(float(cpu_temp_raw)/1000, 1)
print (cpu_temp)
#如果温度大于47`C,就启动风扇
if cpu_temp >= 47 :
commands.getoutput('sudo gpio write '+str(FAN_GPIO)+' 0')
#如果温度小于42`C,就关闭风扇
if cpu_temp <= 42 :
commands.getoutput('sudo gpio write '+str(FAN_GPIO)+' 1')
time.sleep(10)
需要注意的是:我采用了wiringPi编码控制引脚。
END-----------------------------------------------------------------------!