---
# System prepended metadata

title: TP_IOT8_AzkaNabihan_2306250541

---

---
title: TP Modul 8

---

# TP Modul 8
Pembuat : WN

Nama  : Azka Nabihan Hilmy
NPM   : 2306250541

**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 2yang dapat mempengaruhi tingkat konsumsi daya! (10 poin).

Konsumsi Daya : konsumsi daya pada ESP32 adalah jumlah energi listrik yang digunakan oleh mikrokontroller selama beroperasi. ESP32 memeiliki beberapa mode daya, mulai dari mode aktif dengna daya tinggi, mode sleep untuk menghemat daya, dan mode deep sleep akan mematikan sebagaina besar sirkuit sehingga konsumsi daya dapat menurun drastis[1].

Mengapa penting : penting karena dalam pengoperasian ESP32 biasanya menggunakan baterai atau sumber terbatas. Manajemen daya yang efisien dapat membuat perangkat beropasi lebih lama. Jika tidak dioptimalkan, perangkat perlu dicas atau penggantian sehingga tidak praktis dan meningkatkan biaya pemeliharaan[1].

Faktor - Faktor yang mempengarui tingkas konsumsi daya : 
- Mode operasi : Mode yang diguanka nseperti active, modem-sleep, light-sleep, dan deep-sleep memiliki pengaruh terhadap konsumsi daya[1].
- Penggunan Wifi-bluetoot untuk komunikasi nirkabel adalah salah satu konsumsi daya terbesar[2].
- Frekuensi clock yagn digunakan memengaruhi seberapa cepat pemrosesan dilakukan, tetapi semakin tingi juga konsumsi daya yang digunakan selama pemrosesan[2].
- Penggunaan peripherals internal dan eksternal menentukan konsumsi daya. Semakin sedikit peripherals yang digunakan, maka akan menghemat daya. Peripherals : ADC, I2C, SPI, LEDs, dll[2].

**Referensi:**
‌- [1]admin, “ESP32 Power Modes and Management - circuitlabs.net,” circuitlabs.net - Empowering Innovation with Electronics & Software Insights, May 12, 2025.  [Online]. Available: https://circuitlabs.net/esp32-power-modes-and-management/ (accessed Nov. 03, 2025).. [Diakses: 4-November-2025]
- [2]“Power Management - ESP32 - — ESP-IDF Programming Guide v5.4.1 documentation,” Espressif.com, 2016. [Online]. Available:  https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/power_management.html. [Diakses: 4-November-2025]
‌

2. **Jelaskan** secara singkat cara pengaruh CPU frequency pada penggunaan daya serta cara menggantinya pada ESP32! (10 poin)
Frekuensi CPU berbanding lurus dengna konsumsi daya saat EPS32 dalam mode aktif. Frekuensi yang tinggi (240 Mhz) akan mengonsumsi daya lebih banyak, tetapi menyelesaikan tugas lebih cepat. Sebaliknya, frekuensi yagn lebih rendah (80 Mhz) mengonsumsi daya sesaat lebih sedikit, tetapi tugas memerlukan waktu lebih lama untuk diselesaikan[2].

Cara menggantinya dapat langsung melalui arduino IDE. pada bagian tools > CPU Frequency, lalu pilih CPU Frequency[1].
![image](https://hackmd.io/_uploads/rkrg5x8Jbg.png)
Cara lain adalah menggunakan funtion setCpuFrequencyMhz()[1].
```cpp=
bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz);

//Contoh Penggunaan:

setCpuFrequencyMhz(80);
//Kode diatas akan mengubah clockspeed menjadi 80MHz
```

**ReferensiL:**
- [1]“Metode Mengurangi Kons... | Digilab UI,” Digilabdte.com, 2025. [Online]. Available:  https://learn.digilabdte.com/books/internet-of-things/page/metode-mengurangi-konsumsi-daya-esp-32-mengurangi-clock-speed-cpu. [Diakses: 4-November-2025]
- [2]admin, “ESP32 Power Modes and Management - circuitlabs.net,” circuitlabs.net - Empowering Innovation with Electronics & Software Insights, May 12, 2025. [Online]. Available:  https://circuitlabs.net/esp32-power-modes-and-management/. [Diakses: 4-November-2025]
‌

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)

- Mode Active : 
    - Mode daya tertinggi di mana semua fungsi dan komponen utama ESP32 beroperasi secara penuh.
    - Komponen yang bisa digunakan : CPU, Wi-Fi, bluetooth, SRAM, dan peripherals internal.
    - Komponen yang tidak bisa digunakan : tidak ada.
    - Pengaruh pada konsumsi daya : konsumsi daya berada pada level tertinggi, terutama saat transmisi data wi-fi atau bluetooth aktif[2].
