RPZ-PowerMGRを使って、Raspberry Pi(ラズパイ)の消費電力を測定する方法の解説です。モバイルバッテリーでの運用可能な時間を計算し、実際の運用時間と比較しました。
Raspberry Pi OS Version 2022-04-04対応
更新日 : 2022年11月3日Raspberry Piの消費電力を知りたい
Raspberry Piを使っていて、「どれくらい電力を消費しているか知りたい」と思ったことはありませんか?

モバイルバッテリーでRasbperry Piを運用する場合に気になるのは実際にどの程度電力を消費しているかどうかでしょう。Raspberry Piの消費電力が分かれば、モバイルバッテリーでどれくらいの期間稼働できるか計算できます。
一方で、消費電力はRaspberry Piの種類や、接続されている周辺機器、動作しているソフトなどによって変わるため、スペックから単純に見積もることができません。
RPZ-PowerMGRはRaspberry Piの消費電流を測定できるので、どの程度の期間バッテリーで運用できるか試算したり、電力消費を下げる構成を探すことができます。
電流測定以外にも、RPZ-PowerMGRには電源管理、省電力運用に必要な機能が搭載されていて便利です。
電流を測定する仕組み
どのように電流を測定するのか、仕組みを解説します。
RPZ-PowerMGRはRaspberry Piの40ピンコネクターに装着する拡張基板(HAT)です。

下の図にあるように、外部電源がRPZ-PowerMGRに接続されており、Raspberry Pi本体への電源供給、切断をコントロールできる構成になっています。電源は40ピンコネクター経由で供給されるので、Rasbperry Pi本体の電源コネクターは使用しません。
同時に、Raspberry Piへ供給している電流を測定回路により測定結果をRPZ-PowerMGRのメモリーに保存します。この値をRaspberry Pi側から読み出すことで消費電流がわかるという仕組みです。

セットアップ
RPZ-PowerMGRのセットアップの全手順は製品ページのセットアップ(ハードウェア)、セットアップ(ソフトウェア)を参照してください。本記事では電流値の測定について解説します。
現在の電流値を測定
RPZ-PowerMGRの電流測定結果の表示、保存はコントロールツールから可能です。「me」サブコマンドを指定すると電流関連の操作になります。
2021/9/5にコントロールツールを簡単にインストールできるようになり、名称がcgpmgrに変更になりました。
まず、最初の例として現在の電流値を測定してみましょう。以下のコマンドを実行します。(代替I2Cアドレス0x22を使っている場合は「-a」オプションの指定が必要です)
$ cgpmgr me
Raspberry Pi電流値 459[mA]
現在の電流値が表示されました。
RPZ-PowerMGRでは1秒ごとに電流を測定しており、「me」サブコマンドのみを指定すると、最も新しい測定結果が表示されます。
Raspberry Piが電源ON(起動)してからの電流値を表示
現在の電流値を表示する方法だと、Raspberry Piが起動した後、操作可能になっていないといけません。一方、Raspberry Piが起動して操作可能になるまでの間どの程度電流を消費しているか知りたい場合もあると思います。
RPZ-PowerMGRではRaspberry Piの電源をONしたタイミングから1秒ごとに電流値を測定してメモリーに保存しています。(最大3600秒、1時間分まで)以下のコマンドで、その結果を読み出すことができます。
$ cgpmgr me -L
3600秒分の電流値の記録データがあります.
時間[s], 電流[mA]
0, 185
1, 509
2, 456
3, 502
4, 502
5, 413
6, 585
7, 411
8, 402
9, 422
(以下省略)
1列目が電源ONからの秒数、2列目が電流値[mA]です。
Raspberry Piの電源がONする際に前回の測定結果はクリアされ、新しいデータが保存されていきます。
csvファイルへ保存
「-f」オプションに続けてファイル名を入力すると、メモリーの測定結果をcsvファイルに保存できます。グラフ化や分析したりするのに便利です。
$ cgpmgr me -L -f meas.csv
3600秒分の電流値の記録データがあります.
ファイル meas.csv へ保存しました.
メモリーをクリアして測定を開始
通常は電源ONから最大1時間分の測定値がメモリーに保存されますが、以下のコマンドを実行するとメモリーをクリアして測定を開始します。コマンドを実行してから最大1時間分のデータがメモリーに記録されます。(RPZ-PowerMGRで電源OFF -> 電源ON状態になると自動的にメモリーがクリアされますので注意してください。)
$ cgpmgr me -s
Raspberry Pi電流値のログをリセットしました. 現在から毎秒, 最大1時間まで記録します.
測定結果の表示、保存は電源ONからの結果の読み出しと同様に、以下のコマンドで可能です。
$ cgpmgr me -L
$ cgpmgr me -L -f meas.csv
実際に測定
実際に電源ONから15分間のRaspberry Piの電流値を測定してグラフにしてみました。起動した後は何も操作しない状態で測定しています。
項目 | 条件 |
---|---|
OS | Raspberry Pi OS 2020-08-20 |
周辺機器 (マウス、キーボードなど) | なし |
WiFi | ON |
ソフトウェア、サービス | OSインストール後SSH, VNC, I2Cを有効化 |

