
物理ボタンを付けてRaspberry Piを安全にシャットダウンする方法
はじめに この記事では、Raspberry PiのGPIOに物理ボタンを取り付けて、ワンプッシュで安全にシャットダウンする方法を紹介します。 ヘッドレス運用でモニターやキーボードを繋いでいないRaspberry Pi向けの内容です。 Raspberry Piの電源をオフする場合にUSB電源コードをそのまま引っこ抜くと、運が悪い場合はSDカード内のOSが壊れる可能性があります(私もその経験あります)。かと言って、SSHでログインして $ sudo shutdown -h now を毎回実行するのも非常に面倒です。物理ボタンを付ければ、コードを抜くだけの感覚で安全に電源を落とせます。 ここで紹介する手順は次のとおりです。 Raspberry PiのGPIOピンに物理ボタンを設置 ボタンを監視するPythonコードを作成 ②をシステムサービスへ登録 記事の後半ではさらにLEDも追加して、Raspberry Piの電源オンオフ状態を分かりやすく工夫しました!ぜひ最後までご覧ください。 動画を再生 Raspberry PiのGPIOピンに物理ボタンを設置 押している間だけ導通するモーメンタリー型のスイッチ を使用しました。 このスイッチをRaspberry PiのGPIO27(物理番号13)とGround(物理番号14)に繋ぎます。 ボタンを監視するPythonコード 次に、適当な場所に shutdown_by_button.py としてボタンを監視するPythonコードを作成します。 #!/usr/bin/env python import RPi.GPIO as GPIO import os, time GPIO.setmode(GPIO.BCM) GPIO.setup(27, GPIO.IN, pull_up_down = GPIO.PUD_UP) # GPIO27--Button--GND def shutdown(channel): os.system("sudo shutdown -h now") GPIO.add_event_detect(27, GPIO.FALLING, callback = shutdown, bouncetime = 3000) while 1: time.sleep(100) 上記プログラムの内容はGPIO.add_event_detect でGPIOのイベントを検知し、shutdown 関数を呼び出して sudo shutdown -h now を実行させています。 ...



