Raspberry Pi Pico adalah papan mikrokontroler yang hemat daya dan terjangkau, menjadikannya solusi sempurna untuk proyek IoT portabel. Dengan konsumsi daya yang rendah, Pico dapat berjalan dalam waktu lama hanya dengan baterai kecil atau sumber daya terbatas. Namun, untuk memaksimalkan efisiensi daya, diperlukan beberapa optimasi. Artikel ini akan membahas berbagai teknik untuk menghemat daya pada Raspberry Pi Pico, sehingga cocok untuk proyek IoT yang portabel dan berkelanjutan.
Tips Hemat Daya Raspberry Pi Pico
1. Memahami Konsumsi Daya Raspberry Pi Pico
Sebelum mengoptimalkan daya, penting untuk memahami bagaimana Raspberry Pi Pico menggunakan energi:
- Daya saat aktif: Sekitar 15-50 mA (tergantung beban prosesor dan peripheral yang aktif).
- Daya saat idle: Sekitar 5-10 mA (jika CPU dalam keadaan rendah daya).
- Daya saat sleep mode: Jika menggunakan pendekatan C/C++ SDK dan eksternal RTC, Raspberry Pi Pico dapat menurunkan konsumsi daya hingga kurang dari 1 mA. Namun, MicroPython belum mendukung sleep mode di RP2040, sehingga delay biasa (time.sleep()) tetap membuat CPU aktif meskipun dalam frekuensi rendah.
Dengan memahami konsumsi ini, Anda dapat menerapkan strategi untuk mengurangi penggunaan daya sesuai kebutuhan proyek.
2. Menggunakan Sleep Mode untuk Menghemat Daya
Raspberry Pi Pico memang dikenal hemat daya, tetapi tidak seperti mikrokontroler seperti ESP32, Pico belum mendukung fitur sleep mode penuh di MicroPython. Namun, Anda tetap bisa melakukan beberapa trik untuk menghemat daya, terutama dengan menurunkan frekuensi CPU dan meminimalkan aktivitas saat tidak diperlukan.
a. Mengurangi Frekuensi CPU dan Menggunakan Delay
Menurunkan frekuensi CPU adalah cara efektif untuk menghemat energi. Semakin rendah frekuensinya, semakin sedikit daya yang dikonsumsi. Dikombinasikan dengan penggunaan delay (time.sleep()), Anda bisa membuat program "beristirahat" sejenak tanpa bekerja terus-menerus.
Contoh Simulasi Idle (Bukan Deep Sleep):
import machine
import time
# Turunkan frekuensi CPU ke 48 MHz
machine.freq(48_000_000)
led = machine.Pin(25, machine.Pin.OUT)
while True:
led.toggle()
print("Menjalankan tugas ringan...")
time.sleep(5) # Delay agar CPU tidak terus bekerja
Catatan Penting: Kode ini tidak benar-benar membuat Pico masuk ke mode sleep. Pico tetap aktif, hanya tidak melakukan tugas berat. Ini adalah teknik idle hemat daya, bukan sleep mode sejati.
b. Deep Sleep
Secara hardware, RP2040 (chip pada Raspberry Pi Pico) tidak memiliki RTC internal dan tidak mendukung deep sleep seperti ESP32. Oleh karena itu, perintah seperti machine.deepsleep() tidak tersedia di MicroPython untuk Pico.
Untuk mencapai mode deep sleep (daya <1 mA), kamu perlu:
- Menggunakan RTC eksternal (misalnya DS3231) untuk memicu bangun.
- Memprogram dengan C/C++ SDK (bukan MicroPython).
- Menonaktifkan sebagian besar peripheral dan menggunakan wake-up melalui GPIO atau alarm RTC.
Contoh kasus: Proyek sensor luar ruangan dengan baterai, di mana Pico tidur hampir sepanjang waktu dan hanya aktif setiap beberapa menit untuk membaca data, bisa dilakukan jika pakai C/C++ dan RTC eksternal.
Contoh kode:
import machine
import time
# Turunkan frekuensi CPU
machine.freq(48000000)
led = machine.Pin(25, machine.Pin.OUT)
while True:
led.toggle()
print("Delay, simulasi idle...")
time.sleep(10) # Delay untuk mengurangi aktivitas CPU
3. Menonaktifkan Peripheral yang Tidak Digunakan
Setiap peripheral yang aktif (seperti UART, I2C, SPI, atau LED onboard) dapat menambah beban konsumsi daya. Untuk menghemat energi, sebaiknya nonaktifkan atau hindari penggunaan peripheral yang tidak dibutuhkan.
- Matikan LED onboard jika tidak diperlukan:
led = machine.Pin(25, machine.Pin.OUT)
led.value(0) # Matikan LED
- Hindari penggunaan USB saat berjalan dengan baterai:
Saat Raspberry Pi Pico terhubung ke komputer melalui USB, USB controller dan port USB akan tetap aktif dan menyedot daya. Jika proyek berjalan dengan baterai dan tidak memerlukan komunikasi USB, sebaiknya cabut kabel USB dan gunakan jalur suplai daya alternatif (seperti koneksi ke pin VSYS atau VBUS secara langsung).
Catatan: GPIO dan USB PHY tetap aktif selama koneksi USB tersambung, meskipun program tidak menggunakannya.
- ADC tidak perlu dimatikan secara manual:
Perlu diketahui bahwa ADC (Analog to Digital Converter) di Raspberry Pi Pico hanya mengonsumsi daya saat membaca data. Jika tidak digunakan, ia tidak menjadi beban konsumsi daya yang berarti.
4. Optimasi Frekuensi CPU
Raspberry Pi Pico dapat diatur untuk berjalan pada berbagai frekuensi CPU, tergantung kebutuhan daya dan performa proyek. Secara default, Pico berjalan pada 125 MHz. Menurunkan frekuensi CPU secara signifikan dapat menghemat daya.
import machine
# Turunkan frekuensi CPU ke 48 MHz
machine.freq(48_000_000)
- 125 MHz → ~50 mA (default)
- 48 MHz → ~20 mA
- 10 MHz → ~10 mA
Catatan: Frekuensi lebih rendah memperlambat eksekusi, jadi sesuaikan dengan kebutuhan proyek.
5. Menggunakan Power Management IC (PMIC) atau Voltage Regulator Efisien
Jika proyek menggunakan baterai, penting untuk memilih regulator daya yang efisien agar masa pakai baterai lebih lama.
- Linear Regulator (LDO): Sederhana dan murah, namun kurang efisien karena membuang kelebihan tegangan sebagai panas. Cocok untuk arus rendah. Contoh: AP2112 memiliki dropout voltage rendah dan efisiensi cukup baik untuk proyek kecil.
- DC-DC Converter (Switching Regulator): Jauh lebih efisien (hingga 90%+), ideal untuk proyek dengan kebutuhan arus sedang hingga tinggi. Contoh: TPS61099 dapat meningkatkan tegangan dari 1.8 V ke 5 V dengan efisiensi tinggi.
6. Meminimalkan Aktivitas Baca/Tulis Flash
Setiap akses ke flash memory tidak hanya meningkatkan konsumsi daya, tetapi juga memperpendek umur flash karena jumlah siklus tulis terbatas.
- Hindari menulis log secara terus-menerus ke flash (misalnya dalam loop).
- Simpan variabel atau cache sementara di RAM selama mungkin.
- Pada C/C++, gunakan const untuk data statis agar tidak menempati RAM saat runtime. Pada MicroPython, cukup simpan data sekali dan hindari write jika tidak perlu.
7. Mengurangi Penggunaan Wireless (Wi-Fi/Bluetooth)
Modul wireless seperti ESP-01 atau ESP32 sangat berguna, tetapi juga termasuk komponen dengan konsumsi daya tinggi. Untuk proyek hemat energi:
- Nonaktifkan modul saat tidak digunakan (misalnya dengan menurunkan pin EN atau perintah WiFi.disconnect()).
- Gunakan mode deep sleep atau modem sleep untuk mengistirahatkan modul saat idle.
- Kirim data dalam batch atau interval tertentu, hindari koneksi terus-menerus yang memboroskan daya.
8. Memilih Komponen Hemat Daya untuk Sensor
Tidak semua sensor dirancang hemat energi. Jika proyek berjalan dengan baterai, pilih sensor dengan konsumsi daya rendah:
- Sensor Suhu: DS18B20 menggunakan protokol 1-wire dan hanya aktif saat diminta — ideal untuk proyek periodik. Bandingkan dengan DHT22 yang aktif lebih lama dan memerlukan siklus waktu lebih besar.
- Sensor Gerak: Jika hanya butuh akselerometer, ADXL345 merupakan pilihan ultra-low power (sekitar 23 µA pada mode normal). Sedangkan MPU6050, meski lebih canggih (IMU 6-axis), mengonsumsi lebih banyak daya (~3.6 mA).
9. Menggunakan Real-Time Clock (RTC) untuk Wake-Up Periodik
Jika proyek hanya perlu menjalankan tugas secara periodik (mislanya setiap menit), Anda bisa menggunakan time.sleep():
import time
while True:
print("Bangun dari sleep, mengambil data...")
# Lakukan tugas
time.sleep(60) # Delay 60 detik
Namun, MicroPython bawaan Raspberry Pi Pico (RP2040) belum sepenuhnya mendukung machine.deepsleep() seperti pada ESP32. Perintah seperti machine.deepsleep() akan error atau tidak berfungsi karena RP2040 tidak memiliki RTC bawaan seperti ESP32/STM32. Jadi, gunakan eksternal RTC (misalnya DS3231) yang mengirim sinyal ke GPIO, atau gunakan Pico SDK dalam C/C++, bukan MicroPython, untuk pengelolaan daya lebih dalam.
10. Memantau Konsumsi Daya dengan Multimeter/Analyzer
Gunakan alat seperti Joulescope atau multimeter serial untuk mengukur penggunaan daya secara real-time dan mengidentifikasi kebocoran daya.
11. Desain PCB yang Efisien
Jika membuat PCB custom:
- Gunakan jalur daya yang lebar untuk mengurangi resistansi.
- Hindari komponen yang tidak perlu (LED indikator berlebihan).
- Pilih komponen SMD (lebih hemat daya daripada through-hole).
12. Memanfaatkan Fitur Low-Power dari MicroPython/CircuitPython
Beberapa library menyediakan fungsi khusus untuk penghematan daya:
- `machine.deepsleep()` (MicroPython).
- `alarm.sleep_memory` (CircuitPython untuk wake-up dari sleep).
13. Mengurangi Beban Komputasi
- Hindari loop sibuk (`while True` tanpa delay).
- Gunakan interrupt-based programming (bangun hanya saat ada event).
14. Memilih Baterai yang Tepat
- LiPo (3.7V): Cocok untuk proyek portabel.
- AA/AAA Alkaline: Untuk proyek jangka panjang.
- Solar + Supercapacitor: Untuk IoT outdoor.
15. Contoh Proyek IoT Portabel Hemat Daya
Sensor Suhu & Kelembaban dengan Deep Sleep:
import machine
import dht
import time
sensor = dht.DHT11(machine.Pin(2)) # GPIO2
def read_sensor():
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
print(f"Suhu: {temp}°C, Kelembaban: {hum}%")
# Kurangi frekuensi CPU untuk hemat daya
machine.freq(48000000)
while True:
read_sensor()
time.sleep(30) # Tunda 30 detik (bukan deep sleep)
Baca juga : Perbedaan Raspberry Pi Pico vs Raspberry Pi 4: Mana yang Tepat untuk Proyekmu?
Siap Untuk Membuat Proyek Impianmu Menjadi Kenyataan?
Klik di sini untuk chat langsung via WhatsApp dan dapatkan dukungan langsung dari tim ahli kami!
0 on: "Tips Hemat Daya Raspberry Pi Pico: Cocok untuk Proyek IoT Portabel"