最も消費電流が大きかったのがRaspberry Pi4で、3 ModelB+、3 ModelB、 Zero W/WHと続きます。
時間で見ると電源ON直後から30秒程度は起動後の処理で電流が多くなっていますが、それ以降はほぼ一定になっています。Zero W/WHは処理能力が低いので起動後の処理に90秒程度かかっています。
起動後に安定してから(2〜10分のデータを使用)の電流値の平均をグラフ化したものが以下のとおりです。

モバイルバッテリーでの稼働時間
一般的なバッテリーでの稼働時間は以下の式で計算できます。バッテリーとRaspberry Piの電圧が異なるので、mW、mWh単位に直して計算します。
消費電力 [mW] = (Raspberry Pi 消費電流 [mA] + その他消費電流 [mA]) × 5 [V]
バッテリー容量 [mWh] = バッテリー容量 [mAh] × バッテリー電圧 [V]
稼働時間 [h] = バッテリー容量[mWh] ÷ 消費電力 [mW]
Raspberry Pi消費電流は測定した値の平均を入れます。その他消費電流は、RPZ-PowerMGRが電源ON時10mA消費します。他にもバッテリー側の回路などで損失が出るので、今回の計算例では合計30mAを使います。(厳密な式ではありませんが、おおよその時間を見積もることが可能です)
市販のモバイルバッテリーのほとんどはリチウムイオン型のもので、バッテリー電圧は3.7Vです。そのため簡単に計算できるようにしたものが以下の式です。
稼働時間 [h] = 0.74 × モバイルバッテリー容量[mAh] ÷ (Raspberry Pi 消費電流 [mA] + その他消費電流 [mA])
先ほどの平均値をもとに、10000mAのモバイルバッテリーでの連続稼働時間を計算した結果が以下のグラフです。

実際に10000mAhのバッテリーでRaspberry Pi4 ModelBとZero W/WHを稼働させて、どれくらい持つか試してみました。使用したバッテリーは以下の2つです。


先ほどの計算値に、PowerCoreSlim 10000PD実測値、PB-Y36実測値を並べてグラフにしました。計算値に近い値になっています。

稼働時間を伸ばすには
今回はRaspberry Piを連続運転した状態での稼働時間を検証しました。RPZ-PowerMGRには指定時刻に電源ON/OFFする機能があり、必要なときだけ電源ONすることでさらに稼働時間を伸ばすことが可能です。
決まった時間に電源ONして写真を撮影し、電源OFFすることで、モバイルバッテリーで長期運用するシステムの例を以下の記事で解説していますので、参考にして下さい。

定期撮影Raspberry Piカメラをモバイルバッテリーで長期運用 (RPZ-PowerMGR)
Raspberry Pi(ラズパイ)と純正カメラを使用して、定期的に撮影するタイムラプス機能を実装する方法を解説します。RPZ-PowerMGR拡張基板を使うことで、指定時刻に起動し、撮影後は自動的にシャットダウン&電源OFFします。待機時の消費電力をカットすることで、モバイルバッテリーで長期運用が可能になります。
まとめ
RPZ-PowerMGRを使って、Raspberry Pi(ラズパイ)の消費電力を測定する方法の解説は以上です。モバイルバッテリーでの運用可能な時間を計算し、実際の運用時間と比較しました。
これ以外にも、RPZ-PowerMGRには電源管理に便利な様々な機能が搭載されています。そちらの記事も参考にしてみて下さい。
- RPZ-PowerMGR購入先
- スイッチでRaspberry Piの電源をON/OFF
- 指定時刻にRaspberry Piの電源をON/OFF
- Raspberry PiでRTCを使って時刻管理
- 電源自動リカバリーで停電やバッテリー切れから復帰
- USB Type-A Wake Up無効化
- Raspberry Pi技術情報一覧

RPZ-PIRS (Raspberry Pi用 人感/明るさセンサー/赤外線 拡張基板)
Raspberry Pi(ラズパイ)に人感、明るさセンサー、赤外線送受信機能を搭載できる拡張基板です。人感センサーで人や動物を検知してカメラで撮影したり、赤外線で照明をONするような使い方が可能です。周囲の明るさをモニターできる他、外付BME280センサー(別売り)を接続することで、温度、湿度、気圧の測定機能を追加できます。7色表示可能なRGB LEDにステータスを表示したり、スイッチを押すことで特定の動作をさせることができます。

ESP-PowerMonitor (ESP-WROOM-02/WiFi搭載 IoT電圧/電流/電力測定基板)
Arduino IDEで動作を自由にプログラミング可能なIoT電力測定基板です。WiFi内蔵マイコンであるESP-WROOM-02を採用しました。流、電力センサーとディスプレイ搭載。Raspberry Piなどの消費電力の記録、スマホなどの充電電流のモニタリング、サーバーへのデータ転送、といった使い方が可能です。

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

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