#!/usr/bin/env python3

import os
from time import sleep
import signal
import sys
import RPi.GPIO as GPIO

maxTemp = 50
delay   = 15
pin     = 17

def getTemp():
    result = os.popen('vcgencmd measure_temp').readline()
    temp =(result.replace("temp=","").replace("'C\n",""))
    return temp

try:
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(pin, GPIO.OUT)
    myPWM=GPIO.PWM(pin,60)
    myPWM.start(60)
    sleep(delay)

    while True:
        coreTemp = float(getTemp())
#       print (coreTemp)
        delta = maxTemp-coreTemp
        if delta<0:
            delta=0
        speed = 100 - (2 * delta)
#       speed = 100 - (3 * delta)

        if speed>100:
            speed=100
        if speed<20:
            speed=20

        myPWM.ChangeDutyCycle(speed)
        sleep (delay)

except:
    GPIO.output(pin, False)
    GPIO.cleanup()
