RaspberryPi_Shutdown-Button
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
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...
os.system("sudo shutdown -h now")
break
else:
print("短押し検出")
break
time.sleep(0.1)
print(sw_counter)
* /usr/lib/systemd/system/shutdownbuttond.service [#p09b0...
[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
終了行:
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...
os.system("sudo shutdown -h now")
break
else:
print("短押し検出")
break
time.sleep(0.1)
print(sw_counter)
* /usr/lib/systemd/system/shutdownbuttond.service [#p09b0...
[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
ページ名: