LoginSignup
57
64

More than 5 years have passed since last update.

ESP8266 (ESP-WROOM-02) で消費電力を抑えるには (スリープモードまとめ)

Last updated at Posted at 2016-01-11

概要

ESP8266 (以下、WROOM02) の消費電力を抑える

はじめに

WROOM02 では、何種類かの低消費電力モードがあるので、そのまとめ。
Deep-Sleep が最も低消費電力だが、(タイマーで復旧するので)サーバモードでは使えない。
Modem-Sleep / Light-Sleep は無線通信などの割り込みによって復旧する。

データシート

秋月 WROOM02 データシート

消費電力

Parameters Typical Unit
Modem-Sleep 15,000 uA
Light-Sleep 900 uA
Deep-Sleep 10 uA

Modem-Sleep / Light-Sleep

  • WROOM02 をサーバとして使う場合は、これらのタイプ。

定義

~/Library/Arduino15/packages/esp8266/hardware/esp8266/2.0.0/tools/sdk/include/user_interface.h

enum sleep_type {
        NONE_SLEEP_T    = 0,
        LIGHT_SLEEP_T,
        MODEM_SLEEP_T
};
bool wifi_set_sleep_type(enum sleep_type type);

使い方

  • setup 関数内で wifi_set_sleep_type( type ) を実行する。
    → 後は適当なタイミングで、自動的にスリープと目覚めを繰り返す。
  • 見た目、スリープ状態かどうか、わからない。

  • Modem-Sleep するように設定する場合。
extern "C" {
#include <user_interface.h>
}

void setup() {
  // ... Wi-Fi設定等

  wifi_set_sleep_type(MODEM_SLEEP_T);
}

void loop() {
}

回路図

回路に変更は不要

参考

以下、一連のまとめ記事が、めちゃくちゃ詳しい。

Deep-Sleep

  • 消費電力がものすごく低い。
  • WROOM02 をセンサーとして使うなら、このタイプ。
  • 復旧時、再起動されて、setup( ) から実行になる。

定義

~/Library/Arduino15/packages/esp8266/hardware/esp8266/2.0.0/cores/esp8266/Esp.h

// compatibility definitions
#define WakeMode RFMode
#define WAKE_RF_DEFAULT  RF_DEFAULT
#define WAKE_RFCAL       RF_CAL
#define WAKE_NO_RFCAL    RF_NO_CAL
#define WAKE_RF_DISABLED RF_DISABLED
void deepSleep(uint32_t time_us, RFMode mode = RF_DEFAULT);

使い方

  • IO16 ピン を RST(リセット) に繋いでおく必要がある。
    → 指定時間経過後にリセットが実行され、再起動がかかる。
  • スリープ時間は マイクロ秒 で指定する。
  • setup 関数内の最後で ESP.deepSleep( ) を実行すればよい。
    → loop は一度も実行されないで、スリープに突入することができる。
    → setup だけで処理が完結する (setupだけを繰り返す) スケッチが最適。

  • 10 秒間スリープして、再起動したい場合
void setup() {
  // ... Wi-Fi設定等

  // setup の末尾に記述する
  ESP.deepSleep(10 * 1000 * 1000);
}

void loop() {
}

回路図

IO16 を RST に繋げる。

「ESP8266 (ESP-WROOM-02) でセンサーを扱う」の回路図では

cirkit.png

参考

以下、一連のまとめ記事が、めちゃくちゃ詳しい。

まとめ

WROOM02 での低消費電力モードをまとめました。
それぞれに、メリット・デメリットがるので、用途に合わせて選択する必要があります。

  • Deep-Sleep が最も低消費電力だが、(タイマーで復旧するので)サーバモードでは使えない。
  • Modem-Sleep / Light-Sleep は無線通信などの割り込みによって復旧する。

Modem-Sleep と Light-Sleep の明らかな違いは、分かりませんでした。
(→ それなら Light-Sleep を選択すればよいじゃない?)
消費電力を時系列に詳しく測ることができる計測器が欲しい。

57
64
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
57
64