---
# System prepended metadata

title: TP Modul 8

---

---
title: TP Modul 8

---

# TP Modul 8
Pembuat : WN

Nama  : Ryan Adidaru
NPM   : 2306266994

**JAWABAN TANPA REFERENSI YANG SESUAI DIANGGAP MENDAPATKAN 0 POIN (UNLESS SPECIFIED OTHERWISE)**

1. **Jelaskan** mengenai Konsumsi daya pada ESP32, mengapa hal tersebut penting untuk diperhatikan serta faktor apa saja yang dapat mempengaruhi tingkat konsumsi daya! (10 poin).

Faktor konsumsi daya pada ESP32 termasuk salah satu faktor yang penting untuk diperhatikan dikarenakan aplikasi IoT bergantung pada resource terbatas seperti baterai, serta konsumsi daya yang tinggi juga dapat memperpendek masa hidup baterai, faktor yang mempengaruhi tingkat konsumsi daya adalah seperti:[1][2]

- Mode operasi, seperti active, light sleep, deep sleep, dll.
- Frekuensi CPU, semakin tinggi frek, maka konsumsi daya juga semakin besar.
- Peripheral use, seperti Wi-Fi, Bluetooth, sensor, dll
- Core yang aktif atau dipakai.
- Konfigurasi power management, seperti DFS, power locks, dll.

Referensi:
- [1]“Introduction to Low Power Mode for Systemic Power Management - ESP32 - — ESP-IDF Programming Guide v5.4.1 documentation,” Espressif.com, 2016. https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/low-power-mode/low-power-mode-soc.html
- [2]“Power Management - ESP32 - — ESP-IDF Programming Guide v5.4.1 documentation,” Espressif.com, 2016. https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/power_management.html

‌

2. **Jelaskan** secara singkat cara pengaruh CPU frequency pada penggunaan daya serta cara menggantinya pada ESP32! (10 poin)

Pengaruh CPU frequency pada penggunaan daya adalah semakin tinggi frekuensi CPU, semakin besar daya yang digunakan, dan mengurangi frekuensi CPU dapat menurunkan juga konsumsi daya, namun hal ini juga berpengaruh pada performa ESP32.[1]

Cara mengganti pada ESP32 adalah dengan menggunakan fungsi setCpuFrequencyMhz() dari library esp32-hal-cpu.h[1][2]

contoh kodenya adalah sebagai berikut:

```cpp=
//disini kita ingin mengubah frek ke 80 Mhz
setCpuFrequencyMhz(80);
```

Referensi:
- [1]L. Llamas, “How to Change CPU Frequency on ESP32,” Luis Llamas, Sep. 22, 2023. https://www.luisllamas.es/en/change-processor-frequency-on-esp32/
- [2]L. Llamas, “Energy consumption in ESP32,” Luis Llamas, Sep. 22, 2023. https://www.luisllamas.es/en/esp32-power-consumption/

‌

‌
3. **Jelaskan** mengenai Operating Mode yang didukung oleh ESP32, baik dari fitur / komponen yang bisa atau tidak bisa digunakan serta pengaruhnya pada konsumsi daya! (20 poin)

Operating mode pada ESP32 ada beberapa seperti berikut:[1][2]

- Active Mode: Mode operasi normal di mana semua fitur dan peripheral aktif, termasuk WiFi dan Bluetooth. Konsumsi daya sangat tinggi, sekitar 95-240 mA tergantung aktivitas WiFi/BT dan frekuensi CPU. Sistem berjalan penuh dengan konsumsi daya maksimal sehingga cocok untuk aplikasi yang membutuhkan performa penuh dan komunikasi intensif.[2]

- Modem Sleep Mode: Dalam mode ini, CPU tetap aktif menjalankan tugas, namun modul WiFi (dan Bluetooth) dimatikan sementara untuk menghemat energi saat tidak ada komunikasi data. Konsumsi daya turun signifikan dibandingkan mode aktif, namun modul komunikasi bisa segera aktif kembali saat dibutuhkan.[1][2]

