RaspberryPiのシャットダウン処理をボタン1つで実行する方法
概要
・コマンドを叩いてシャットダウンさせるのが面倒。
・コンセント側からのON/OFFは基板に良くない。場合によってはmicroSDが破損する。
・自律制御ロボットだとディスプレイがない。
このような状況/環境において、シャットダウン処理をボタン1つで実行できると便利になると思い制作しました。
準備するもの
・Raspberry Pi 一式
・ブレットボード 一式
・ボタン (本記事ではタクトスイッチを使用しています。)
実行環境
・Raspberry Pi 3(Raspbian)
・Python 3
回路
回路図が読めない方向けにブレットボードの配線図も用意しました。
こちらも参考にしてください。
ソフトウェア
PythonからGPIOを操作するために、"RPi.GPIO"のパッケージをインストールしてください。1度インストールした場合は必要ありません。
・"RPi.GPIO"のインストール
sudo apt-get install python-rpi.gpio
・Pythonのソースコード
import time
import RPi.GPIO as GPIO
import os
pin=21 # ボタンを接続したGPIO番号の設定
GPIO.setmode(GPIO.BCM) # ポート番号の指定方法をGPIO番号に指定
GPIO.setup(pin,GPIO.IN,pull_up_down=GPIO.PUD_UP) # GPIOをプルアップに設定
while True:
GPIO.wait_for_edge(pin,GPIO.FALLING) # GPIO入力がON→OFFになるまで待機
sw_count=0
while True:
sw_status=GPIO.input(pin) # GPIO入力の読み取り
if sw_status==0:
sw_count+=1
if sw_count>=50:
os.system("sudo shutdown -h now") # シャットダウン処理の実行
break
else:
break
time.sleep(0.01)
実行
よろしければサポートお願いします。頂いたサポートは全額制作活動費(機材購入、イベント出展、エナドリ代)に活用させて頂きます。 制作活動の継続/生きる希望になりますので、よろしくお願いします。