アイネックス 実験用スイッチ・LEDセット KM-01使えは、はんだ付け要らんことに気がついた。電源スイッチ編
Raspberry Pi OSなので、それらしく
- gpiozero
- systemd
- Python3
でやってみよ。
WiringPiいままでありがとうございました。
使うもの


スイッチの取付
Raspberry Piのピンのうち、GNDピンの隣のGPIOピンにまたいで差せばOKじゃ。
わしは、GPIO17(11番ピン)とGND(9番ピン)に差し込んだ。

デーモン(サービス)
スイッチを監視して、だいたい3秒以上長押ししたら、haltコマンドを実行するやつ。Python3 じゃ。
わしは、/home/pi/shutdownに作った。
- mkdir /home/pi/shutdown
- nano /home/pi/shutdown/shutdown.py
新しい流儀gpiozero
from gpiozero import Button
from subprocess import check_call
from signal import pause
def shutdown():
check_call(['sudo', 'poweroff'])
shutdown_btn = Button(17, hold_time=3)
shutdown_btn.when_held = shutdown
pause()
ctrl+zで保存
実行権
- sudo chmod 755 /home/pi/shutdown/shutdown.py
サービスの登録と起動
- sudo nano /usr/lib/systemd/system/shutdown.service
ユニットファイル
[Unit]
Description=Shutdown Daemon
[Service]
ExecStart = /home/pi/shutdown/shutdown.py
Restart=always
Type=simple
[Install]
WantedBy=multi-user.target
ctrl+zで保存
- sudo systemctl enable shutdown.service
- sudo systemctl daemon-reload
確認
- sudo systemctl status shutdown.service

エラーがあれはログ見てみ。
- less /var/log/syslog
停止
- sudo systemctl disable shutdown.service
以上!
1件のコメント