アイネックス 実験用スイッチ・LEDセット KM-01使えは、はんだ付け要らんことに気がついた。電源スイッチ編
Raspberry Pi OSなので、それらしく
- gpiozero
- systemd
- Python3
でやってみよ。
WiringPiいままでありがとうございました。
使うもの
![](https://i0.wp.com/okamoto3.com/wp-content/uploads/2021/12/IMG_20211206_164551-01_copy_247x453.jpeg?resize=247%2C453&ssl=1)
![](https://i0.wp.com/okamoto3.com/wp-content/uploads/2021/12/IMG_20211206_164639-01_copy_442x294.jpeg?resize=442%2C294&ssl=1)
スイッチの取付
Raspberry Piのピンのうち、GNDピンの隣のGPIOピンにまたいで差せばOKじゃ。
わしは、GPIO17(11番ピン)とGND(9番ピン)に差し込んだ。
![](https://i0.wp.com/okamoto3.com/wp-content/uploads/2021/12/IMG_20211206_202748-01_copy_980x737.jpeg?resize=750%2C564&ssl=1)
デーモン(サービス)
スイッチを監視して、だいたい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
![](https://i0.wp.com/okamoto3.com/wp-content/uploads/2021/12/Screenshot_2021-12-12-08-46-58-710_com.sonelli.juicessh-01_copy_2891x624.jpeg?resize=750%2C162&ssl=1)
エラーがあれはログ見てみ。
- less /var/log/syslog
停止
- sudo systemctl disable shutdown.service
以上!
1件のコメント