- Modem sleep : 
    - Komponen yang bisa digunakan : CPU, memori internal (SRAM) dan Wi-fi/Bluetooth berada dalam kondisi daya terendah.
    - Komponen yang tidak bisa digunakan : Blok fungsional yang tidak diperlukan untuk mempertahankan koneksi nirkabel.
    - Pengruh pada konsumsi daya : Konsumsi daya pada Modem-sleep jauh lebih rendah daripada Active Mode[2].
- Sleep Modes : 
    - Light-sleep mode
        - Komponen yang bisa digunakan : memori internal (SRAM) dan RTC Peripherals (seperti Real-Time Clock Timer untuk membangunkan perangkat) tetap menyala.
        - Komponen yang tidak bisa digunakan : CPU Core tidak menjalankan instruksi. 
        - Pengruh pada konsumsi daya : Konsumsi daya sangat rendah[1] (biasanya di bawah 1 mA)
    - Deep-Sleep mode 
        - Komponen yang bisa digunakan : Hanya RTC Peripherals (termasuk co-processor ULP - Ultra Low Power jika ada) dan RTC Memory (yang menyimpan data yang perlu dipertahankan) yang tetap aktif.
        - Komponen yang tidak bisa digunakan : CPU Core utama dimatikan sepenuhnya, Wi-Fi dan Bluetooth dimatikan, dan SRAM utama kehilangan data.
        - Pengruh pada konsumsi daya : Konsumsi daya berada di level terendah[2]

**Referensi:**
- [1]admin, “ESP32 Power Modes and Management - circuitlabs.net,” circuitlabs.net - Empowering Innovation with Electronics & Software Insights, May 12, 2025. [Online]. Available:  https://circuitlabs.net/esp32-power-modes-and-management/. [Diakses: 4-November-2025]
- [2]“Konsumsi Daya pada ESP-32 | Digilab UI,” Digilabdte.com, 2025. [Online]. Available:  https://learn.digilabdte.com/books/internet-of-things/page/konsumsi-daya-pada-esp-32. [Diakses: 4-November-2025]
‌

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

Wake up source adalah mekanisme yang dirancang untuk mengakhiri sleep mode dan mengembalikan mikrokotroler ke active mode[1]. Jenis Jenis Wake Up Source : 
- Timer Wake Up (RTC Timer) : mengatur sebuah timer pada RTC (Real Time Clock) peripherals yang tetap menyala saat mode sleep. Setelah durasi waktu yang ditentukan berlalu, timer akan memicu sinyal yang membangunkan ESP32.
- External Wake Up (RTC GPIO) : Perangkat dapat dibangunkan oleh perubahan level atau edge sinyal (naik atau turun) pada salah satu pin GPIO yang terhubung ke RTC. Pin ini disebut RTC GPIO.
- Touch Pad Wake Up : Jika sentuhan terdeteksi pada pin touchpad saat perangkat dalam Deep-sleep, sinyal bangun akan dipicu.
- ULP Co-processor Wake Up : Jika ULP (ulta low power) co-processor menentukan bahwa kondisi tertentu telah terpenuhi, ULP dapat memicu sinyal untuk membangunkan CPU utama[2].

**Referensi:**
- [1]“Metode Mengurangi Kons... | Digilab UI,” Digilabdte.com, 2025. [Online]. Available:  https://learn.digilabdte.com/books/internet-of-things/page/metode-mengurangi-konsumsi-daya-esp-32-mengganti-operating-mode. [Diakses: 4-November-2025]
- [2]“ESP32 Deep Sleep with Arduino IDE and Wake Up Sources | Random Nerd Tutorials,” Mar. 01, 2019. [Online]. Available:  https://randomnerdtutorials.com/esp32-deep-sleep-arduino-ide-wake-up-sources/. [Diakses: 4-November-2025]
‌

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

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

// Define durasi Light-sleep: 5 detik 
#define TIME_TO_SLEEP_uS (5 * 1000000)

TaskHandle_t counterTaskHandle = NULL;
int counter = 0;

// Task yang akan dihentikan sementara dan dilanjutkan setelah Light-sleep
void counterTask(void *parameter) {
  while (true) {
    counter++;
    Serial.printf("Count: %d\n", counter);
    vTaskDelay(1000 / portTICK_PERIOD_MS); // Task delay 1 detik
  }
}

void setup() {
  Serial.begin(115200);
  delay(5000); 

  // Membuat Task
  xTaskCreate(
    counterTask,
    "Counter Task",
    2048,
    NULL,
    1,
    &counterTaskHandle
  );
  
  // Konfigurasi Timer sebagai Wake Up Source
  esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP_uS);
  Serial.println("Setup Complete. Timer 5s set.");
}

void loop() {
  Serial.println("-> Entering Light-sleep...");
  Serial.flush(); 

  // Masuk ke Light-sleep Mode.
  esp_light_sleep_start(); 
  
  // Kode dieksekusi setelah ESP32 bangun
  Serial.println("<- Awake! Resuming tasks and sleeping again shortly.");

  delay(100); 
}
```

- output 
![image](https://hackmd.io/_uploads/BJIeC-D1Zg.png)

