Zbotic Logo Zbotic Logo
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

  • Shop
  • About Us
  • Contact Us
  • Reseller
  • Blogs
020 69134444
1800 209 0998
[email protected]
Help Desk
Facebook Twitter Instagram Linkedin YouTube
Zbotic Logo Zbotic Logo
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

All departments
  • 3D Print Service
  • 3D Printer
  • Batteries & Chargers
  • Development Boards
  • Drone Parts
  • EBike parts
  • Sensor Modules
  • Electronic Components
  • Electronic Modules
  • IoT and Wireless
  • Mechanical Parts and Workbench Tools
  • Motors & Drivers & Pumps & Actuators
  • DIY and Robot Kits
  • Show more
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
Return to previous page
Home IoT & Smart Home

ESP32 Proximity Sensor Wake: Ultra-Low Power IoT Design

ESP32 Proximity Sensor Wake: Ultra-Low Power IoT Design

March 11, 2026 /Posted byJayesh Jain / 0

One of the most powerful yet underused features of the ESP32 is its ability to sleep at near-zero power consumption and wake up instantly when a proximity or motion sensor detects activity. The ESP32 proximity sensor wake low power design pattern can reduce your device’s average current draw from 200mA (active Wi-Fi) to under 50 microamps during sleep — a 4000x reduction. This makes battery-powered IoT deployments viable for months or even years on a single charge.

In this tutorial, we will explore every wake source the ESP32 supports, how to interface PIR and IR proximity sensors as wake triggers, and how to write firmware that boots fast, does its job, and returns to sleep — all optimized for real Indian IoT deployments where reliable 4G connectivity and battery longevity are non-negotiable.

Table of Contents

  1. ESP32 Sleep Modes Explained
  2. Real Power Consumption Numbers
  3. Wake Sources: EXT0, EXT1, Timer, ULP
  4. Wiring and Code: PIR Sensor Wake
  5. Using IR Proximity Sensors for Wake
  6. Fast Boot Techniques for IoT Responsiveness
  7. Real-World Applications in India
  8. Frequently Asked Questions

ESP32 Sleep Modes Explained

The ESP32 has five power modes, ranging from full performance to near-complete shutdown:

Mode Current Draw What Stays Active
Active (Wi-Fi TX) ~240mA peak Everything
Modem Sleep ~20mA CPU, RAM, peripherals
Light Sleep ~2mA RTC, ULP, RAM retained
Deep Sleep ~10-50µA RTC timer, ULP, RTC memory
Hibernation ~5µA RTC timer only

For proximity-triggered IoT nodes, Deep Sleep is the sweet spot. The RTC (Real Time Clock) peripheral stays powered and can monitor external GPIO pins for wake-up events. When a PIR or IR sensor output goes HIGH (or LOW), the ESP32 wakes from deep sleep in under 1ms, executes your code, and returns to sleep.

Real Power Consumption Numbers

Let us calculate battery life for a typical IoT node that wakes up 10 times per day to send a 100-byte HTTPS POST:

  • Deep sleep current: 25µA
  • Active time per wake cycle: 3 seconds at 150mA average (Wi-Fi connection + HTTPS POST)
  • Energy per cycle: 150mA × 3s = 0.125mAh
  • Daily active energy: 10 cycles × 0.125mAh = 1.25mAh
  • Daily sleep energy: (24×60×60 – 30)s × 0.025mA = 2.16mAh
  • Total daily: ~3.41mAh

A 18650 cell (3000mAh) would theoretically last 880 days — nearly 2.5 years. In practice, expect 30-50% less due to battery self-discharge, voltage regulator losses, and occasional Wi-Fi reconnection delays. Still, 1-1.5 years on a single cell is very achievable.

4 x 18650 Lithium Battery Shield

4 x 18650 Lithium Battery Shield V8/V9 for ESP32

Quadruple your deep-sleep IoT node’s battery life with this 4-cell 18650 shield — enough capacity for years of proximity-triggered operation in the field.

