- Mengapa Deep Sleep? Perbandingan Daya & Umur Baterai
- Mode Daya ESP32 (Active, Modem, Light Sleep, Deep Sleep, Hibernate)
- Deep Sleep dengan Timer Wakeup
- Deep Sleep dengan GPIO Wakeup (Touch/Button)
- Deep Sleep dengan ULP Coprocessor
- Mengukur Konsumsi Daya (Multimeter & INA219)
- Mengirim Data Sebelum Tidur (WiFi Flush & MQTT Disconnect)
- Proyek: Sensor Suhu Battery-Powered 1 Tahun
- Quiz Pemahaman
1. Mengapa Deep Sleep? Perbandingan Daya & Umur Baterai
ESP32 adalah mikrokontroler yang sangat powerful dengan WiFi dan Bluetooth built-in, namun kemampuan tersebut datang dengan konsumsi daya yang relatif besar jika dibandingkan mikrokontroler sederhana seperti ATtiny85. Saat mode aktif penuh dengan WiFi aktif, ESP32 bisa mengonsumsi hingga 240 mA โ jumlah yang cukup untuk menghabiskan baterai AAA dalam waktu kurang dari dua hari.
Inilah mengapa ESP32 menyediakan fitur Deep Sleep: mode tidur ultra-rendah daya yang hanya mengonsumsi sekitar 5-10 ยตA. Selisihnya luar biasa โ hampir 50.000 kali lebih hemat daya dibanding mode aktif!
| Skenario | Konsumsi Daya | Umur Baterai 1000mAh |
|---|---|---|
| WiFi aktif (RX/TX) | 240 mA | ~4 jam |
| WiFi idle, aktif | 150 mA | ~6.7 jam |
| Modem Sleep (CPU on) | 20 mA | ~50 jam |
| Light Sleep | 0.8 mA | ~52 hari |
| Deep Sleep | 0.005 mA (5 ยตA) | ~22 tahun* |
| Hibernate | 0.0025 mA (2.5 ยตA) | ~45 tahun* |
*Umur baterai pada Deep Sleep dihitung secara teoretis tanpa memperhitungkan self-discharge baterai (sekitar 5-20% per tahun), arus bocor regulator tegangan, dan arus sensor yang terpasang. Umur baterai nyata biasanya 1-3 tahun untuk proyek IoT sederhana yang bangun setiap 5-15 menit sekali.
Bayangkan ESP32 seperti manusia. Mode aktif adalah saat berlari maraton (boros energi). Deep Sleep adalah tidur nyenyak di malam hari โ tubuh tetap hidup tapi konsumsi energi sangat minimal. Setiap kali terbangun, ESP32 perlu "pemanasan" sebentar sebelum bisa beraktivitas kembali.
2. Mode Daya ESP32
ESP32 memiliki lima mode operasi utama, masing-masing menawarkan keseimbangan berbeda antara fungsionalitas dan efisiensi daya. Memahami perbedaan masing-masing mode adalah kunci untuk merancang proyek IoT hemat daya yang efektif.
Konsumsi Daya (mA)
โ Active Mode (WiFi ON) โ 240 mA
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Active Mode (WiFi OFF) โ 24 mA
โโโโโโ
โ Modem Sleep โ 20 mA
โโโโโ
โ Light Sleep โ 0.8 mA
โ
โ Deep Sleep โ 0.005 mA (5 ยตA)
ยท
โ Hibernate โ 0.0025 mA (2.5 ยตA)
ยท
2.1 Active Mode (Mode Aktif)
Dalam mode aktif, kedua core CPU berjalan penuh. Modul WiFi dan/atau Bluetooth bisa aktif atau dimatikan. Mode ini cocok untuk perhitungan berat atau komunikasi real-time, tetapi paling boros daya. Gunakan hanya saat benar-benar diperlukan.
2.2 Modem Sleep
CPU tetap berjalan tetapi modul WiFi/Bluetooth dimatikan saat tidak digunakan. ESP32 akan mematikan modem secara otomatis saat tidak ada paket data yang ditransmisikan. Mode ini sangat berguna untuk aplikasi yang memproses data secara lokal tanpa komunikasi konstan.
2.3 Light Sleep
CPU berhenti sementara clock dimatikan, namun semua RAM tetap terisi. ESP32 bisa terbangun dari timer, GPIO, atau peripheral lainnya. Kekurangannya: waktu wake-up relatif cepat dan semua state tetap tersimpan, tetapi konsumsi daya masih terlalu tinggi untuk baterai kecil.
2.4 Deep Sleep
Mode yang paling banyak digunakan untuk proyek hemat daya. CPU, WiFi, Bluetooth, dan sebagian besar peripheral dimatikan. Yang tetap aktif hanyalah:
- RTC (Real-Time Clock) โ untuk timer wakeup
- RTC Memory โ hingga 8 KB data bisa disimpan
- ULP Coprocessor โ bisa menjalankan program sederhana
- GPIO wake pin โ untuk membangunkan dari tombol/touch
Saat masuk Deep Sleep, semua isi SRAM hilang. Program akan dimulai ulang dari awal (seperti reboot). Inilah sebabnya kita perlu menyimpan data penting di RTC Memory atau EEPROM/SPIFFS sebelum tidur.
2.5 Hibernate
Mode paling hemat daya. Hampir semua komponen dimatikan termasuk RTC. Hanya skema wake-up eksternal yang tetap aktif. ESP32 harus boot ulang dari awal setiap kali terbangun โ tidak ada RTC memory yang tersimpan. Cocok untuk skenario wake-up eksternal yang sangat jarang.
| Mode | CPU | WiFi/BT | RAM | Wake Source |
|---|---|---|---|---|
| Active | โ Running | โ Bisa ON/OFF | โ Full | - |
| Modem Sleep | โ Running | โ Dimatikan | โ Full | - |
| Light Sleep | โ Dijeda | โ Dimatikan | โ Full | Timer, GPIO, UART |
| Deep Sleep | โ Mati | โ Mati | โ ๏ธ RTC only | Timer, GPIO, Touch, ULP |
| Hibernate | โ Mati | โ Mati | โ Hilang | GPIO eksternal |
3. Deep Sleep dengan Timer Wakeup
Mode wakeup paling sederhana dan paling sering digunakan. ESP32 akan bangun secara otomatis setelah interval waktu tertentu yang ditentukan. Ini cocok untuk aplikasi seperti sensor lingkungan yang membaca data secara berkala.
Cara Kerja Timer Wakeup
Library ESP32 Arduino menyediakan fungsi bawaan yang sangat mudah digunakan:
flowchart TD
N0["ESP32 Tombol"]
N1["Pin 1"]
N0 --> N1