Approved Reseller of Raspberry Pi

ESP32 Sleep Modes และการใช้งาน Deep Sleep Mode — คู่มือสมบูรณ์ 💤⚡

ESP32 Sleep Modes - ประหยัดพลังงานสูงสุด

ESP32 Sleep Modes - ประหยัดพลังงานสูงสุด

เจาะลึกทุก Sleep Mode ของ ESP32 เพื่อการใช้งานแบตเตอรี่ที่ยาวนานที่สุด

🔋⚡💤

ESP32 เป็น Microcontroller ที่มีความสามารถสูงและรองรับ WiFi/Bluetooth แต่ข้อเสียคือใช้พลังงานค่อนข้างมาก โดยเฉพาะเมื่อทำงานเต็มประสิทธิภาพ ซึ่งอาจใช้กระแสไฟถึง 240mA ทำให้ไม่เหมาะกับโปรเจคที่ใช้แบตเตอรี่ แต่ ESP32 มี Sleep Modes หลายแบบที่ช่วยลดการใช้พลังงานลงได้อย่างมาก จาก 240mA เหลือเพียง 10µA (ลดลง 24,000 เท่า!) ในบทความนี้เราจะมาเรียนรู้ทุก Sleep Mode ของ ESP32 พร้อมตัวอย่างโค้ดและการใช้งานจริง

วิดีโอสอนการใช้งาน ESP32 Sleep Modes

ภาพรวม Sleep Modes ของ ESP32

ESP32 Power Consumption
เปรียบเทียบการใช้พลังงานของ ESP32 ในแต่ละ Mode

ESP32 มี Sleep Modes ทั้งหมด 5 แบบ ที่ออกแบบมาเพื่อประหยัดพลังงานในสถานการณ์ต่างๆ แต่ละ Mode มีการปิด/เปิดส่วนประกอบต่างๆ ของชิปเพื่อให้ได้สมดุลระหว่างการประหยัดพลังงานและความสามารถในการตื่นขึ้นมาทำงาน

Sleep Modes ทั้ง 5 แบบ:

  • Active Mode - ทำงานเต็มประสิทธิภาพ (ไม่ Sleep)
  • 📡 Modem Sleep - ปิด WiFi/Bluetooth แต่ CPU ยังทำงาน
  • 💤 Light Sleep - หยุด CPU ชั่วคราว แต่เก็บ RAM ไว้
  • 😴 Deep Sleep - ปิดเกือบทุกอย่าง เหลือแค่ RTC
  • 🌙 Hibernation - ประหยัดสุด ปิดแม้แต่ RTC Timer
Active Mode
240mA
การใช้งานปกติ
Deep Sleep
10µA
ประหยัด 99.996%
Hibernation
5µA
ประหยัดสุด!
Sleep Mode กระแสไฟ CPU WiFi/BT RAM RTC
Active 80-240mA ✅ ทำงาน ✅ ทำงาน ✅ เก็บไว้ ✅ ทำงาน
Modem Sleep 20-68mA ✅ ทำงาน ❌ ปิด ✅ เก็บไว้ ✅ ทำงาน
Light Sleep 0.8mA ⏸️ หยุด ❌ ปิด ✅ เก็บไว้ ✅ ทำงาน
Deep Sleep 10µA ❌ ปิด ❌ ปิด ❌ ลบ ✅ ทำงาน
Hibernation 5µA ❌ ปิด ❌ ปิด ❌ ลบ ⏸️ หยุด

🎯 เลือก Sleep Mode อย่างไร?

  • 💡 Modem Sleep - ต้องการ CPU ทำงานต่อเนื่อง แต่ไม่ใช้ WiFi
  • Light Sleep - ต้องการตื่นเร็ว และเก็บข้อมูลใน RAM
  • 🔋 Deep Sleep - ประหยัดสุด สำหรับโปรเจคแบตเตอรี่
  • 🌙 Hibernation - ประหยัดที่สุด แต่ตื่นได้เฉพาะ External Wake-up

