#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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS