ホームページをリニューアルしました。旧HPはこちら
Arduino ソフト・ハードウェア

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:

Making the ESP8266 Low-Powered With Deep Sleep
A tutorial on enabling deep sleep on the ESP8266 microcontroller
ESP8266の真骨頂Deep-Sleepモードの使い方 - Qiita
今まで、ArduinoIDEの環境準備、WiFi接続方法、AD変換のやり方とやってきました。今回はESP8266の目玉機能の一つであるDeep-Sleepモードへの突入、復帰のやり方を解説したいと…
ESP-WROOM-02プログラミング:スリープしながら定期的にツイート
ESP-WROOM-02 のDeep-Sleepを使ったツイッター操作プロジェクトのメモ プロジェクト概要:  スリープしながら定期的にWakeUPしてツイートを行うプロジェクト  ツイートには StewGateU のWebAPIを使用  ネタ元はESP8266WIF...

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

CP2102-9

コメント

タイトルとURLをコピーしました