Active Mode - โหมดทำงานปกติ

ESP32 Hardware
ESP32 Hardware Components

Active Mode คือโหมดการทำงานปกติของ ESP32 ที่ทุกส่วนประกอบทำงานเต็มประสิทธิภาพ ไม่มีการ Sleep ใดๆ

ส่วนประกอบที่ทำงาน:

  • 🧠 Dual-Core CPU - Xtensa LX6 240MHz ทั้ง 2 Core
  • 📡 WiFi - 802.11 b/g/n 2.4GHz
  • 🔵 Bluetooth - Classic และ BLE
  • 💾 SRAM - 520KB สำหรับเก็บข้อมูล
  • RTC - Real-Time Clock
  • 🔌 Peripherals - GPIO, ADC, DAC, I2C, SPI, UART

การใช้พลังงาน:

  • CPU Only - 80mA (ไม่ใช้ WiFi/BT)
  • 📡 WiFi Active - 160-260mA (ขณะส่ง/รับข้อมูล)
  • 🔵 Bluetooth Active - 100-130mA
  • 🔥 Full Load - 240mA (ใช้ทุกอย่างพร้อมกัน)

⚠️ ปัญหาของ Active Mode:

  • 🔋 แบตเตอรี่หมดเร็ว - ใช้ 240mA = แบต 1000mAh หมดใน 4 ชั่วโมง
  • 🔥 ร้อน - ชิปร้อนเมื่อทำงานหนัก
  • 💰 ค่าไฟสูง - ไม่เหมาะกับอุปกรณ์ที่ต้องทำงานนานๆ

เหมาะกับ:

  • 🌐 Web Server - ต้องรับ Request ตลอดเวลา
  • 📹 Video Streaming - ต้องการ Bandwidth สูง
  • 🎮 Real-time Control - ควบคุมแบบ Real-time
  • 🔌 Plugged Power - เสียบปลั๊กไฟตลอดเวลา

Modem Sleep - ปิด WiFi/Bluetooth

Modem Sleep Mode จะปิดเฉพาะส่วน WiFi และ Bluetooth แต่ CPU ยังคงทำงานต่อเนื่อง เหมาะกับงานที่ต้องการ CPU ทำงานแต่ไม่ต้องการ Wireless Communication

การทำงาน:

  • CPU ทำงาน - ประมวลผลต่อเนื่อง
  • WiFi ปิด - ไม่สามารถเชื่อมต่อ WiFi
  • Bluetooth ปิด - ไม่สามารถใช้ BT
  • RAM เก็บไว้ - ข้อมูลไม่หาย
  • Peripherals ทำงาน - GPIO, I2C, SPI ใช้ได้

การใช้พลังงาน:

  • 20-68mA - ขึ้นอยู่กับงานที่ CPU ทำ
  • 📉 ประหยัด 70-80% - เทียบกับ Active Mode
// Modem Sleep Example #include void setup() { Serial.begin(115200); // เชื่อมต่อ WiFi WiFi.begin("SSID", "PASSWORD"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("\nWiFi Connected!"); // เปิด Modem Sleep WiFi.setSleep(true); Serial.println("Modem Sleep Enabled"); } void loop() { // CPU ยังทำงานต่อเนื่อง // แต่ WiFi จะปิดเมื่อไม่ใช้งาน Serial.println("CPU is working..."); // ทำงานอื่นๆ ที่ไม่ต้องใช้ WiFi int sensorValue = analogRead(34); Serial.println(sensorValue); delay(1000); }

💡 Use Cases:

  • 📊 Data Logging - อ่าน Sensor และบันทึกใน SD Card
  • 🎵 Audio Processing - ประมวลผลเสียงแบบ Real-time
  • 🎮 Game Console - เล่นเกมโดยไม่ต้องใช้ WiFi
  • 🤖 Robot Control - ควบคุมหุ่นยนต์แบบ Offline

