树莓派设置关机重启键

    技术2022-07-10  134

    #!/usr/bin/env python3 # coding=utf-8 import RPi.GPIO as GPIO import time import os,sys import signal GPIO.setmode(GPIO..BOARD) # 定义引脚7为关机重启键 pin_btn=7 GPIO.setup(pin_btn, GPIO.IN, pull_up_down=GPIO.PUD_UP)#默认下降沿触发 press_time=0 count_down=10 def cleanup(): #释放资源,不然下次运行是可能会收到警告 GPIO.cleanup() def handleSIGTERM(signum, frame): sys.exit()#raise an exception of type SystemExit def onPress(channel): global press_time,count_down press_time+=1 if press_time >3: press_time=1 elif press_time==3: count_down=10 #开始执行主函数,增加事件关联 #当引脚处于下降沿时,调用onPress函数,bouncetime用于消抖 GPIO.add_event_detect(pin_btn, GPIO.FALLING, callback= onPress,bouncetime=500)#默认下降沿触发 try: while True: if press_time==1: if count_down==0: print "start restart" os.system("shutdown -r -t 5 now") sys.exit() led_on=not led_on GPIO.output(pin_led, led_on)# blink led if press_time==2 and count_down==0: print "start shutdown" os.system("shutdown -t 5 now") sys.exit() if press_time==1 or press_time==2: count_down-=1 print "%s second"%(count_down) time.sleep(1) except KeyboardInterrupt: print('User press Ctrl+c ,exit;') finally: cleanup()

    参考文献: 1.给树莓派添加重启关机按钮

    Processed: 0.010, SQL: 9