ESP8266 ve ESP32 Wi-Fi modüller kablosuz veri gönderen Sensör birimlerinde yoğun olarak kullanılırlar. Bu birimler genellikle belirli zaman aralıklarında ölçüm yaparak sunucuya veri gönderir ve bir sonraki ölçüme kadar uyku modunda beklemeleri gerekmektedir. Aksi halde Kablosuz ağa bağlı durumda işlem yapmadığı anlarda yaklaşık ~80mA akım tüketen modül bataryayı çok kısa süre içerisinde tüketecektir.
ESP8266 modüller derin uyku modunda 20µA (0.02mA) düzeyinde akım çekmektedir. Derin uyku modunda kablosuz ağa bağlı durumda değillerdir. Belirlenen periyod ile uyku moduna sokulurlar ve belirlenen periyod sonunda iç sayaç GPIO-16 (D0) pini ile modülü resetleyerek sıradaki ölçüm işlemini tekrar başlatır.
ESP8266 Deep Sleep (Derin Uyku) fonksiyonu için belirlenebilecek max. süre "4 294 967 295" Mikro Saniye (4294967295 µs) yani 71.58 dakika olacaktır. Diğer tüm uyku modları, aktif/pasif donanımlar ve tüketim değerleri aşağıdaki tabloda verilmiştir.
Item | Modem-sleep | Light-sleep | Deep-sleep |
---|---|---|---|
Wi-Fi | OFF | OFF | OFF |
System clock | ON | OFF | OFF |
RTC | ON | ON | ON |
CPU | ON | Pending | OFF |
Substrate current | 15 mA | 0.4 mA | ~20 uA |
Average current (DTIM = 1) | 16.2 mA | 1.8 mA | – |
Average current (DTIM = 3) | 15.4 mA | 0.9 mA | – |
Average current (DTIM = 10) | 15.2 mA | 0.55 mA | – |
ESP.deepSleep(3600e6); komutu ESP8266/ESP32 modülü "3 600 000 000 µS" süreyle (3600sn) uyku moduna alacaktır. Süre sonunda GPIO16 (Arduino D0) pini modülü resetleyerek komut satırını tekrar başlatacaktır.
/* * ESP8266 Deep Sleep (Derin Uyku) Modu Kullanımı * Author: AGUL * https://www.signal.com.tr/esp8266/esp8266_deepsleep_mode_derin_uyku_modu_ve_enerji_tasarrufu */ void setup() { Serial.begin(115200); Serial.setTimeout(2000); // Wait for serial to initialize. Seri port hazırlanması için bekle while(!Serial) { } // Deep sleep (Derin Uyku Modu) 60 dakika. ESP8266 GPIO16 pininden reset ucuna göndereceği sinyal ile 60 dakika sonra uyanacak ve en baştan kod bloğunu okumaya başlayacaktır. Serial.println("Uyanık durumdayım, 1 saat süreyle uyku durumuna geçiyorum."); ESP.deepSleep(3600e6); } void loop() { }
ESP8266 ve ESP32 modüllerde besleme uçları arasında parazitler oluşmaktadır.
Muhtemel RF katından gelen bu harmoniklerin bastırılması için güç uygulanan hattın min. 1500µF
değerinde bir kapasitörle filtrelenmesi gerekir. Aksi durumlarda ESP modüllerin uyku moduna giriş ve çıkışlarında sorunlar oluşabilmektedir.
ESP modülün belirlenen süre sonunda uyanması için GPIO16 (Arduino D0) pininin Reset ucuna bağlanması gerekmektedir. Aksi durumda ESP modül sürekli uykuda kalacaktır.