ESP8266のDeep-Sleepモードの使い方

観測機器の低消費電力化のために、ESP8266のDeep-Sleepモードを使ってみた。

使用Program(スケッチ):
ESP12_HTTP_BME280_DS1820_demo2
NodeMCUに温湿度気圧センサーBME280 と、OneWireデバイスの温度計DS1820を2個つなげて、測定結果をさくらインターネットに送信するプログラム

消費電流測定:デジタルテスタ

スケッチ例:

void loop()文の最後に、delay()の代わりに、下記のスクリプトを追加

//delay(30000); // loop meas cycle

// deep sleep mode
Serial.println(“Deep Sleep Mode start”);
ESP.deepSleep( 30 * 1000000 );  //deepsleep設定はマイクロ秒オーダーで記述

// MCUにスケッチをInstall後、RST端子とGPIO16 (D0、WAKE)端子を接続
// deepsleep命令で指定した時間がたつと、IO16:WAKEピンがLowになり
// Deep-Sleepモードから復帰する。

測定結果:

動作モード 消費電流(Wifi送信時/Nop時)
Normal 170mA / 90mA
DeepSleep 170mA / 20mA (※ただし5秒に1回、100mAになる)

・Deep sleepでは、ESP8266の消費電流が1mA以下になるので、NodeMCUに搭載されているUSBtoSerialブリッジICやLDOレギュレータの消費電流がメインとなり、Nomal時にくらべ約1/4以下の消費電流まで低減できる。DeepSleepModeを、Delayの代わりに観測間隔の設定として使用することで、消費電力を抑えることができる。
※deepsleep時、なぜかわからないが、約5秒に1回の周期でMCUが動作して、電流が100mA程度まで跳ね上がる。

・消費電力見積もり:
上記を考慮の上、NodeMCUの開発ボードをそのまま観測機器に搭載した場合

通常モード:
3.3V×(2秒×0.17A+58秒×0.09A)/60秒 = 0.3W

DeepSleepモード:
3.3V×(2秒×0.17A+(1秒×0.1A+4秒×0.02A)/5秒×58秒)/60秒 =0.13W

参考URL:

https://www.losant.com/blog/making-the-esp8266-low-powered-with-deep-sleep

https://qiita.com/azusa9/items/65a5c3772c41631b5ca1

http://ekjigtool.blogspot.jp/2015/08/esp-wroom-02_27.html

参考資料(データシート):
9b-esp8266-low_power_solutions_en

CP2102-9

カテゴリー: Arduino, ソフト・ハードウェア パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です