スイッチを押すだけでRaspberry Pi(ラズパイ)をシャットダウンする方法を解説しています。また、LEDでシャットダウン完了を分かりやすく確認できるようにします。シャットダウン操作をする手間や、完了して電源を落としていいか分かりにくい問題を解決します。
更新日 : 2024年9月28日スイッチでシャットダウンするメリット
Raspberry PiはPC(パソコン)と同様、電源を切る前にシャットダウン処理を行う必要があります。しかし、サーバーやセンシング用途でディスプレイやマウスを繋がずに運用していると、電源を切る前にリモートでシャットダウン処理を行うにはひと手間かかります。
そこで今回は、「RPZ-PIRS」、「RPZ-IR-Sensor」、「RPi TPH Monitor」、「RPZ-CO2-Sensor」拡張基板のスイッチを押すとシャットダウンする方法を紹介します。
本記事は簡易的な方法のため、シャットダウン完了後の電源ケーブルの抜き差しは手作業で行う必要があります。別途、拡張基板「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番号
GPIO | LED/スイッチ |
---|---|
GPIO17 | RGB LED緑 |
GPIO18 | RGB LED赤 |
GPIO22 | RGB LED青 |
GPIO5 | スイッチ赤 |
GPIO6 | スイッチ黒 |
RPZ-IR-SensorのGPIO番号
GPIO | LED/スイッチ |
---|---|
GPIO17 | LED緑 |
GPIO18 | LED黄 |
GPIO22 | LED青 |
GPIO27 | LED白 |
GPIO5 | スイッチ赤 |
GPIO6 | スイッチ黒 |
RPi TPH MonitorのGPIO番号
GPIO | LED/スイッチ |
---|---|
GPIO5 | LED黄 |
GPIO6 | LED緑 |
GPIO22 | スイッチSW1 |
GPIO23 | スイッチSW2 |
GPIO24 | スイッチSW3 |
RPZ-CO2-SensorのGPIO番号
GPIO | LED/スイッチ |
---|---|
GPIO17 | RGB LED緑 |
GPIO18 | RGB LED赤 |
GPIO22 | RGB LED青 |
GPIO5 | スイッチ赤 |
GPIO6 | スイッチ黒 |
設定ファイルの編集方法が分からない場合は、以下の記事を参考にして下さい。
設定ができたら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する方法の解説です。決まった時間だけ起動して消費電力を抑えることが可能で、モバイルバッテリーやソーラーシステムでの運用に最適です。
スイッチでラズパイ/Jetsonの電源をON/OFF (RPZ-PowerMGR)
RPZ-PowerMGRを使って、スイッチでRaspberry Pi(ラズパイ)/Jetson Nanoの電源ON/OFFする方法の解説です。ケーブルの抜き挿しやログインして操作しなくても電源ON/OFFできるほか、リモートやプログラムからシャットダウンした際に自動で電源OFFすることもできます。不要な時は電源を切ることで省電力化が可能です。
RPi TPH Monitor Rev2 (Raspberry Pi用 温度/湿度/気圧/赤外線 ホームIoT拡張ボード)
動作をプログラミング可能な、Raspberry Pi(ラズパイ)用ホームIoT拡張ボードです。温度、湿度、気圧センサー、赤外線送信、受信機能を搭載。温度が上がったらエアコンをオンにする、外出先から家電の操作をする、気温や湿度を記録する、といった使い方が可能です。ディスプレイやLEDに情報表示、スイッチを押したら特定の処理をすることもできます。