View on Zbotic

Wake Sources: EXT0, EXT1, Timer, ULP

ESP32 deep sleep supports four wake source types relevant to proximity sensing:

EXT0 — Single GPIO Wake

Wakes when a single RTC GPIO goes HIGH or LOW. Best for a single PIR or IR sensor. Only RTC-capable GPIOs work: GPIO 0, 2, 4, 12-15, 25-27, 32-39.

esp_sleep_enable_ext0_wakeup(GPIO_NUM_33, 1); // Wake on GPIO33 HIGH
esp_deep_sleep_start();

EXT1 — Multiple GPIO Wake

Wakes when any (or all) of a set of RTC GPIOs trigger. Perfect for multi-zone proximity detection — hallway, entrance, parking — where any sensor can wake the device.

uint64_t pinMask = (1ULL << GPIO_NUM_33) | (1ULL << GPIO_NUM_32);
esp_sleep_enable_ext1_wakeup(pinMask, ESP_EXT1_WAKEUP_ANY_HIGH);
esp_deep_sleep_start();

Timer Wake

Wakes after a fixed duration. Combine with proximity wake using OR logic — the ESP32 wakes whichever comes first, enabling both event-driven and periodic reporting.

esp_sleep_enable_timer_wakeup(3600 * 1000000ULL); // Wake every 1 hour

ULP (Ultra Low Power) Coprocessor

The ESP32’s ULP is a tiny RISC processor that runs while the main CPU sleeps. It can poll analog sensors, read I2C/SPI, and only wake the main CPU when a threshold is crossed. This gives the lowest power draw for analog proximity sensors but requires ULP assembly programming.

Wiring and Code: PIR Sensor Wake

The HC-SR501 PIR sensor is the most common human presence detector in India. It has a 3.3-5V input and outputs HIGH (3.3V) when motion is detected. This output directly drives an ESP32 RTC GPIO for EXT0 wakeup.

Wiring:

  • PIR VCC → 3.3V (or 5V — HC-SR501 works on both)
  • PIR GND → GND
  • PIR OUT → GPIO 33 (RTC GPIO)
#include <esp_sleep.h>
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <HTTPClient.h>

#define PIR_PIN GPIO_NUM_33
const char* ssid = "YOUR_WIFI";
const char* password = "YOUR_PASSWORD";
RTC_DATA_ATTR int wakeCount = 0; // Persists across deep sleep

void setup() {
  Serial.begin(115200);
  wakeCount++;
  
  esp_sleep_wakeup_cause_t cause = esp_sleep_get_wakeup_cause();
  if (cause == ESP_SLEEP_WAKEUP_EXT0) {
    Serial.println("Woke by PIR sensor — motion detected!");
    connectAndReport();
  } else {
    Serial.println("First boot or timer wake");
  }
  
  Serial.printf("Wake count: %dn", wakeCount);
  Serial.println("Entering deep sleep...");
  
  esp_sleep_enable_ext0_wakeup(PIR_PIN, 1);
  esp_sleep_enable_timer_wakeup(3600 * 1000000ULL); // Hourly heartbeat
  esp_deep_sleep_start();
}

void connectAndReport() {
  WiFi.begin(ssid, password);
  unsigned long start = millis();
  while (WiFi.status() != WL_CONNECTED && millis() - start < 10000) {
    delay(200);
  }
  if (WiFi.status() != WL_CONNECTED) return; // Skip if no WiFi
  
  WiFiClientSecure client;
  client.setInsecure();
  HTTPClient https;
  
  String payload = "{"event":"motion","count":" + String(wakeCount) + "}";
  https.begin(client, "https://your-api.example.com/events");
  https.addHeader("Content-Type", "application/json");
  https.POST(payload);
  https.end();
  WiFi.disconnect(true);
}

void loop() {} // Never reached in deep sleep design
AC 220V PIR Human Body Motion Sensor

