Raspberry Piをスイッチでシャットダウン (LEDで完了確認)

スイッチを押すだけでRaspberry Pi(ラズパイ)をシャットダウンする方法を解説しています。また、LEDでシャットダウン完了を分かりやすく確認できるようにします。シャットダウン操作をする手間や、完了して電源を落としていいか分かりにくい問題を解決します。

更新日 : 2024年3月28日

スイッチでシャットダウンするメリット

Raspberry PiはPC(パソコン)と同様、電源を切る前にシャットダウン処理を行う必要があります。しかし、サーバーやセンシング用途でディスプレイやマウスを繋がずに運用していると、電源を切る前にリモートでシャットダウン処理を行うにはひと手間かかります。

そこで今回は、「RPZ-PIRS」、「RPZ-IR-Sensor」、「RPi TPH Monitor」、「RPZ-CO2-Sensor」拡張基板のスイッチを押すとシャットダウンする方法を紹介します。

Embed from Getty Images

本記事は簡易的な方法のため、シャットダウン完了後の電源ケーブルの抜き差しは手作業で行う必要があります。別途、拡張基板「RPZ-PowerMGR」を使うと、電源のON/OFFまで含めて自動で行うことができますので、そちらの記事も参考にして下さい。

スイッチでラズパイ/Jetsonの電源をON/OFF (RPZ-PowerMGR)

RPZ-PowerMGRを使って、スイッチでRaspberry Pi(ラズパイ)/Jetson Nanoの電源ON/OFFする方法の解説です。ケーブルの抜き挿しやログインして操作しなくても電源ON/OFFできるほか、リモートやプログラムからシャットダウンした際に自動で電源OFFすることもできます。不要な時は電源を切ることで省電力化が可能です。

LEDでシャットダウン完了を確認する

シャットダウンする際、シャットダウンが完了して電源を切っていいのか分かりにくい、という問題があります。Raspberry Pi本体の緑色LEDが点滅しなくなったら完了なのですが、点滅が不定期で分かりにくいうえにLEDが位置的に見えない場合もあります。

そこで、シャットダウンが完了したら拡張基板のLEDが消灯する方法もあわせて紹介します。

設定方法

直接自作プログラムでGPIOを制御することもできますが、Raspberry Piにはもともと上記の機能が含まれており、それを有効にする方法を解説します。

設定を変更するにはconifg.txtファイルをスーパーユーザーで編集します。パスはOSバージョンによって異なりますので、以下を参照してください。

OSバージョンパス
Bookworm(最新版)/boot/firmware/config.txt
Bullseye (Legacy版)、Bookworm(最新版)の一部/boot/config.txt

RPZ-IR-Sensorで赤スイッチ(GPIO5)でシャットダウン、黄色LED(GPIO18)で確認する場合、config.txtファイルに以下の内容を追記します。1行目がスイッチでシャットダウンする設定で、2行目が完了をLEDに表示する設定です。片方だけを設定しても構いません。

dtoverlay=gpio-shutdown,gpio_pin=5
dtoverlay=gpio-poweroff,gpiopin=18,active_low=1

gpio_pinとgpiopinの値は、拡張基板と使いたいスイッチ、LEDによって変更してください。以下が対応表です。

RPZ-PIRSのGPIO番号
GPIOLED/スイッチ
GPIO17RGB LED緑
GPIO18RGB LED赤
GPIO22RGB LED青
GPIO5スイッチ赤
GPIO6スイッチ黒
RPZ-PIRSのGPIO番号
RPZ-PIRS拡張基板
RPZ-IR-SensorのGPIO番号
GPIOLED/スイッチ
GPIO17LED緑
GPIO18LED黄
GPIO22LED青
GPIO27LED白
GPIO5スイッチ赤
GPIO6スイッチ黒
RPZ-IR-SensorのGPIO番号
RPZ-IR-Sensor拡張基板
RPi TPH MonitorのGPIO番号
GPIOLED/スイッチ
GPIO5LED黄
GPIO6LED緑
GPIO22スイッチSW1
GPIO23スイッチSW2
GPIO24スイッチSW3
RPi TPH MonitorのGPIO番号
RPi TPH Monitor拡張基板
RPZ-CO2-SensorのGPIO番号
GPIOLED/スイッチ
GPIO17RGB LED緑
GPIO18RGB LED赤
GPIO22RGB LED青
GPIO5スイッチ赤
GPIO6スイッチ黒
RPZ-CO2-SensorのGPIO番号
RPZ-CO2-Sensor拡張基板

