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

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

Raspberry Pi OS Version 2021-10-30対応

更新日 : 2022年10月14日

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

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

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

Embed from Getty Images

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

スイッチでRaspberry Piの電源をON/OFF (RPZ-PowerMGR)

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

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

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

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




設定方法

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

RPZ-IR-Sensorで赤スイッチ(GPIO5)でシャットダウン、黄色LED(GPIO18)で確認する場合、/boot/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が点灯します。

設定したスイッチを押すと、シャットダウンを開始します。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とすると逆論理になります。




まとめ

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

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

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

指定時刻にRaspberry Pi/Jetson Nanoの電源をON/OFF (RPZ-PowerMGR)

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

Raspberry PiでRTCを使って時刻管理 (RPZ-PowerMGR)

RTC(時計)を使って、Raspberry Pi(ラズパイ)の時刻を管理する方法の解説です。RTCを使うと、インターネットに繋がっていなくても正確な時刻で運用できます。電源OFFから起動した際に自動的に時刻を設定する方法も説明します。

BME280センサーとRaspberry Piで気温、湿度、気圧を測定する

Indoor Corgiのセンサー制御ソフトウェア「cgsensor」を利用して、BME280センサーで気温、湿度、気圧を測定する方法を解説します。コマンドラインツールを使って1行もコードを書かずに測定や記録ができるほか、Pythonパッケージを使えばご自身のプログラムから簡単にセンサーを制御できます。

CO2濃度に応じてLEDの色を変化させ、リレーで外部機器をON/OFFする

Raspberry PiとRPZ-CO2-Sensorを使ってCO2(二酸化炭素)濃度を測定し、LEDの色を変化させる応用例です。LEDを見ることで、換気の必要性がひと目でわかります。濃度が一定以上になったらリレーで換気ファンなどの外部機器をONすることも可能です。