ข้อดี:

  • ✅ CPU ทำงานต่อเนื่อง ไม่มี Delay
  • ✅ RAM ไม่หาย สามารถเก็บข้อมูลได้
  • ✅ Peripherals ใช้งานได้ปกติ
  • ✅ ตื่นขึ้นมาทันที ไม่ต้องรอ

ข้อเสีย:

  • ❌ ยังใช้พลังงานค่อนข้างมาก (20-68mA)
  • ❌ ไม่เหมาะกับโปรเจคแบตเตอรี่
  • ❌ ไม่สามารถใช้ WiFi/BT ได้

Light Sleep - หยุด CPU ชั่วคราว

Light Sleep Mode จะหยุด CPU ชั่วคราว แต่เก็บข้อมูลใน RAM ไว้ทั้งหมด เมื่อตื่นขึ้นมาจะทำงานต่อจากจุดเดิมได้ทันที

การทำงาน:

  • ⏸️ CPU หยุด - หยุดประมวลผลชั่วคราว
  • WiFi/BT ปิด - ไม่สามารถใช้ Wireless
  • RAM เก็บไว้ - ข้อมูลไม่หาย
  • RTC ทำงาน - นับเวลาต่อเนื่อง
  • ตื่นเร็ว - ใช้เวลาเพียง 1-2ms

การใช้พลังงาน:

  • 0.8mA - ประหยัดมาก!
  • 📉 ประหยัด 99.5% - เทียบกับ Active Mode
// Light Sleep Example #include void setup() { Serial.begin(115200); delay(1000); Serial.println("ESP32 Light Sleep Example"); // ตั้งค่า Wake-up Source // ตื่นด้วย Timer (5 วินาที) esp_sleep_enable_timer_wakeup(5 * 1000000); // microseconds // ตื่นด้วย GPIO (ปุ่มกด) esp_sleep_enable_ext0_wakeup(GPIO_NUM_33, 1); // HIGH = ตื่น Serial.println("Going to Light Sleep..."); delay(100); } void loop() { // เข้า Light Sleep esp_light_sleep_start(); // ตื่นขึ้นมาแล้ว! Serial.println("Woke up from Light Sleep!"); // ตรวจสอบสาเหตุที่ตื่น esp_sleep_wakeup_cause_t wakeup_reason = esp_sleep_get_wakeup_cause(); switch(wakeup_reason) { case ESP_SLEEP_WAKEUP_TIMER: Serial.println("Wakeup by Timer"); break; case ESP_SLEEP_WAKEUP_EXT0: Serial.println("Wakeup by Button"); break; default: Serial.println("Wakeup by other reason"); break; } // ทำงานที่ต้องการ Serial.println("Doing some work..."); delay(2000); Serial.println("Going back to Light Sleep..."); delay(100); }

Timer Wake-up

ตื่นตามเวลาที่กำหนด เหมาะกับการอ่าน Sensor เป็นระยะ

🔘

GPIO Wake-up

ตื่นเมื่อมีสัญญาณที่ GPIO เหมาะกับปุ่มกดหรือ Sensor

👆

Touch Wake-up

ตื่นเมื่อสัมผัส Touch Sensor เหมาะกับ UI แบบสัมผัส

📡

ULP Wake-up

ตื่นจาก ULP Coprocessor เหมาะกับงานซับซ้อน

💡 Use Cases:

  • 🌡️ Temperature Logger - อ่านอุณหภูมิทุก 5 นาที
  • 🚪 Door Sensor - ตื่นเมื่อเปิด/ปิดประตู
  • 💧 Water Level Monitor - ตรวจสอบระดับน้ำ
  • 🔔 Smart Doorbell - ตื่นเมื่อกดกริ่ง

