ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 라즈베리파이4 쿨링팬 온도에 작동
    카테고리 없음 2020. 6. 21. 17:44

    GPIO 와 npn 트랜지스터를 이용하여 일정온도가 올라가면 팬이 돌아가게 하는 코드입니다.

     

     

    npn 트랜지스터 2N2222

    GPIO는 14번 단자

     

     

    python 코드

    import RPi.GPIO as GPIO
    import time, datetime, os
    
    FAN = 14
    MAX = 59
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(FAN, GPIO.OUT)
    
    try:
        while True:
            temp = os.popen("cat /sys/class/thermal/thermal_zone0/temp").readline()
            temp = int(temp) / 1000
            if temp >= MAX :
                GPIO.output(FAN, True)
                now_time = datetime.datetime.now()
                format_time = now_time.strftime("%H:%M:%S")
                print ("Time : ", format_time, "Temp : ",temp)
            else :
                GPIO.output(FAN, False)
                print ("FAN Off")
    
    except KeyboardInterrupt: # CTRL+C
       print("Keyboard interrupt")
    
    except IndexError as e:
       print("Some error", e)
    
    finally:
       print("Clean up")
       GPIO.cleanup()
    

    쉘 스크립트 코드

    #!/bin/sh
    
    cpuTemp0=$(cat /sys/class/thermal/thermal_zone0/temp)
    
    cpuTemp1=$(($cpuTemp0/1000))
    
    #echo "현재온도 : " $cpuTemp1 
    
    NOW=$(date +"%Y/%m/%d %H:%M")
    MAX=50
    
    gpio -g mode 14 output
    
    if [ $cpuTemp1 -ge $MAX ]
    then
      echo "현재온도 :" $cpuTemp1"도, 팬 켜" $NOW
      gpio -g write 14 1
    else
      echo "현재온도 :" $cpuTemp1"도, 팬 꺼" $NOW
      gpio -g write 14 0
    fi

     

Designed by Tistory.