設定ファイルの編集方法が分からない場合は、以下の記事を参考にして下さい。

設定ができたらRaspberry Piを再起動して下さい。




動作確認

再起動すると、設定したLEDが点灯します。

設定したスイッチを押すと、シャットダウンを開始します。(最新OS Bookwormの場合、スイッチを2回押す必要があります。デスクトップ環境を無効にしている場合は1回でOKです。)Raspberry Piをディスプレイにつなぐか、リモートでログインしておくとシャットダウンで接続が切れるのが確認できると思います。

シャットダウンが完了するとLEDが消灯するので、電源ケーブルを抜きます。Raspberry Pi本体の緑色LEDよりも簡単に判別できます。

オプションパラメーター

設定に関して、オプションパラメーターについて補足の解説です。

gpio-shutdown

詳細な使用方法は dtoverlay -h gpio-shutdown コマンドで確認できます。

デフォルトではGPIO信号の立ち下がりを検出してシャットダウンを開始します。active_low=0 を指定すると立ち上がりを検出するようになります。

デフォルトではGPIOはプルアップされており、スイッチONによりGNDと繋がってLOWとなることで信号が変化します。gpio_pull=”down” を指定するとプルダウンに変更できます。回路構成によって使い分けます。

gpio-poweroff

詳細な使用方法は dtoverlay -h gpio-shutdown コマンドで確認できます。

今回の例ではactive_low=1として、動作中はHIGH出力でLED点灯、シャットダウン後はLOW出力でLED消灯としました。active_low=0とすると逆論理になります。

OSについて

最新OS Bookwormの古いバージョンと一部Raspberry Piモデルの組み合わせにおいて、シャットダウン要求に反応しない場合があります。Bookwormをお使いの場合は以下のコマンドでOSを最新にアップデートしてください。

$ sudo apt update
$ sudo apt upgrade -y

まとめ

スイッチからシャットダウンを行い、LEDで完了を確認する方法の解説は以上です。Raspberry Piはソフトや拡張基板を追加することで幅広い使い方が可能になります。

本記事で利用した拡張基板の購入先、パッケージの種類は以下を参照して下さい。

本記事は簡易的な方法のため、電源ケーブルの抜き差しは手作業で行う必要があります。別途、拡張基板「RPZ-PowerMGR」を使うと、電源のON/OFFまで含めて自動で行うことができますので、そちらの記事も参考にして下さい。

指定時刻にラズパイ/Jetsonの電源をON/OFF (RPZ-PowerMGR)

RPZ-PowerMGRを使って、指定時刻にRaspberry Pi(ラズパイ)やJetson Nanoの電源ON/OFFする方法の解説です。決まった時間だけ起動して消費電力を抑えることが可能で、モバイルバッテリーやソーラーシステムでの運用に最適です。

複数のステッピングモーターを制御する (Raspberry Pi + RPZ-Stepper)

RPZ-Stepperは基板1枚に2台のステッピングモーターを接続でき、最大で基板2枚、モーター4台を制御できます。本記事では、制御ソフトウェアcgstepで複数ステッピングモーターを制御する方法を解説しています。複数台のモーターを使うことでX/Y/Z軸移動など複雑な動きを実現できます。

RPZ-Stepper (Raspberry Pi用 高機能ステッピングモータードライバー)

ステッピングモーターを制御できるRaspberry Pi(ラズパイ)用拡張基板です。位置や角度、回転数などを指示すれば、自動で目標までモーターを動かしてくれます。加減速、静音モード、省電力モード、電流測定などの機能を搭載しています。ものを動かしたり回転させるシステムが実現できます。