ข้อดี:

  • ✅ ประหยัดพลังงานมาก (0.8mA)
  • ✅ ตื่นเร็ว (1-2ms)
  • ✅ RAM ไม่หาย ทำงานต่อได้ทันที
  • ✅ Wake-up Sources หลากหลาย

ข้อเสีย:

  • ❌ ไม่สามารถใช้ WiFi/BT ได้
  • ❌ CPU หยุดทำงาน ไม่สามารถประมวลผลได้

Deep Sleep - ประหยัดพลังงานสูงสุด

Deep Sleep Circuit
Deep Sleep Mode Implementation Circuit

Deep Sleep Mode เป็นโหมดประหยัดพลังงานสูงสุดของ ESP32 ที่ปิดเกือบทุกส่วนประกอบ เหลือเพียง RTC (Real-Time Clock) ทำงานอยู่เพื่อนับเวลาและตื่นขึ้นมา

การทำงาน:

  • CPU ปิด - ไม่ประมวลผลใดๆ
  • WiFi/BT ปิด - ไม่สามารถใช้ Wireless
  • RAM ลบ - ข้อมูลหายหมด Restart ใหม่
  • RTC ทำงาน - นับเวลาและเก็บข้อมูลใน RTC Memory
  • ใช้ไฟน้อยมาก - เพียง 10µA
Deep Sleep Hardware
ESP32 Deep Sleep Mode Hardware Setup

การใช้พลังงาน:

  • 10µA - ประหยัดสุดๆ!
  • 📉 ประหยัด 99.996% - เทียบกับ Active Mode
  • 🔋 แบต 1000mAh - ใช้ได้นาน 11 ปี!
// Deep Sleep Example - Basic #include #define uS_TO_S_FACTOR 1000000 // Conversion factor for micro seconds to seconds #define TIME_TO_SLEEP 60 // Time ESP32 will go to sleep (in seconds) void setup() { Serial.begin(115200); delay(1000); Serial.println("ESP32 Deep Sleep Example"); // ตั้งค่า Wake-up Timer (60 วินาที) esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR); Serial.println("Setup ESP32 to sleep for " + String(TIME_TO_SLEEP) + " Seconds"); // ทำงานที่ต้องการ (เช่น อ่าน Sensor) int sensorValue = analogRead(34); Serial.println("Sensor Value: " + String(sensorValue)); // เข้า Deep Sleep Serial.println("Going to Deep Sleep now..."); delay(100); esp_deep_sleep_start(); // โค้ดหลังจากนี้จะไม่ทำงาน Serial.println("This will never be printed"); } void loop() { // Loop จะไม่ทำงาน เพราะ ESP32 จะ Restart หลังตื่น }
// Deep Sleep Example - External Wake-up #include #define BUTTON_PIN 33 // GPIO33 สำหรับปุ่มกด RTC_DATA_ATTR int bootCount = 0; // เก็บค่าใน RTC Memory void print_wakeup_reason() { esp_sleep_wakeup_cause_t wakeup_reason; wakeup_reason = esp_sleep_get_wakeup_cause(); switch(wakeup_reason) { case ESP_SLEEP_WAKEUP_EXT0: Serial.println("Wakeup caused by external signal using RTC_IO"); break; case ESP_SLEEP_WAKEUP_TIMER: Serial.println("Wakeup caused by timer"); break; default: Serial.printf("Wakeup was not caused by deep sleep: %d\n", wakeup_reason); break; } } void setup() { Serial.begin(115200); delay(1000); // เพิ่ม Boot Count ++bootCount; Serial.println("Boot number: " + String(bootCount)); // แสดงสาเหตุที่ตื่น print_wakeup_reason(); // ตั้งค่า Wake-up Sources // 1. Timer Wake-up (60 วินาที) esp_sleep_enable_timer_wakeup(60 * 1000000); // 2. External Wake-up (ปุ่มกด) esp_sleep_enable_ext0_wakeup(GPIO_NUM_33, 1); // 1 = HIGH, 0 = LOW // ทำงานที่ต้องการ Serial.println("Doing some work..."); int sensorValue = analogRead(34); Serial.println("Sensor: " + String(sensorValue)); // เข้า Deep Sleep Serial.println("Going to Deep Sleep..."); delay(100); esp_deep_sleep_start(); } void loop() { // ไม่ทำงาน }
Sleep Modes Testing
ESP32 Sleep Modes Testing Setup
// Deep Sleep Example - Touch Wake-up #include #define THRESHOLD 40 // Touch Threshold void callback() { // Callback function (ไม่จำเป็นสำหรับ Deep Sleep) } void setup() { Serial.begin(115200); delay(1000); Serial.println("ESP32 Touch Wake-up Example"); // ตั้งค่า Touch Wake-up touchAttachInterrupt(T0, callback, THRESHOLD); // T0 = GPIO4 esp_sleep_enable_touchpad_wakeup(); // ตั้งค่า Timer Wake-up (สำรอง) esp_sleep_enable_timer_wakeup(60 * 1000000); // แสดงสาเหตุที่ตื่น esp_sleep_wakeup_cause_t wakeup_reason = esp_sleep_get_wakeup_cause(); if (wakeup_reason == ESP_SLEEP_WAKEUP_TOUCHPAD) { Serial.println("Wakeup by Touch!"); } // ทำงาน Serial.println("Working..."); delay(2000); // เข้า Deep Sleep Serial.println("Going to Deep Sleep..."); delay(100); esp_deep_sleep_start(); } void loop() { // ไม่ทำงาน }
Deep Sleep Testing
ESP32 Deep Sleep Mode Testing with Multimeter

