Ulu Önder Mustafa Kemal Atatürk'ü aramızdan ayrılışının 88. yılında saygı, minnet ve özlemle anıyoruz.

ESP32'yi pil ile uzun süre çalıştırmak: deep sleep ve güç tüketimi

kaan.yildiz Mid 1 saat önce · 0 görüntülenme

Sensör verisini birkaç dakikada bir gönderen bir ESP32 projesi prizden çalışırken sorunsuzdur, ama pile geçince birkaç günde biter. Sebep: Wi-Fi açıkken ESP32 yüzlerce miliamper çekebilir. Çözüm, zamanın büyük kısmında cihazı derin uykuda tutmaktır.

Deep sleep nedir?

Derin uykuda işlemci çekirdekleri, Wi-Fi ve Bluetooth kapanır. Sadece RTC (gerçek zaman saati) bölümü ve uyandırma kaynakları çalışır. Çipin kendi tüketimi mikroamper seviyesine düşer.

Uyandığında program baştan başlar (setup() yeniden çalışır). Uykular arasında saklaman gereken küçük değerler için RTC_DATA_ATTR kullanılır:

#include <WiFi.h>

RTC_DATA_ATTR int uyanmaSayisi = 0;
const uint64_t UYKU_SANIYE = 300; // 5 dakika

void setup() {
  uyanmaSayisi++;
  float sicaklik = sensoruOku();      // kendi sensör fonksiyonun
  if (wifiBaglan(8000)) {             // en fazla 8 sn dene
    veriyiGonder(sicaklik, uyanmaSayisi);
  }
  WiFi.disconnect(true);
  WiFi.mode(WIFI_OFF);
  esp_sleep_enable_timer_wakeup(UYKU_SANIYE * 1000000ULL);
  esp_deep_sleep_start();
}

void loop() {} // buraya hiç gelinmez

Uyanık kalma süresini kısalt

Pil ömrünü belirleyen asıl şey, cihazın her döngüde ne kadar süre uyanık kaldığıdır.

  • Wi-Fi bağlantısı için zaman sınırı koy. Ağ yoksa sonsuza kadar denemesin.
  • Sabit IP kullan: DHCP beklemesi bağlantıyı uzatabilir.
  • Hafif protokol seç: MQTT ya da tek bir HTTP isteği. Büyük kütüphaneler ve TLS el sıkışması süreyi uzatır.
  • Veriyi biriktir: Her 5 dakikada bir ölçüp RTC belleğinde biriktir, saatte bir toplu gönder. Wi-Fi'yi 12 kez yerine bir kez açarsın.

Geliştirme kartı tuzağı

Hazır geliştirme kartlarının (DevKit) çoğunda USB-seri çevirici, güç LED'i ve verimsiz bir voltaj regülatörü vardır. ESP32 derin uykudayken bile kart toplamda miliamper seviyesinde çekebilir. Ciddi pil projeleri için:

  • Düşük sükunet akımlı (low quiescent current) regülatörü olan kartlar seç,
  • Güç LED'ini sök veya devreden çıkar,
  • Ya da doğrudan ESP32 modülüyle kendi kartını tasarla.

Ölçmeden tahmin etme: multimetreyi akım modunda pil hattına seri bağla (uyku akımı için mikroamper kademesi). Uyanma anındaki kısa akım tepeleri multimetreyle iyi görünmez. Bunun için akım ölçüm modülü veya güç profilleyici gerekir.

Sensörleri de uyut

Sensör ve modüller ESP32 uyurken de akım çekmeye devam eder. Sensörün beslemesini bir GPIO veya MOSFET üzerinden verip ölçüm bitince kesebilirsin. Sensörün uyanınca kararlı ölçüme geçmesi için gereken süreyi veri sayfasından kontrol et.

Kaba hesap

Ortalama akım ≈ (uyanık akım × uyanık süre + uyku akımı × uyku süresi) / toplam süre. Pil kapasitesini (mAh) bu ortalamaya bölersen yaklaşık çalışma süresini (saat) bulursun. Gerçekte pilin kendi kendine boşalması ve soğukta kapasite düşüşü nedeniyle sonuç daha kısa olur, bu yüzden pay bırak.

0

0 cevap

Henüz cevap yok. İlk cevabı sen yaz.

Cevap yaz

Cevap yazmak için giriş yapmalısın.

Konu bilgisi
  • Açılış10.11.2026
  • Son etkinlik1 saat önce
  • Cevap0
  • Görüntülenme0
  • Beğeni0
Yeni konu aç