AC 220V Security PIR Human Body Motion Sensor Detector

A reliable PIR motion sensor for ESP32 proximity wake projects — detects human body heat up to 7 meters with adjustable sensitivity and time delay.

View on Zbotic

Using IR Proximity Sensors for Wake

IR proximity sensors (TCRT5000 or Sharp GP2Y0A21) detect objects at short range (2cm to 80cm). They are ideal for mailbox alerts, product presence detection on conveyor belts, or door/drawer open detection. Unlike PIR sensors, IR proximity sensors detect objects regardless of body heat, making them versatile for non-human triggers.

Connect the digital output of an IR module to an RTC GPIO pin. Most IR modules have an onboard comparator that pulls the output LOW when an object is detected — so use ESP_EXT1_WAKEUP_ANY_LOW as your trigger level.

For analog IR distance sensors like the Sharp GP2Y0A21, use the ULP coprocessor to periodically sample the ADC and wake the main CPU only when the distance reading drops below a threshold — this avoids the sensor’s own power consumption from dominating your budget.

Fast Boot Techniques for IoT Responsiveness

After a proximity wake event, users expect near-instant response. Here is how to minimize wake latency:

  • Store Wi-Fi credentials in RTC memory: Use RTC_DATA_ATTR to save BSSID, channel, and IP address from the last connection. WiFi.begin(ssid, pass, channel, bssid) reconnects in ~400ms vs 2-3s for a full scan
  • Skip Serial.begin() in production: Serial initialization adds ~5ms and wastes power
  • Use static IP: Eliminate DHCP negotiation (saves 500ms-1s) by assigning a fixed IP
  • Minimize HTTPS handshake time: Cache the server’s session ticket (TLS session resumption) — ESP32 Arduino’s WiFiClientSecure does this automatically after first connection
  • Pre-compute everything before radio on: Read sensors, format JSON, prepare headers — then enable Wi-Fi. The radio takes 300ms to stabilize; use that time productively
Ai Thinker ESP32-C3-01M Wi-Fi + BLE Module

Ai Thinker ESP32-C3-01M Wi-Fi + BLE Module

The ESP32-C3 consumes even less power in deep sleep than the standard ESP32 — perfect for ultra-long-life proximity detection nodes where every microamp matters.

View on Zbotic

Real-World Applications in India

The ESP32 proximity sensor wake pattern is being used across many Indian industries and homes:

Smart Attendance in Schools and Offices

Mount ESP32 nodes at doorways. Each node sleeps until the PIR detects someone entering, wakes, logs the timestamp to a cloud database, and returns to sleep. No RFID cards needed. Battery lasts months.

Temple Footfall Counter

Many temples and religious sites in India track daily visitors. IR beam-break sensors at entry points wake an ESP32 node which increments a counter stored in RTC memory and syncs to the cloud every hour via timer wake.

Agricultural Intrusion Detection

Protect crops and farm equipment from theft by deploying PIR-triggered ESP32 nodes at field boundaries. When motion is detected at night, the node wakes, sends a Telegram alert with GPS coordinates (if GPS module is connected), and returns to sleep.

Smart Letterbox/Courier Alert

An IR sensor inside a letterbox or parcel locker wakes the ESP32 when something is dropped in. The ESP32 sends a WhatsApp/Telegram notification that your courier has arrived — great for Indian flats with unreliable bell systems.

Frequently Asked Questions

Q1: Does deep sleep erase my ESP32’s variable values?

Yes — regular RAM is cleared on wake from deep sleep. Use the RTC_DATA_ATTR qualifier to store variables in the 8KB of RTC SRAM that persists through deep sleep. Example: RTC_DATA_ATTR int eventCount = 0;

Q2: What is the minimum voltage for ESP32 deep sleep?

The ESP32 requires a minimum of 2.3V to operate. Most 3.3V regulators drop out around 2.8-3.0V input. Use a low-dropout (LDO) regulator like the MCP1700-3302 to extract maximum capacity from your battery cells.