🔑 RTC Memory - เก็บข้อมูลข้าม Deep Sleep:

  • 💾 RTC_DATA_ATTR - ประกาศตัวแปรเก็บใน RTC Memory
  • 📊 8KB - มีพื้นที่ 8KB สำหรับเก็บข้อมูล
  • ไม่หาย - ข้อมูลไม่หายหลังตื่นจาก Deep Sleep
  • ใช้ไฟน้อย - ไม่เพิ่มการใช้พลังงาน
🌡️

Weather Station

อ่านอุณหภูมิทุก 10 นาที ส่งข้อมูลผ่าน WiFi แล้ว Sleep

🚪

Door Sensor

Sleep จนกว่าจะมีคนเปิดประตู แล้วส่งแจ้งเตือน

🌱

Plant Monitor

ตรวจสอบความชื้นดินทุก 1 ชั่วโมง แจ้งเตือนเมื่อแห้ง

📦

Package Tracker

ส่งตำแหน่ง GPS ทุก 30 นาที ประหยัดแบต

ข้อดี:

  • ✅ ประหยัดพลังงานสูงสุด (10µA)
  • ✅ แบตเตอรี่ใช้ได้นานมาก (หลายเดือน-หลายปี)
  • ✅ เหมาะกับโปรเจคแบตเตอรี่
  • ✅ มี RTC Memory เก็บข้อมูล

ข้อเสีย:

  • ❌ RAM หายหมด ต้อง Restart ใหม่
  • ❌ ตื่นช้า (ประมาณ 100ms)
  • ❌ ต้องเชื่อมต่อ WiFi ใหม่ทุกครั้ง
  • ❌ ไม่สามารถทำงาน Real-time ได้

Hibernation Mode - ประหยัดที่สุด

Hibernation Mode เป็นโหมดประหยัดพลังงานที่สุดของ ESP32 ที่ปิดแม้แต่ RTC Timer ทำให้ใช้พลังงานเพียง 5µA แต่ตื่นได้เฉพาะจาก External Wake-up เท่านั้น

