loc*_*ost 4 sleep infrared interrupt-handling sleep-mode esp8266
我正在使用esp8266构建IR到wifi桥。基本上,我正在构建连接到IR遥控器中的esp8266的IR接收器,以通过wifi将接收到的IR Remote按键转发到服务器。我正在使用Wemos D1 Mini。
我已经可以使用IR解码和网络转发部分了,但是它始终处于打开状态,这会消耗大量电池,尤其是考虑到99%的时间没有按下任何按钮。
我希望它在没有按下按钮一定时间后进入深度睡眠状态。
如果我将IR接收器连接到RST引脚,则可以将esp从深度睡眠中唤醒,但是问题在于随着IR不断进入,它将不断反复重置esp,这将使esp无法实际解码IR命令,因为它不断被重置。
我需要它通过RST从深度睡眠中唤醒特别是esp,但是然后忽略进一步的RST激活,直到我以编程方式再次将其发送到深度睡眠中为止。
我真正需要的是适当的gpio中断,因此在进入深度睡眠之前我可以忽略进一步的重置,但是AFAIK esp8266不支持从深度睡眠唤醒gpio中断。
我需要某种可重置的单发触发器,仅发出一个重置,直到您告诉它您将再次入睡。
我不确定如何实现此目标?有人有想法么?我宁愿不必使用另一个外部微控制器来重置esp8266,遥控器内部的空间也很狭窄,所以我宁愿不必使用很多外部部件。
这是我用来允许一发中断从ESP8266的深度睡眠中唤醒的电路。它仅在深度睡眠定时器被激活(D0被拉低)之后才允许中断复位。在您的深度睡眠功能上设置短暂的超时,以立即启用中断。
经过一番测试后,我发现上面的电路并没有节省我想的那么多功率,因为它仅阻止芯片启动,而ESP的内部却处于活动状态,并消耗约15ma的电流来等待复位。深度睡眠远远超过60ua!
如果激活后有几秒钟的信号保持打开状态(例如PIR运动传感器),则下面的电路可能会工作。它使用电容器仅允许边沿触发,然后运行代码可以检查GPIO4上的输入信号。但是,总功耗仍然不好,因为ESP8266的最大睡眠时间约为1小时。这意味着ESP8266仍然会唤醒并使用15ma几秒钟,然后再回到睡眠状态。在5分钟的深度睡眠周期中,约1500mah的压力将持续约5天。