- Light Sleep Mode: CPU, RAM, dan sebagian besar peripheral digital diberhentikan melalui clock gating dan penurunan tegangan, tetapi state program tetap dipertahankan sehingga bangun kembali sangat cepat (<1 ms). Konsumsi daya mode ini sekitar 0,8 mA, sangat efisien untuk aplikasi yang perlu delay tanpa kehilangan state program, dengan syarat WiFi atau Bluetooth tidak digunakan.[1][2]

- Deep Sleep Mode: Hampir semua sistem dimatikan kecuali RTC dan komponen penting untuk wakeup. ESP32 berhenti mengeksekusi program dan hanya menggunakan beberapa mikroampere daya, cocok untuk aplikasi berbasis baterai yang memerlukan penghematan daya maksimal dengan kesempatan bangun terjadwal atau berdasarkan event eksternal.[1][2]

- Hibernation Mode: Mode sleep paling dalam dengan konsumsi daya serendah ~5 µA, mematikan hampir seluruh bagian termasuk RTC memori. Hanya satu RTC timer dan beberapa GPIO RTC tertentu aktif untuk wakeup. Proses bangun sangat lambat, cocok untuk aplikasi dengan interval sangat panjang dan hemat daya maksimum.[1][2]


Referensi:
- [1]Last Minute Engineers, “Insight Into ESP32 Sleep Modes & Their Power Consumption,” Lastminuteengineers.com, 2021. https://lastminuteengineers.com/esp32-sleep-modes-power-consumption/
- [2]“Sleep Modes - ESP32 - — ESP-IDF Programming Guide v5.2.1 documentation,” docs.espressif.com. https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/sleep_modes.html

‌

‌
4. *Jelaskan* apa itu wake up source pada sleep mode ESP32 (20 poin)


Wake up source adalah sumber atau mekanisme yang digunakan untuk membangunkan ESP32 dari mode sleep (light sleep atau deep sleep), yang tersedia adalah sebagai berikut:[1]




- Timer (bangun setelah waktu tertentu)

- Touchpad (bangun saat sensor sentuh diaktifkan)

- ULP Coprocessor (bangun saat program ULP selesai)

- External Wakeup (Ext0/Ext1, bangun saat sinyal eksternal diterima)

- GPIO Wakeup (khusus light sleep)

- UART Wakeup (khusus light sleep)

- WIFI Wakeup (khusus light sleep)

Referensi:
- [1]L. Llamas, “What are sleep modes in ESP32,” Luis Llamas, Sep. 22, 2023. https://www.luisllamas.es/en/esp32-sleep-modes/
- [2]“Sleep Modes - ESP32 - — ESP-IDF Programming Guide v5.2.1 documentation,” docs.espressif.com. https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/sleep_modes.html

‌

5. Modifikasilah kode sederhana berikut sehingga bekerja dalam mode light sleep mode! (40 poin)

```cpp
#include <Arduino.h>
#include "esp_sleep.h"

TaskHandle_t counterTaskHandle = NULL;
int counter = 0;

void counterTask(void *parameter) {
  while (true) {
    counter++;
    Serial.printf("Count: %d\n", counter);
    vTaskDelay(1000 / portTICK_PERIOD_MS);
  }
}

void setup() {
  Serial.begin(115200);
  delay(5000);
    
  xTaskCreate(
    counterTask,
    "Counter Task",
    2048,
    NULL,
    1,
    &counterTaskHandle
  );

  esp_sleep_enable_timer_wakeup(2000000); // 2 detik dalam ms
}

void loop() {
  esp_light_sleep_start();
}

```

Referensi:
- [1]L. Llamas, “How to use Light Sleep mode on ESP32,” Luis Llamas, Sep. 22, 2023. https://www.luisllamas.es/en/esp32-light-sleep/ (accessed Nov. 03, 2025).
- [2]L. Llamas, “What are sleep modes in ESP32,” Luis Llamas, Sep. 22, 2023. https://www.luisllamas.es/en/esp32-sleep-modes/

‌

‌