การทำงาน:

  • CPU ปิด - ไม่ประมวลผลใดๆ
  • WiFi/BT ปิด - ไม่สามารถใช้ Wireless
  • RAM ลบ - ข้อมูลหายหมด
  • RTC Timer ปิด - ไม่สามารถตื่นด้วย Timer
  • RTC Memory เก็บไว้ - เก็บข้อมูลใน RTC Memory ได้
  • ใช้ไฟน้อยที่สุด - เพียง 5µA

การใช้พลังงาน:

  • 5µA - ประหยัดที่สุด!
  • 📉 ประหยัด 99.998% - เทียบกับ Active Mode
  • 🔋 แบต 1000mAh - ใช้ได้นาน 22 ปี!
// Hibernation Mode Example #include #include #define BUTTON_PIN GPIO_NUM_33 RTC_DATA_ATTR int bootCount = 0; void setup() { Serial.begin(115200); delay(1000); ++bootCount; Serial.println("Boot number: " + String(bootCount)); // ตั้งค่า External Wake-up (EXT0) // ตื่นเมื่อ GPIO33 เป็น HIGH esp_sleep_enable_ext0_wakeup(BUTTON_PIN, 1); // หรือใช้ EXT1 สำหรับหลาย GPIO // const uint64_t ext_wakeup_pin_1_mask = 1ULL << GPIO_NUM_33; // esp_sleep_enable_ext1_wakeup(ext_wakeup_pin_1_mask, ESP_EXT1_WAKEUP_ANY_HIGH); // ปิด RTC Peripherals ที่ไม่ใช้ esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_OFF); esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_OFF); esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_FAST_MEM, ESP_PD_OPTION_OFF); // ทำงานที่ต้องการ Serial.println("Doing work..."); delay(2000); // เข้า Hibernation (Deep Sleep with RTC off) Serial.println("Going to Hibernation..."); Serial.println("Press button to wake up!"); delay(100); esp_deep_sleep_start(); } void loop() { // ไม่ทำงาน }

⚠️ ข้อจำกัดของ Hibernation:

  • ไม่มี Timer Wake-up - ตื่นได้เฉพาะ External Wake-up
  • ไม่มี Touch Wake-up - Touch Sensor ไม่ทำงาน
  • ไม่มี ULP Wake-up - ULP Coprocessor ปิด
  • มีเฉพาะ GPIO Wake-up - ตื่นด้วย EXT0 หรือ EXT1
Wake-up Source Deep Sleep Hibernation
Timer ✅ รองรับ ❌ ไม่รองรับ
External (EXT0) ✅ รองรับ ✅ รองรับ
External (EXT1) ✅ รองรับ ✅ รองรับ
Touch Pad ✅ รองรับ ❌ ไม่รองรับ
ULP ✅ รองรับ ❌ ไม่รองรับ
🚨

Emergency Button

Sleep จนกว่าจะกดปุ่มฉุกเฉิน ประหยัดแบตสุดๆ

🔔

Doorbell

Sleep จนกว่าจะมีคนกดกริ่ง แบตใช้ได้หลายปี

💧

Water Leak Detector

Sleep จนกว่าจะตรวจพบน้ำรั่ว แล้วส่งแจ้งเตือน

🔐

Security Sensor

Sleep จนกว่าจะตรวจพบการเคลื่อนไหว

ข้อดี:

  • ✅ ประหยัดพลังงานที่สุด (5µA)
  • ✅ แบตเตอรี่ใช้ได้นานที่สุด (หลายปี)
  • ✅ เหมาะกับอุปกรณ์ที่ใช้งานนานๆ ครั้ง
  • ✅ มี RTC Memory เก็บข้อมูล

ข้อเสีย:

  • ❌ ตื่นได้เฉพาะ External Wake-up
  • ❌ ไม่มี Timer Wake-up
  • ❌ ไม่มี Touch Wake-up
  • ❌ ต้องมีสัญญาณภายนอกเพื่อตื่น

