GPIO-23に繋いだプッシュスイッチを3秒押しっぱなしにするとシャットダウンが始まるようにする

/usr/local/bin/shutdownd.py

#!/usr/bin/python 
# coding:utf-8 
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

[Unit]
Description=Shutdown Daemon

[Service]
ExecStart =/usr/local/bin/shutdownd.py
Restart=always
Type=simple

[Install]
WantedBy=multi-user.target

デーモンを有効化

sudo chmod 755 /usr/local/bin/shutdownd.py
sudo systemctl enable shutdownbuttond.service
sudo systemctl daemon-reload
sudo systemctl start shutdownbuttond.service

参考(引用)元

https://qiita.com/clses/items/e701c1cb6490751a6040


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS