Raspberry Piの消費電力測定&モバイルバッテリー稼働時間の計算 (RPZ-PowerMGR)

RPZ-PowerMGRを使って、Raspberry Pi(ラズパイ)の消費電力を測定する方法の解説です。モバイルバッテリーでの運用可能な時間を計算し、実際の運用時間と比較しました。

Raspberry Pi OS Version 2021-01-11対応

更新日 : 2021年1月19日

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のセットアップの全手順は製品ページのセットアップ(ハードウェア)セットアップ(ソフトウェア)を参照してください。本記事ではRTCの設定および時刻管理について解説します。

現在の電流値を測定

RPZ-PowerMGRの電流測定結果の表示、保存はコントロールツールから可能です。「me」サブコマンドを指定すると電流関連の操作になります。

まず、最初の例として現在の電流値を測定してみましょう。pmgr.pyと同じディレクトリで以下のコマンドを実行します。(代替I2Cアドレス0x22を使っている場合は「-a」オプションの指定が必要です)

./pmgr.py me
Raspberry Pi電流値 459[mA]

現在の電流値が表示されました。

RPZ-PowerMGRでは1秒ごとに電流を測定しており、「me」サブコマンドのみを指定すると、最も新しい測定結果が表示されます。

Raspberry Piが電源ON(起動)してからの電流値を表示

現在の電流値を表示する方法だと、Raspberry Piが起動した後、操作可能になっていないといけません。一方、Raspberry Piが起動して操作可能になるまでの間どの程度電流を消費しているか知りたい場合もあると思います。

RPZ-PowerMGRではRaspberry Piの電源をONしたタイミングから1秒ごとに電流値を測定してメモリーに保存しています。(最大3600秒、1時間分まで)以下のコマンドで、その結果を読み出すことができます。

./pmgr.py 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ファイルに保存できます。グラフ化や分析したりするのに便利です。

./pmgr.py me -L -f meas.csv
3600秒分の電流値の記録データがあります.
ファイル meas.csv へ保存しました.

メモリーをクリアして測定を開始

通常は電源ONから最大1時間分の測定値がメモリーに保存されますが、以下のコマンドを実行するとメモリーをクリアして測定を開始します。コマンドを実行してから最大1時間分のデータがメモリーに記録されます。(RPZ-PowerMGRで電源OFF -> 電源ON状態になると自動的にメモリーがクリアされますので注意してください。)

./pmgr.py me -s
Raspberry Pi電流値のログをリセットしました. 現在から毎秒, 最大1時間まで記録します. 

測定結果の表示、保存は電源ONからの結果の読み出しと同様に、以下のコマンドで可能です。

./pmgr.py me -L
./pmgr.py me -L -f meas.csv

実際に測定

実際に電源ONから15分間のRaspberry Piの電流値を測定してグラフにしてみました。起動した後は何も操作しない状態で測定しています。

項目条件
OSRaspberry Pi OS 2020-08-20
周辺機器 (マウス、キーボードなど)なし
WiFiON
ソフトウェア、サービス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のバッテリーAnker PowerCoreSlim10000PDでRaspberry Pi4 ModelBとZero W/WHを稼働させて、どれくらい持つか試してみました。

検証に使用したモバイルバッテリー「Anker PowerCoreSlim10000PD」

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

稼働時間を伸ばすには

今回はRaspberry Piを連続運転した状態での稼働時間を検証しました。RPZ-PowerMGRには指定時刻に電源ON/OFFする機能があり、必要なときだけ電源ONすることでさらに稼働時間を伸ばすことが可能です。

例えば、1時間のうち5分だけ電源ONする運用にすれば、連続運転に比べて約12倍の稼働時間が見込めます。

まとめ

RPZ-PowerMGRを使って、Raspberry Pi(ラズパイ)の消費電力を測定する方法の解説は以上です。モバイルバッテリーでの運用可能な時間を計算し、実際の運用時間と比較しました。

これ以外にも、RPZ-PowerMGRには電源管理に便利な様々な機能が搭載されています。そちらの記事も参考にしてみて下さい。

RPZ-PowerMGR (Raspberry Pi用 電源管理/制御/RTC拡張基板)

スイッチで電源ON/OFF、指定時刻に電源ON/OFF、シャットダウン後自動電源OFFを可能にする拡張基板です。Raspberry Pi(ラズパイ)の電源の課題を解決し、省電力運用を可能にします。RTCで電源OFF時も時刻を保持します。USB Type-C端子を搭載し、モバイルバッテリーでも利用できます。

RPZ-IR-Sensor (Raspberry Pi用 温度/湿度/気圧/明るさ/赤外線 ホームIoT拡張ボード)

動作をプログラミング可能な、Raspberry Pi/Zero(ラズパイ)用ホームIoT拡張ボードです。温度、湿度、気圧、明るさセンサー、赤外線送信、受信機能を搭載。温度が上がったらエアコンをオンにする、暗くなったら照明を点灯する、外出先から家電の操作をする、気温や湿度を記録する、といった使い方が可能です。LEDにステータスを表示することもできます。

ESP-PowerMonitor (ESP-WROOM-02/WiFi搭載 IoT電圧/電流/電力測定基板)

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