🎯 เลือก Deep Sleep หรือ Hibernation?

  • ต้องการ Timer Wake-up → ใช้ Deep Sleep
  • 👆 ต้องการ Touch Wake-up → ใช้ Deep Sleep
  • 🔘 ตื่นด้วย GPIO เท่านั้น → ใช้ Hibernation (ประหยัดกว่า)
  • 🔋 ต้องการประหยัดสุด → ใช้ Hibernation

สรุป

ESP32 มี Sleep Modes ที่หลากหลายให้เลือกใช้ตามความต้องการ ตั้งแต่ Modem Sleep ที่ CPU ยังทำงานต่อเนื่อง ไปจนถึง Hibernation ที่ประหยัดพลังงานสูงสุด การเลือกใช้ Sleep Mode ที่เหมาะสมจะช่วยให้โปรเจคของคุณใช้แบตเตอรี่ได้นานขึ้นอย่างมาก

สรุป Sleep Modes:

  • Active Mode - 240mA - ทำงานเต็มประสิทธิภาพ
  • 📡 Modem Sleep - 20-68mA - ปิด WiFi/BT แต่ CPU ทำงาน
  • 💤 Light Sleep - 0.8mA - หยุด CPU แต่เก็บ RAM
  • 😴 Deep Sleep - 10µA - ปิดเกือบทุกอย่าง มี Timer Wake-up
  • 🌙 Hibernation - 5µA - ประหยัดสุด ตื่นด้วย GPIO เท่านั้น

การเลือกใช้:

  • 🌐 Web Server / Real-time → Active Mode
  • 📊 Data Logging (Offline) → Modem Sleep
  • Periodic Sensor Reading → Light Sleep หรือ Deep Sleep
  • 🔋 Battery-powered (Long-term) → Deep Sleep หรือ Hibernation
  • 🚨 Event-triggered Only → Hibernation

เทคนิคประหยัดพลังงาน:

  • ✅ ใช้ Deep Sleep แทน Light Sleep เมื่อไม่ต้องการเก็บ RAM
  • ✅ ปิด WiFi เมื่อไม่ใช้งาน
  • ✅ ลด Clock Speed เมื่อไม่ต้องการประสิทธิภาพสูง
  • ✅ ใช้ RTC Memory แทน RAM สำหรับข้อมูลสำคัญ
  • ✅ ออกแบบ Hardware ให้ใช้ไฟน้อย (เช่น ใช้ LDO ที่มี Quiescent Current ต่ำ)

🎯 ตัวอย่างการคำนวณอายุแบตเตอรี่:

  • 🔋 แบตเตอรี่ 1000mAh
  • Active Mode (240mA) → ใช้ได้ 4 ชั่วโมง
  • 💤 Light Sleep (0.8mA) → ใช้ได้ 52 วัน
  • 😴 Deep Sleep (10µA) → ใช้ได้ 11 ปี
  • 🌙 Hibernation (5µA) → ใช้ได้ 22 ปี
🎉

ช้อป ESP32 / เข้าร่วม Community

หากคุณสนใจ ESP32, Sensor Module หรืออุปกรณ์สำหรับโปรเจค IoT และ Low-Power สามารถกดปุ่มด้านล่างนี้ได้เลย หรืออยากพูดคุยแลกเปลี่ยนความรู้เกี่ยวกับ ESP32 Sleep Modes ก็เข้าร่วม Community ของเราได้

เนื้อหาจัดทำโดย GlobalByte - ศูนย์รวมความรู้ด้าน IoT และ Low-Power Projects

แท็ก


Blog posts

© 2025 บริษัท โกลบอลโทรนิค อินเตอร์เทรด จํากัด, ขับเคลื่อนโดย Shopify

    • PayPal

    เข้าสู่ระบบ

    ลืมรหัสผ่านใช่ไหม?

    ยังไม่มีบัญชีใช่ไหม?
    สร้างบัญชี