-
라즈베리파이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