ESP8266 NodeMCU Sleep mode
ESP8266 ปกติจะใช้กระแสไฟประมาณ 70-80 mA สำหรับแบตเตอร์รี่ทั่ที่มีความจุ 1920maH สามารถจ่ายไฟเลี้ยง ESP8266 ได้ประมาณ 24 ชั่วโมง หรือแบตหมดภายใน 1 วัน ถ้าเราต่อกับเซนเซอร์ที่ไม่ได้ทำงานตลอดเวลา เช่น เซนเซอร์วัดอุณหภูมิและความชื้น แล้วส่งข้อมูลขึ้น Server ทุก 10 นาที ระหว่างนี้ esp8266 ก็จะยังใช้ไฟเลี้ยง 70-80mA ซึ่งเป็นการสูญเปล่า เราสามารถสั่งให้เวลาที่ esp8266 ไม่ได้ทำงาน ให้เข้าสูงโหมด deep sleep ซึ่งจะใช้กระแสไฟเพียง 0.001mA คิดเป็นพลังงานเพียงแค่ 3.3% ทำให้เราสามารถใช้งาน จาก 24 ชั่วโมงเป็น 600 ชั่วโมง หรือ จาก 1 วันเป็น 30 วัน ถ้าอัพเดทข้อมูลทุก 1 ชั่วโมง ก็จะสามารถใช้งานได้ถึง 174 วัน หรือเกือบ 6 เดือน

ตัวอย่างโคด Arduino ESP8266 Deep Sleep
#define SECONDS_DS(seconds) ((seconds)*1000000UL)
void setup() {
Serial.begin(115200);
Serial.println("Setup...");
}
void loop() {
delay(1000);
Serial.println("Sleeping");
ESP.deepSleep(SECONDS_DS(5));
}
เมื่ออัพโหลดโคดแล้ว ให้ต่อขา D0 กับ RST เพื่อให้ทำงานในโหมด sleep
ถ้าต้องการอัพโหลดโคด ให้ถอด D0 กับ RST ออกก่อนอัพโหลด
คลิปวีดีโอสอน Arduino ESP8266 NodeMCU Sleep mode
ข้อมูลเพิ่มเติม http://www.espressif.com/sites/default/files/9b-esp8266-low_power_solutions_en_0.pdf