ESP32の消費電力はスリープモードで削減できる

ジェレミー・クック

ESP32は驚くべきデバイスです。数百メガヘルツで情報を処理し、WiFiやBluetooth経由で通信し、GPIOピンを使用してさまざまなタスクを実行できます しかし、大きな力には大きな電力消費が伴うとも言えるでしょう。…

公平に言えば、ESP32の電力消費は、10年前の同様のデバイスと比較すると実際にはかなり低いです。しかし、現代のIoTアプリケーションでは、特にバッテリーが関係する場合、フル稼働時に数百ミリアンペアの電流を消費し、比較的電力を消費する可能性があります。

良いニュースとしては、ESP32にはスリープ モードと休止モードのシステムも備わっていることです。これらのモードを慎重に使用すると、ESPの電力消費を抑えることができます (少なくとも短時間の活動に限定することができます)。

スリープモード

ESP32のディープ スリープ モードとその他の電源モードの概要は、データシートから抜粋した以下の表に示されています。

本文画像1 ESP32の消費電力はスリープ モードで削減可能

スクリーン キャプチャ データ シートより

ESP32には、ESP32モデムスリープ、ライトスリープ、ディープスリープ、休止状態、電源オフの5つの低電力モードがあります。モデムスリープとディープスリープには、アクティブな処理能力に基づいて異なる電力消費率を持ついくつかのサブモードがあります。休止状態では、一定時間後にRTCが起動する機能を除き、チップのほぼすべての機能が停止します。電源オフ モードは、CHIP_PUピンがローに設定されるとアクティブになり、処理を再開するには外部からの介入が必要になります。

結局のところ、ESP32の低電力モードでは、電源オフを無視して、それぞれ68mA ~ 5µA、つまり0.068A ~ 0.000005Aを消費することになります。欠点は、以下のように、各モードによってESP32の有用性が制限されることです。

  • モデムスリープ: 無線通信が切断されます。
  • ライトスリープ: CPUを一時停止しますが、メモリの状態は保持されます。
  • ディープスリープ: ESP32のメインメモリの電源をオフにします。限られた量のRTC (リアルタイム クロック) メモリが保持され、ウェイクアップ時に使用できます。ULP (超低電力) プロセッサは、3つのディープスリープ サブモードのうち2つでアクティブになり、簡単なタスク実行と入力監視が可能になります。
  • 休止状態: ウェイクアップ時にRTCと限られた数のGPIOピンのみをアクティブのままにします。記憶は保持されません。
  • 電源オフ: 外部から電源をオンにする必要があります。1µAの電力消費はほとんどの状況では無視できるほど小さいです。
  • 電圧の影響を無視すると、小型の3.7V、850mAh充電式バッテリーで、モデムスリープ状態のESP32に約12.5時間電力を供給できます。浅いスリープは1000時間以上実行できます。中レベルのディープスリープ休止状態では、8500時間 (約1年) の動作時間が可能であり、休止状態は理論上20年近く維持できます。もちろん、デバイスが役に立つためには断続的に起動する必要がありますが、慎重に計画すれば、ESP32のセットアップによってバッテリーの充電間隔を非常に長くすることができます。

    ESP32ディープスリープ開発ボードの違い

    ボディイメージ2 ESP32の消費電力はスリープモードで削減可能

    スクリーンキャップ データシートより

    電力消費について議論する場合、ESP32チップまたはモジュールは電子機器全体の一部にすぎません。実験には開発ボードを使用することになるでしょう。より充実した電子機器の設計では、IoT「もの」を実行するために、関連部品のカスタム配置が必要になります。慎重にプログラミングすれば、ESP32を使用すると電力効率が非常に高くなりますが、周囲の電子機器については慎重に検討する必要があります。

    この点を説明するために、 Adafruit HUZZAH32 ESP32 開発ボードを電源と電流測定装置に接続し、さらにDFRobot DFR0478 ESP32ボードも接続しました。どちらもこの ESP32複合ビデオ クロックの投稿で紹介されており、かなりニッチな使用例と考えられるものでは異なるパフォーマンスを示しました。おそらく、電力効率も両者を区別する特徴となるでしょう。

    これをテストするために、私は深いスリープ状態に入り、起動し、オンボードを光らせる「TimerWakeUp」ESP32 Arduinoサンプルスケッチを修正したものを使用しました。 LEDライトそして、眠りにつくことで再びサイクルが始まります。5.3Vが各ボードに供給され、ESP32に必要な ~3.3電圧レベルに変換されました。消費結果は以下のとおりです。

    HUZZAH32:   スリープ = 6.6mA    ウェイク = 43.2mAウェイク + LED = 44.6mA 
     DFR0478:  スリープ = .02mA     ウェイク = 39.7mAウェイク + LED = 40.0mA

    公平に言えば、実際のIoTの使用状況をより良くシミュレートするには、バッテリー ポートを流れる電流を測定するのがよいかもしれません。それにもかかわらず、このシナリオでは、DFR0478 FireBeetleボード スリープモードでは他のモードよりもはるかに効率的です

    HUZZAH32はディープスリープ中に7000µA(7mA)を消費します。 バッテリー電源これは私が実験で測定したものとほぼ同じです。Andreas Spiessによる分析では、DFR0478は深いスリープ状態のときにバッテリーから53µA (0.053mA) の電流を引き出すことが分かりました。これは私がDFR0478で測定した値よりも大幅に大きいですが、彼のレポートでは異なる電源入力とボードの以前のバージョン (私がテストした2.0対4.0) が使用されています。この測定は、マルチメーターが報告できる下限値にも達しており、これが精度に影響を与える可能性があります。最後に注意点として、テストしたFireBeetleはWROOM-32D ESP32モジュールを使用しますが、HUZZAH32はWROOM-32Eを使用します。

    そうは言っても、テストした2つのボードの間には桁違いの違いがあり、これはESP32をサポートする回路が電力消費に劇的な影響を及ぼす可能性があることをよく表しています。

    ESP32の消費電力をスリープモードで抑える

    ESP32は非常に強力なデバイスであり、動作には比較的大きな電力が必要になる場合があります。ただし、慎重にプログラミングすれば、これらのデバイスを数週間、数か月、あるいはそれ以上バッテリーで動作させることも可能です。重要なのは、低電力設計に伴うトレードオフを理解し、許容できるパフォーマンスを達成しながら何を省略できるかを理解することです。


    ArrowPerksロイヤルティ プログラム サインアップ バナーEN


    最新ニュース

    申し訳ございませんが、フィルター選択では結果が返されませんでした。

    We've updated our privacy policy. Please take a moment to review these changes. By clicking I Agree to Arrow Electronics Terms Of Use  and have read and understand the Privacy Policy and Cookie Policy.

    Our website places cookies on your device to improve your experience and to improve our site. Read more about the cookies we use and how to disable them here. Cookies and tracking technologies may be used for marketing purposes.
    By clicking “Accept”, you are consenting to placement of cookies on your device and to our use of tracking technologies. Click “Read More” below for more information and instructions on how to disable cookies and tracking technologies. While acceptance of cookies and tracking technologies is voluntary, disabling them may result in the website not working properly, and certain advertisements may be less relevant to you.
    We respect your privacy. Read our privacy policy here