MODUL 24 (SPESIALIS IOT): DEEP SLEEP MODE & ENERGY HARVESTING
📌 META MODUL & PRASYARAT
- Bidang Spesialisasi: Low-Power Firmware Optimization & Energy Harvesting.
- Target Pembaca: Pembelajar yang sudah menguasai Sistem Power Supply (Modul 23).
- Learning Outcome:
- Memahami mode hemat daya ESP32 (Active Mode, Modem Sleep, Light Sleep, Deep Sleep).
- Mampu membuat program ESP32 Deep Sleep yang mematikan CPU & WiFi (hanya mengkonsumsi 10 µA).
- Mampu membangunkan ESP32 menggunakan Timer Wakeup, External Touch Wakeup, atau GPIO Ext0/Ext1 Interrupt.
- Mampu menyimpan data penting di memori RTC Fast/Slow SRAM yang tetap bertahan saat Deep Sleep.
- Estimasi Waktu Belajar: 120 Menit.
- Tingkat Kesulitan: 🟡 Menengah (Level 24 / 40).
- Prasyarat: Modul 23 (Perancangan Power Supply, Battery & Solar Power untuk IoT).
📋 TABEL PERBANDINGAN KONSUMSI ARUS MODE SLEEP ESP32
| Mode Operasi ESP32 | Komponen yang Nyala | Arus Konsumsi Rata-rata |
| Active Mode | CPU Dual Core (240MHz) + WiFi + Bluetooth | 160 mA - 260 mA (Boros) |
| Modem Sleep | CPU Nyala, Radio WiFi Mati Sementara | 20 mA - 30 mA |
| Light Sleep | CPU Suspended, ULP Coprocessor & RTC Nyala | 0.8 mA (800 µA) |
| Deep Sleep Mode | CPU MATI TOTAL, WiFi Mati, Hanya RTC Controller Nyala | 10 µA (0.01 mA - SANGAT HEMAT!) |
⚡ CHEAT SHEET KODE ESP32 DEEP SLEEP TIMER WAKEUP
#define uS_TO_S_FACTOR 1000000ULL / Konversi ke mikrodetik /
#define TIME_TO_SLEEP 300 / Waktu tidur dalam detik (5 Menit) /
RTC_DATA_ATTR int bootCount = 0; / Simpan variabel di RTC RAM agar tidak hilang saat sleep /
void setup() {
Serial.begin(115200);
bootCount++;
Serial.printf("ESP32 Bangun! Jumlah Booting: %d\n", bootCount);
// === 1. BACA SENSOR & PUBLISH KE MQTT DI SINI ===
// === 2. ATUR WAKTU BANGUN DEEP SLEEP ===
esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
Serial.println("Masuk ke mode Deep Sleep selama 5 Menit...");
Serial.flush();
esp_deep_sleep_start(); // Masuk tidur total!
}
void loop() {}
Latihan & Quiz Evaluasi Modul
Progres Quiz: 0 / 2 Soal
SOAL #1
Berapakah konsumsi arus ESP32 saat berada dalam mode **Deep Sleep Mode**?
SOAL #2
Jenis atribut variabel C++ manakah yang digunakan agar nilai variabel tersimpan di memori RTC RAM dan tidak ter-reset saat ESP32 bangun dari Deep Sleep?
Kunci Jawaban & Pembahasan
Kunci Jawaban: 1. c. ~10 µA, 2. b. RTC_DATA_ATTR.
Apakah Anda siap lanjut ke Modul 25: Database Fundamentals untuk IoT (Relational vs Time-Series)?
Apakah Anda siap lanjut ke Modul 25: Database Fundamentals untuk IoT (Relational vs Time-Series)?