観測機器の低消費電力化のために、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:
参考資料(データシート):
9b-esp8266-low_power_solutions_en
コメント