Close Menu
Circuit of Things
  • Home
  • About Us
  • Contact Us
  • 3D Print
  • Shop Now !
  • Projects
    • Raspberry Pi Projects
    • Arduino Projects
    • ESP8266 Projects
    • ESP32 Projects
    • IoT Tutorials
    • Sensors & Modules
    • IoT Basics
  • KSP Tools

Get Free Tutorials & Discounts!

Subscribe for the latest IoT tutorials and exclusive KSP Electronics discount codes.

Instagram WhatsApp
  • Terms and Conditions
  • Disclaimer
  • Privacy Policy
  • Contact Us
Circuit of Things Circuit of Things
  • Home
  • About Us
  • Contact Us
  • 3D Print
  • Shop Now !
  • Projects
    • Raspberry Pi Projects
    • Arduino Projects
    • ESP8266 Projects
    • ESP32 Projects
    • IoT Tutorials
    • Sensors & Modules
    • IoT Basics
  • KSP Tools
Hire us
Circuit of Things
Home»ESP32 Projects»ESP32 Deep Sleep Mode: Extend Battery Life in IoT Projects
ESP32 Projects

ESP32 Deep Sleep Mode: Extend Battery Life in IoT Projects

Sai Preetham KoyyalaBy Sai Preetham KoyyalaMay 4, 2026Updated:May 7, 2026No Comments2 Mins Read
Share Facebook Twitter Pinterest LinkedIn Tumblr Reddit Telegram Email
Share
Facebook Twitter LinkedIn Pinterest Email
Contents
  • Introduction
  • Power Modes Comparison
  • Project 1: Timer Wake-Up (Most Common)
  • Project 2: Wake on Button Press
  • RTC Memory Explained
  • Real Battery Life Example
  • Conclusion

Introduction

The ESP32 draws ~240mA at full speed — draining a battery in hours. Deep Sleep drops this to as low as 10 microamperes, extending battery life from hours to weeks. This tutorial covers every deep sleep technique.

Power Modes Comparison

Mode Current CPU
Active ~240mA ON
Light Sleep ~0.8mA Paused
Deep Sleep ~10µA OFF

Project 1: Timer Wake-Up (Most Common)

#define SLEEP_SECS 30
RTC_DATA_ATTR int bootCount = 0; // Survives deep sleep!
void setup() {
  Serial.begin(115200);
  bootCount++;
  Serial.println("Boot #" + String(bootCount));
  // Do your work here: read sensor, send data...
  esp_sleep_enable_timer_wakeup(SLEEP_SECS * 1000000ULL);
  esp_deep_sleep_start();
}
void loop() {}

Project 2: Wake on Button Press

#define BUTTON GPIO_NUM_33
void setup() {
  Serial.begin(115200);
  esp_sleep_enable_ext0_wakeup(BUTTON, 1);
  auto cause = esp_sleep_get_wakeup_cause();
  if (cause == ESP_SLEEP_WAKEUP_EXT0) Serial.println("Woke from button!");
  else Serial.println("Normal boot");
  delay(2000);
  esp_deep_sleep_start();
}
void loop() {}

RTC Memory Explained

Variables declared with RTC_DATA_ATTR are stored in RTC memory (8KB) and survive sleep cycles. Use this for counters, timestamps, or flags between wake cycles.

Real Battery Life Example

  • Active always: 3000mAh / 240mA = ~12.5 hours
  • Sleep 29s, active 1s every 30s: avg ~8mA = ~375 hours (15 days)!

Conclusion

Deep sleep is the single most impactful optimization for battery-powered IoT devices. A simple 30-second sleep cycle can extend battery life from hours to weeks.

Related Tutorials

  • Raspberry Pi 5 vs. Raspberry Pi 4: Is the Upgrade Worth It?
  • ESP32 vs Raspberry Pi Pico W: Which One Should You Choose for Your Next IoT Project? (2025 Ultimate Comparison Guide)
  • Choosing the Right Microcontroller: ESP32 vs. ESP8266 Comparison
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Previous ArticleRaspberry Pi Pico W: Getting Started with MicroPython and Wi-Fi
Next Article ESP8266 NodeMCU Web Server: Control LEDs from Any Browser
Sai Preetham Koyyala
  • Website
  • Facebook
  • X (Twitter)
  • Instagram
  • LinkedIn

Hello, I am Sai Preetham Koyyala. I'm an electronics engineer by profession, a DIY enthusiast by passion. ESP32 and Arduino are the main topics of my work.

Related Posts

ESP32 Projects

Step-by-Step Guide: Interface DHT11 and DHT22 Sensors with ESP32

May 6, 2026
ESP32 Projects

An Introduction to the ESP32 Development Board

May 6, 2026
ESP32 Projects

The Complete ESP32 Pinout Guide: Which Pins to Use?

May 6, 2026
Add A Comment
Leave A Reply Cancel Reply


⚡

Circuit of Things

Free IoT tutorials & electronics projects — powered by KSP Electronics.

📸 Instagram 💬 Community
✓ Official Partner Store

Everything for Your
Next IoT Build

Boards, sensors, modules & kits — fast delivery across India.

ESP32 Arduino Sensors Raspberry Pi 3D Print
🛒 Shop KSP Electronics →
Top Posts

Raspberry Pi: How to Control a DC Motor with L298N and PWN on a Web Server

July 14, 2023

Step-by-Step Guide: Interface DHT11 and DHT22 Sensors with ESP32

May 6, 2026

Esp8266 / NodeMCU Pinout: A Comprehensive Guide for Beginners

June 25, 2023
Available for Projects

Hire Us for IoT Development

End-to-end solutions for your needs:

  • → ESP32 & Embedded Systems
  • → LoRaWAN & Cloud Dashboards
  • → Custom Hardware Design
  • → IoT Product Prototyping
View Services →

Get Free Tutorials & Discounts!

Subscribe to get the latest IoT tutorials and exclusive hardware discount codes for KSP Electronics delivered directly to your inbox.

Follow Us
  • Instagram
  • Telegram
About Circuit of Things

We are a community-driven engineering platform dedicated to IoT, Robotics, and DIY electronics tutorials.

Proudly partnered with KSP Electronics.

Quick Links
  • Home
  • ESP32 Projects
  • Arduino Projects
  • IoT Tutorials
  • Sensors & Modules
  • Shop on KSP Electronics
  • Electro Calc
Legal & Support
  • Terms and Conditions
  • Disclaimer
  • Privacy Policy
  • Contact Us
📩

Get Free Tutorials & Discounts!

Subscribe for IoT tutorials and exclusive KSP discount codes.

Subscription Form


By subscribing, you agree to our Privacy Policy. No spam, ever.

X (Twitter) Instagram YouTube WhatsApp
  • Terms and Conditions
  • Disclaimer
  • Privacy Policy
  • Contact Us
© 2026 Circuit of Things. Designed by Sai Preetham Koyyala.

Type above and press Enter to search. Press Esc to cancel.