menu search
  • Kaydol
brightness_auto

Hoş geldiniz! TÜRKLER SORUYOR PLATFORMU'na katılmak ister misiniz? Hemen kayıt olun veya giriş yapın.

more_vert

Evdeki akıllı bahçe sulama sistemini ESP32 kullanarak kendim yaptım. Cihazın güç tüketimini düşürmek için deep sleep modunu aktif olarak kullanıyorum ancak pil ömrü beklediğimden çok daha kısa, maksimum bir hafta kadar dayanıyor. Acaba yazılımsal kodlamada veya donanımsal bileşen seçiminde, güç tüketimini daha da optimize edebileceğim kritik püf noktaları ya da gözden kaçırdığım detaylar var mı?

thumb_up_off_alt 5 beğenilme thumb_down_off_alt 0 beğenilmeme

1 cevap

more_vert

Deep‑Sleep’te Pil Ömrünü Uzatan 5 Kritik Püf Noktası

1. GPIO‑ları “floating” bırakma

Deep‑sleep’e girerken tüm kullanılmayan pinleri ya OUTPUT‑LOW ya da INPUT‑PULLUP hâline getirin.
`cpp
pinMode(12, INPUT_PULLUP); // örnek: sensör pinini çekili tut
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
`
Floating pinler, mikrodeneticinin iç dirençlerinden akım çeker ve saat başına birkaç µA ek tüketim yaratır.

2. RTC‑GPIO ve ULP‑coprocessor Kullanımı

ESP‑32’nin RTC‑GPIO ve ULP‑coprocessoru, ana çekirdeği uyandırmadan sensör okuması yapabilir.
- RTC‑GPIO: Dijital sensör (örn. DHT22) yerine analog bir potansiyometre ya da kapasitif nem sensörü (RTC‑ADC üzerinden) tercih edin.
- ULP‑program: 10 µA civarında bir tüketimle 1 saniyede bir ölçüm alır, sadece kritik bir eşik aşıldığında ana çekirdeği uyandırır.

3. Güç Regülatörünün Seçimi

  • LDO yerine buck‑conv: 3.3 V‑a 1.8 V‑a düşen sensörleriniz varsa buck‑converter (örnek: MCP1640) tercih edin; LDO’da 10 mA akım çeken bir sensör, buck’te 2 mA’ye düşer.
  • Quiescent current düşük bir regülatör seçin (≤ 1 µA).

4. Kapasite ve Batarya Tipi

  • Li‑Po 3.7 V yerine Li‑Fe 3.6 V ve kapasiteyi 2000 mAh+ artırın.
  • Bataryanın iç direncini ölçün; yüksek iç direnç, düşük akım çekişinde voltaj düşüşüne ve daha sık uyandırmaya neden olur.

5. Kod Optimizasyonu

  • Wi‑Fi/BT sadece gerektiğinde açın. esp_wifi_disconnect(); ve btStop(); komutları uykuya geçmeden en az 100 ms önce çalıştırılmalı.
  • Deep‑Sleep timerı en düşük (1 s) değer yerine gerektiği kadar uzun (örnek: 10 min) ayarlayın.
    `cpp
    esp_sleep_enable_timer_wakeup(10 60 1000000ULL); // 10 dk
    `
  • Serial çıkışını devre dışı bırakın: Serial.end();.

Ekstra Kontroller

| Kontrol | Nasıl Yapılır |
|--------|---------------|
| Akım ölçümü | 10 µA‑10 mA aralığında bir multimetre ile VCC‑GND arasına seri bağlayın. |
| Uygulama logu | esp_sleep_get_wakeup_cause() ile uyandırma nedenini kaydedin; gereksiz uyandırmaları tespit edin. |
| Kablo uzunluğu | Uzun kablolar parazitik kapasitans artırır, uyku akımını yükseltir. Kabloları 10 cm altında tutun. |

Bu adımları bir‑iki hafta içinde denersen, pil ömrünün 2‑3 haftaya çıkması muhtemel. Özellikle ULP‑coprocessor ve GPIO‑pull‑up/down ayarları, tüketimi %70’e kadar düşürebilir. İyi projeler! ?

thumb_up_off_alt 0 beğenilme thumb_down_off_alt 0 beğenilmeme

İlgili sorular

thumb_up_off_alt 7 beğenilme thumb_down_off_alt 0 beğenilmeme
1 cevap
thumb_up_off_alt 3 beğenilme thumb_down_off_alt 0 beğenilmeme
1 cevap
thumb_up_off_alt 4 beğenilme thumb_down_off_alt 0 beğenilmeme
1 cevap
thumb_up_off_alt 4 beğenilme thumb_down_off_alt 0 beğenilmeme
1 cevap
thumb_up_off_alt 6 beğenilme thumb_down_off_alt 0 beğenilmeme
1 cevap

12,113 soru

14,105 cevap

4 yorum

264 üye

Çevrimiçi Kullanıcı Sayısı: 14
0 Üye 14 Ziyaretçi
Bugünkü Ziyaretler: 7386
Dünkü Ziyaretler: 8903
Toplam Ziyaretler: 6449954

Son Kazanılan Rozetler

zeynep_kurt Bir rozet kazandı
cem_kaya Bir rozet kazandı
zeynep_kurt Bir rozet kazandı
İbrahim_kaplan Bir rozet kazandı
ahmet_yılmaz_04 Bir rozet kazandı
...