Jak snížit energetickou náročnost ESP32-CAM a proč je návrh desky vlastně špatně
- February 24 2020
- ESP32, ESP8266, NodeMCU , Wemos, RTLDuino...
- 5678x Přečteno
Chtěl jsem desku umístit na místo, kde není zásuvka a tedy jí bateriově napájet - k mému překvapení odebírala v režimu nejhlubšího spánku přes 5 mA. Rozhodl jsem se, že tento odběr snížím alespoň na desetinu.
Deska samotná má pouze vyfotit fotografii na základě sepnutí pohybového (PIR) čidla, fotografii uložit na microSD kartu a zároveň jí poslat na e-mail nebo FTP server.
Jako vzorový, startovací, kód mi posloužil návod ze stránky https://randomnerdtutorials.com/esp32-cam-take-photo-save-microsd-card/
Schéma ESP32-CAM najdete na tomto odkazu.
Už na první pohled vidíte, kde se dají ušetřit cenné miliampéry.
Použití LDO AMS1117 má určitě spoustu výhod, ale ne, když chcete dosáhnout co nejnižší spotřeby.
AMS1117 má vlastní spotřebu (typicky) 5mA, maximálně 10mA. To je hodně na bateriově napájené zařízení a zvláště, když tento proud by měl být spotřebován pouhým stabilizátorem.
Vyměnil jsem tedy AMS1117 za AP7361C v pouzdru (SOT223R - R znamená stejný pinout jako AMS1117). Tím měla být docílena mnohem nižší spotřeba v režimu spánku.
Pokud AMS1117 odebírá cca 5mA, pak AP7361C se svými pouhými 60uA mělo být řeším takto vysoké spotřeby energie.
Čekalo mě ale překvapení, po výměně byla celková spotřeba ESP32-CAM stále nad 3mA.
Jak to? Vysvětlení je jednoduché - v katalogovém listu AMS1117 je uvedena typická hodnota - to je hodnota která vůbec nic neznamená a může být v reálném zapojení úplně jiná - ale nižší než maximální hodnota 10mA.
AMS1117 odebíralo cca 1.5mA.
Dobrá tedy, pokud AMS1117 není hlavním viníkem vysoké spotřeby (ač malá také není), musí tam být ještě něco jiného.
Na desce ESP32-CAM jsou ještě dva stabilizátory pro CSI kameru - 1.2V a 2.8V.
Ty jsou však odpojovány přes P-MOSFET a jejich vlastní spotřeba je tedy nulová.
Za toto řešení návrháře chválím... ale... ALE! CO TO?!
Další napájení kamery 3.3V je přímo připojeno na výstup stabilizátoru AMS1117 teď už AP7361C.
Že by to byl ten problém? Po odstranění kamery a uvedení desky do hlubokého spánku proud rázem spadnul na 552 uA.
Po odstranění i microSD karty spotřeba klesla o dalších 200uA na už přijatelných 336uA. Což je méně než desetina původní spotřeby.
A tady už dochází na lámání chleba - sice jsme dokázali snížit proud na slušných 330uA, ale reálně (kamera a microSD karta zapojeny být mají) této spotřeby nedosáhneme bez hardwarové úpravy a ta se bude dělat dost těžko.
A přitom to za nás mohl vyřešit sám návrhář - stačilo připojit napájení kamery a microSD karty hned za P-MOSFET, který spíná napětí pro další dva regulátory.
S výběrem P-MOSFETU, který by dokázal sepnout dostatečný proud napětím z ESP32 není problém - klasický IRLM6402, který je i na desce JustSwitch, to bez problémů dokáže.
Pokud se nechcete vrtat v desce, pak by vám měla pomoci informace, že i kamera OV2640 se dokáže přepnout do režimu spánku (pomocí software) ve kterém odebírá (typicky) 1mA, maximálně 2mA, pokud budete ovládat pin PWDN, pak jste schopni dosáhnout proudu v režimu spánku kamery až (typicky) 600uA, maximálně 1.2mA.
Problém s ovládáním pinu PWDN je ale takový, že je přes rezistor natvrdo uzemněn.
Další problémy desky už nejsou stejného charakteru.
Pro spínání přisvětlovací LED by se lépe hodil N-MOSFET namísto bipolárního NPN tranzistoru a stejně tak i chlazení LED by mohlo být lepší. Během několika málo vteřin je LED velmi horká a tím se snižuje její životnost.
Máte další nápad jak snížit spotřebu? Napište mi na chiptron(zavináč)chipned.cz
Aktualizace: Slavo z webu mikrozone.sk mi napsal další doporučení na snížení spotřeby.
Doporučení je vhodné přesně pro tento projekt a využívá ke spínání desky samotného pohybového (PIR) čidla.
Tedy sepnutím pohybového čidla se zapne celý modul ESP32-CAM a poté se zase vypne. Odběr celého zařízení ve spánku tedy tvoří samotné pohybové čidlo.