Skip to content
This repository has been archived by the owner on May 9, 2023. It is now read-only.

【已知问题】进一步优化电量消耗 #7

Open
breakstring opened this issue Jan 10, 2021 · 6 comments
Open

【已知问题】进一步优化电量消耗 #7

breakstring opened this issue Jan 10, 2021 · 6 comments

Comments

@breakstring
Copy link
Owner

目前电量消耗似乎控制的还是不理想。尽管采用了 Deep Sleep 机制,但是我手里的这块电池一般情况下也就是2天就会耗尽电量。当然,还不清楚是否是我手里的这块电池以前过放引起容量减少。

目前看来,引起电量消耗过快主要有以下因素:

  1. 微雪的主板上有一个红色PWR电源指示LED,这个灯无法从代码中关闭。所以,就算进入Deep Sleep 状态,它也会亮着继续消耗电量。根据其原理图上所示,这个LED灯似乎是相对独立的,所以,如果觉得它碍事儿且耗电,然后您又有一定的动手能力,或许您可以将它直接焊掉。
    image
  2. 在从 Deep Sleep 机制中恢复过来后,如果未能自动连接上网络,那么它会提示重新进入SmartConfig。(参见 【已知问题】在从Deep Sleep中恢复过来偶发性连不上上次网络的问题 #5 )如果这时候人不在跟前,未能及时配置网络,那么代码会持续等待 WiFi 的 SmartConfig。这时候也会在持续消耗电量.
  3. 刷新屏幕时,如果屏幕上同时存在文字和图案,实际上是刷新两次,也带来了额外的电量消耗。 【已知问题】u8g2Fonts引擎和GxEPD2原生绘图造成的二次刷新问题 #6
@breakstring breakstring changed the title 【电量消耗】进一步优化电量消耗 【已知问题】进一步优化电量消耗 Jan 10, 2021
@lixy123
Copy link

lixy123 commented Jan 18, 2021

按照我在此处https://github.com/lixy123/ink_blueShowtxt_042 设计的 墨水屏双esp32经济版本方案改造成节能版本, 一块电池1-2个月,妥妥的.

@lixy123
Copy link

lixy123 commented Jan 18, 2021

第2点找的很准, esp32 存在这个致命毛病, 有时死活连接不上路由器. 可增加一个定时狗至预期时间自动重启或休眠下次再来, 重启后再连接一般就正常了. 否则代码会一直停留在 SmartConfig处, 或其它未知处.

hw_timer_t *timer = NULL;
void IRAM_ATTR resetModule() {
ets_printf("reboot\n");
//esp_restart_noos(); 旧api
esp_restart();
或进入休眠
}

timer = timerBegin(0, 80, true); //timer 0, div 80
timerAttachInterrupt(timer, &resetModule, true); //attach callback
timerAlarmWrite(timer, 60 * 1000 , false); //set time in us
timerAlarmEnable(timer); //enable interrupt

@breakstring
Copy link
Owner Author

breakstring commented Jan 21, 2021

经实测,进入休眠状态后电量消耗约为10mA,已经降低的足够了,所以1)里提到的主板上那个电源灯保留着也还行。

@lixy123
Copy link

lixy123 commented Jan 22, 2021

差一点的电路能达到1-2ma左右, 如有电源管理硬件能达到0.2ma左右. 10ma看着不起眼, 1天时间仅休眠就会消耗电池 10*24mah电量. 顺便感谢分享的代码, 帮助我解决了汉字显示换行问题.PlatformIO代码不能原样移到ArduinoIDE上,substr函数对utf8分拆不一样.费了些功夫最终解决.

@lixy123
Copy link

lixy123 commented Jan 22, 2021

淘宝上有一种东西叫 电子钳 斜口钳, 轻松一夹就OK,基本不会失手. 只是夹断后硬件保修会遇到麻烦.

@fffonion
Copy link

用开发版的usb供电的话,串口芯片和稳压器会消耗很多,datasheet里理想情况下ESP32的deep sleep电流应该在1ma以下。
另外唤醒联网的时候会有一个突发的几百毫安的电流,电池会有明显压降,然后供电不足重启,导致电池还有电但看起来没电了。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants