#author("2022-02-09T04:21:03+00:00","","") #author("2022-02-09T04:55:43+00:00","","") GPIO-23に繋いだプッシュスイッチを3秒押しっぱなしにするとシャットダウンが始まるようにする * /usr/local/bin/shutdownd.py [#jd18f538] #!/usr/bin/python # coding:utf-8 # +-----+ # 3V3| 1 2|5V # (SDA)GP02| 3 4|5V # (SCL)GP03| 5 6|GND # (GPCLK0)GP04| 7 8|GP14(TxD) # GND| 9 10|GP15(RxD) # GP17|11 12|GP18(PCM_CLK) # GP27|13 14|GND # GP22|15 16|GP23 # 3V3|17 18|GP24 # (MOSI)GP10|19 20|GND # (MISO)GP09|21 22|GP25 # (SCLK)GP11|23 24|GP08(CE0) # GND|25 26|GP07(CE1) # (ID_SD)GP00|27 28|GP01(ID_SC) # GP05|29 30|GND # GP06|31 32|GP12(PWM0) # (PWM1)GP13|33 34|GND # (PCM_FS)GP19|35 36|GP16 # GP26|37 38|GP20(PCM_DIN) # GND|39 40|GP21(PCM_DOUT) # +-----+ import time import RPi.GPIO as GPIO import os # 入力GPIO番号で指定する(物理ピン番号では無い) pinnumber=23 GPIO.setmode(GPIO.BCM) GPIO.setup(pinnumber,GPIO.IN,pull_up_down=GPIO.PUD_UP) while True: # 立ち下がりエッジを検出したら GPIO.wait_for_edge(pinnumber, GPIO.FALLING) sw_counter = 0 while True: sw_status = GPIO.input(pinnumber) if sw_status == 0: sw_counter = sw_counter + 1 if sw_counter >= 30: print("長押し検出") #os.system("sudo sudo dd if=/dev/zero of=/dev/fb0") os.system("sudo shutdown -h now") break else: print("短押し検出") break time.sleep(0.1) print(sw_counter) * /usr/lib/systemd/system/shutdownbuttond.service [#p09b0712] [Unit] Description=Shutdown Daemon [Service] ExecStart =/usr/local/bin/shutdownd.py Restart=always Type=simple [Install] WantedBy=multi-user.target * デーモンを有効化 [#f016a44a] sudo chmod 755 /usr/local/bin/shutdownd.py sudo systemctl enable shutdownbuttond.service sudo systemctl daemon-reload sudo systemctl start shutdownbuttond.service * shutdoown後に電源抜き差しせずに再起動 [#t00dac9a] GP-3(SCL 5pin)をGNDに落とSWを付けると起動ボタンに使える * 参考(引用)元 [#w52e96d4] https://qiita.com/clses/items/e701c1cb6490751a6040