如何将esp8266从深度睡眠中唤醒而无需连续重置
我正在使用esp8266构建IR到wifi桥接。基本上,我正在建立一个IR接收器,连接到红外遥控器内的esp8266,通过无线网络将接收到的红外遥控按键转发到服务器。我正在使用Wemos D1 Mini。如何将esp8266从深度睡眠中唤醒而无需连续重置
我已经有红外解码和网络转发部分工作,但它始终打开,它使用大量的电池,特别是考虑到99%的时间没有按下按钮。
我想让它在某个时间没有按下按钮时进入深度睡眠。
如果我将红外接收器连接到RST引脚,可以将深呼吸从深度睡眠中唤醒,但问题在于当IR继续进入时它会一直重置esp,使esp无法实际解码IR命令,因为它不断被重置。
我需要它通过RST将深呼吸唤醒,但是接着忽略进一步的RST激活,直到我以编程方式将其重新发送到深度睡眠中。
我真正需要的是一个正确的gpio中断,因此我可以忽略进一步的重置,直到我进入深度睡眠,但AFAIK esp8266不支持从深度睡眠中唤醒gpio中断。
我需要某种可重置的一次性触发器才会发出一次复位,直到您告诉它您将要再次入睡。
我不知道如何能够实现这一点?有人有主意吗?我宁愿不必使用另一个外部微控制器来重置esp8266,遥控器内部的空间也很紧张,所以我宁愿不必使用很多外部部件。
This post on electronics stack介绍了如何用一些额外的零件做一次性按钮。然而,从空间角度来看,它们的总和大于使用另一个微处理器,所以OP决定使用MCU。微型将使用最少的附加部件并要求最小的空间。
您是否看到过关于睡眠ESP8266模式的Espressif文档? 它可以在这里找到:http://www.espressif.com/sites/default/files/9b-esp8266-low_power_solutions_en_0.pdf
它说: In Deep-sleep mode, the chip can be woken up and initialized by a low-level pulse generated on the EXT_RSTB pin via an external IO.
所以,我不知道这是可能避免复位(尽管也许有些哈克的方式存在?),但对于另一种睡眠模式? 像睡觉一样。
这是一个电路,我使用它来允许在ESP8266上从深度睡眠中唤醒一次性中断。只有在深度睡眠定时器激活(D0拉低)之后才允许中断复位。在深度睡眠功能上设置一个短暂的暂停时间,以便立即启用中断。
一些测试后,我发现,在电路上面,因为我以为不保存尽可能多的力量,因为它只是防止芯片启动,但ESP的内部一部分是主动和周围画15毫安等待重启。深度睡眠中,这比60ua多得多!
如果激活后有一个信号持续几秒钟(如PIR运动传感器),则下面的电路可能工作。它使用电容只允许边沿触发,然后运行代码可以检查GPIO4上的输入信号。但是,总体用电量仍然不佳,因为ESP8266的最大睡眠时间大约为1小时。这意味着ESP8266在睡觉前仍然醒来并使用15ma几秒钟。在5分钟的深度睡眠周期中,1500mah将在5天左右有效。
虽然此链接可以回答这个问题,最好是在这里有答案的主要部件,并提供链接以供参考。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/13671974) –
感谢您的审查。 – leetibbett
我很高兴你回答。你能改善你的答案吗? –