kopia lustrzana https://github.com/cyoung/stratux
adding @helno's GPIO fan control script.
rodzic
50027d416c
commit
43c0da7e21
|
@ -0,0 +1,34 @@
|
|||
#!/usr/bin/python
|
||||
# @Author Ryan Dewsbury (helno)
|
||||
#
|
||||
# This script throttles a fan based on CPU temperature.
|
||||
#
|
||||
# It expects a fan that's externally powered, and uses GPIO pin 11 for control.
|
||||
|
||||
import RPi.GPIO as GPIO
|
||||
import time
|
||||
import os
|
||||
|
||||
# Return CPU temperature as float
|
||||
def getCPUtemp():
|
||||
cTemp = os.popen('vcgencmd measure_temp').readline()
|
||||
return float(cTemp.replace("temp=","").replace("'C\n",""))
|
||||
|
||||
GPIO.setmode(GPIO.BOARD)
|
||||
GPIO.setup(11,GPIO.OUT)
|
||||
GPIO.setwarnings(False)
|
||||
p=GPIO.PWM(11,1000)
|
||||
PWM = 50
|
||||
|
||||
while True:
|
||||
|
||||
CPU_temp = getCPUtemp()
|
||||
if CPU_temp > 40.5:
|
||||
PWM = min(max(PWM + 1, 0), 100)
|
||||
p.start(PWM)
|
||||
elif CPU_temp < 39.5:
|
||||
PWM = min(max(PWM - 1, 0), 100)
|
||||
p.start(PWM)
|
||||
time.sleep(5)
|
||||
|
||||
GPIO.cleanup()
|
Ładowanie…
Reference in New Issue