ちょっとしたアプリを作っていて、deep sleep mode を試していた。
最初は機能しないと思っていたけど、ちゃんと動いていたことに気が付いた。
deep sleep モードから起きると、setup から始まると書いてはあったけど、見た目はリセットがかかっていたように見える。
シリアルコンソールの画面を見ると、
rst:0x10 (RTCWDT_RTC_RESET),
と出ていて、どんな理由でRESETがかかったかが分かる。これを書いてくれているページはないんだよなぁ。
つまり、気が付かないうちに勝手にwakeup していたことを、異常でプログラムがリブートしていたと勘違いしていた。
Lチカスケッチに
esp_deep_sleep_start();
を書いたとして、wakeupさせてもすぐにdeep sleep に入ってしまうので、起きたらしばらくはLチカをさせるようにスケッチを書かないとちゃんと動いているかわかりません。
実際にdeep sleep させてみると、13mA 位は流れている。起きた時で80mAも流れていた。
そこで、ふとメニューにCLK設定があったのに気が付いて、最低にしたら40mAくらいまで下がった。なので、消費電力を落としたい場合は、ここを弄ると簡単にさがります。
ただ、deep sleep で13mA は流れすぎだと思う。ほかの人のページを見るとマイクロオーダーまで下がっている。うーん、まだやることがありそう。