4

我正在使用 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,而且遥控器内部空间很紧,所以我宁愿不必使用很多外部部件。

4

3 回答 3

10

这是我用来允许单次中断从 ESP8266 的深度睡眠中唤醒的电路。它仅在深度睡眠定时器激活(D0 拉低)后才允许中断复位。在您的深度睡眠功能上设置一个短暂的超时以立即启用中断。

唤醒中断控制电路

经过一些测试,我发现上面的电路并没有像我想象的那样省电,因为它只是阻止芯片启动,但 ESP 的内部部分处于活动状态并消耗大约 15ma 等待复位。这比深度睡眠中的 60ua 多得多!

如果您有一个信号在激活后会持续几秒钟(如 PIR 运动传感器),那么下面的电路可能会工作。它使用一个电容器只允许边沿触发,然后运行代码可以检查 GPIO4 上的输入信号。但是,整体功耗仍然不佳,因为 ESP8266 的最大睡眠时间约为 1 小时。这意味着 ESP8266 仍然会唤醒并使用 15ma 几秒钟,然后再重新进入睡眠状态。在 5 分钟的深度睡眠周期中,1500 毫安可以持续 5 天左右。

深度睡眠边沿触发

于 2017-08-10T06:21:47.490 回答
2

您是否看过有关睡眠 ESP8266 模式的 Espressif 文档?可在此处获得:http: //www.espressif.com/sites/default/files/9b-esp8266-low_power_solutions_en_0.pdf

它说:

在 Deep-sleep 模式下,可以通过外部 IO 在 EXT_RSTB 引脚上产生一个低电平脉冲来唤醒和初始化芯片。

所以,我不确定是否可以避免重置(尽管可能存在一些 hacky 方式?),但是另一种睡眠模式呢?喜欢浅睡。

于 2016-09-15T06:45:41.200 回答
1

这篇关于电子堆栈的帖子描述了如何用几个额外的部件做一个一次性按钮。然而,在空间方面,它们加起来比使用另一个微型更大,因此 OP 决定使用 MCU。微型将使用最少的附加部件并占用最少的空间。

于 2016-09-14T10:38:55.830 回答