Q3: Can I use touch wake instead of PIR?

Yes. ESP32 has 10 capacitive touch GPIOs that can wake from deep sleep. Use esp_sleep_enable_touchpad_wakeup() and calibrate the threshold with touchAttachInterrupt(). Useful for IoT devices with no physical buttons.

Q4: My PIR sensor keeps false-triggering the ESP32 wake. How do I fix it?

PIR sensors need a 30-60 second warm-up period after power-on. Add a delay at startup before configuring the wake source. Also, adjust the HC-SR501’s sensitivity (Sx) potentiometer to reduce range and its time delay (Tx) potentiometer to the minimum (3 seconds) to reduce spurious triggers.

Build Ultra-Low Power IoT Nodes with ESP32

Find ESP32 modules, PIR sensors, battery shields, and expansion boards at Zbotic — India’s trusted source for genuine electronics components.

Shop Low Power IoT Components on Zbotic

Tags: Deep Sleep, ESP32, Low Power IoT, PIR sensor, Proximity Sensor
Share Post
  • Facebook
  • Linkedin
  • Whatsapp
ESP8266 D1 Mini: Small Form Fa...
blog esp8266 d1 mini small form factor wifi for iot projects 595380
blog esp32 wroom vs wrover flash and psram differences explained 595385
ESP32 Wroom vs Wrover: Flash a...

Related posts

Svg%3E
Read more

IoT Home Insurance Sensor Kit: Leak, Smoke, and Motion

April 1, 2026 0
Table of Contents IoT and Home Insurance Water Leak Detection Smoke and Fire Detection Motion and Intrusion Sensing Building the... Continue reading
Svg%3E
Read more

IoT Pet Tracker: GPS Collar with Geofencing Alerts

April 1, 2026 0
Table of Contents Introduction and Overview Hardware Components Required GPS Module Integration with ESP32 Cloud Platform Setup Real-Time Tracking Dashboard... Continue reading
Svg%3E
Read more

IoT Aquaponics Controller: Fish and Plant Automation

April 1, 2026 0
Table of Contents The Water Monitoring Challenge in India Sensor Technologies for Water Building the Sensor Node Data Transmission and... Continue reading
Svg%3E
Read more

IoT Composting Monitor: Temperature and Moisture Tracking

April 1, 2026 0
Table of Contents Why Temperature Monitoring Matters Sensor Selection Guide Hardware Assembly and Wiring Firmware Development Cloud Data Logging Alert... Continue reading
Svg%3E
Read more

IoT Beehive Monitor: Weight, Temperature, and Humidity

April 1, 2026 0
Table of Contents Why Monitor Beehives Weight Measurement System Temperature and Humidity Sensing Building the Monitor Data Analysis for Bee... Continue reading

Add comment Cancel reply

Your email address will not be published. Required fields are marked

Facebook Twitter Instagram Pinterest Linkedin Youtube

Get the latest deals and more.

Download on Google Play Download on the App Store

Call us: 020 69134444 / 1800 209 0998

Monday - Saturday 09:30 AM - 06:00 PM
For Technical Supports Email: [email protected]
For Sales / Enquiries Email: [email protected]

  • My Account

    • Cart

    • Wishlist

    • Checkout

    • My Orders

    • Track Order

    • My Account

  • Information

    • FAQs

    • Blogs

    • Career

    • About Us

    • Contact Us

    • Payment Options

  • Policies

    • Privacy Policy

    • Terms & Conditions

    • GST Input Tax Credit

    • Shipping Return Policy

    • E-Waste Collection Points

    • Our Sitemap

© Zbotic.in is registered trademark of Moxie Supply Pvt Ltd – All Rights Reserved
Login
Use Phone Number
Use Email Address
Not a member yet? Register Now
Reset Password
Use Phone Number
Use Email Address
Register
Already a member? Login Now