ESP8266 (ESP-WROOM-02)으로 전력 소비를 줄이려면 (절전 모드 요약)

개요



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() {
    }
    

    회로도



    회로에 변경은 불필요

    참고



    이하, 일련의 정리 기사가 엄청 상세하다.
  • ESP-WROOM-02의 메모(11):3개의 Sleep의 구분
  • ESP-WROOM-02 프로그래밍: 수면 테스트

  • ESP-WROOM-02: 수면 조사 결과 ↑ 그래프로 보면, 몹시 잘 알 수 있다.

  • 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)으로 센서 취급" 회로도



    참고



    이하, 일련의 정리 기사가 엄청 상세하다.
  • ESP-WROOM-02 프로그래밍: 잠자는 동안 정기적으로 트윗

  • 요약



    WROOM02의 저전력 모드를 요약했습니다.
    각각은 장점과 단점이 있기 때문에 용도에 맞게 선택해야합니다.
  • Deep-Sleep이 가장 낮은 전력 소비이지만 (타이머로 복구하기 때문에) 서버 모드에서는 사용할 수 없습니다.
  • Modem-Sleep/Light-Sleep은 무선 통신과 같은 인터럽트에 의해 복구됩니다.

  • Modem-Sleep과 Light-Sleep의 명백한 차이점은 확실하지 않았습니다. (→ 그렇다면 Light-Sleep을 선택하면 좋지 않습니까?)
    소비 전력을 시계열로 자세하게 측정할 수 있는 계측기를 갖고 싶다.

    좋은 웹페이지 즐겨찾기