我正在用esp8266建立一个红外到wifi的网桥。基本上,我正在构建一个红外接收器,连接到红外遥控器内部的esp8266,通过wifi将接收到的红外遥控器按键转发到服务器。我用的是Wemos D1迷你。
我已经有了红外解码和网络转发部分的工作,但它总是打开,这使用了大量的电池,特别是考虑到99%的时间没有按下按钮。
我想让它在一段时间内没有按下按钮时进入深度睡眠状态。
如果我将IR接收器连接到RST引脚,这可以将esp从深度睡眠中唤醒,但问题是,随着IR不断进入,它将一次又一次地重置esp,这将使esp无法实际解码IR命令,因为它正在不断被重置。
我需要它通过RST将esp从深度睡眠中唤醒,然后忽略进一步的RST激活,直到我以编程方式再次将其发送到深度睡眠。
我真正需要的是一个合适的gpio中断,这样我就可以忽略进一步的重置,直到我进入深度睡眠,但AFAIK esp8266不支持从深度睡眠中唤醒gpio中断。
我需要某种可重置的一次性触发器,在你告诉它你要再次休眠之前,它只会发出一次重置。
我不确定我该如何实现这一点?有谁有什么想法吗?我宁愿不使用另一个外部微控制器来重置esp8266,而且遥控器内部的空间也很紧张,所以我不想使用很多外部部件。
发布于 2017-08-10 14:21:47
这是一个我用来在ESP8266上允许单次中断从深度睡眠中唤醒的电路。其工作方式是:仅在深度睡眠定时器激活(D0拉低)后,才允许中断复位。在您的深度睡眠功能上设置一个短暂的超时,以便立即启用中断。
经过一些测试,我发现上面的电路并没有像我想象的那样省电,因为它只是阻止芯片启动,而ESP的内部部分是激活的,并吸引了大约15 is的电流等待复位。这比深度睡眠中的60ua要多得多!
如果您的信号在激活后持续几秒钟(如PIR运动传感器),则下面的电路可能会工作。它使用一个电容器,只允许边缘触发,然后运行的代码可以检查GPIO4上的输入信号。但是,总体功耗仍然不高,因为ESP8266最大睡眠时间约为1小时。这意味着ESP8266仍然会唤醒,并在返回睡眠之前使用15 to几秒钟。在5分钟的深度睡眠周期下,1500毫安的睡眠周期可以维持5天左右。
发布于 2016-09-15 14:45:41
你有没有看过Espressif文档中关于睡眠ESP8266模式的内容?你可以在这里找到:http://www.espressif.com/sites/default/files/9b-esp8266-low_power_solutions_en_0.pdf
上面写着:
在深度睡眠模式下,芯片可以通过外部IO在EXT_RSTB引脚上产生的低电平脉冲来唤醒和初始化。
所以,我不确定是否有可能避免重置(虽然,也许有一些老生常谈的方式存在?),但是另一种睡眠模式呢?就像轻睡一样。
发布于 2016-09-14 18:38:56
This post on electronics stack描述了如何用几个额外的部分来做一个一次性按钮。然而,在空间上,它们加起来比使用另一个微处理器更大,所以操作员决定使用MCU。micro将使用最少的附加部件,并要求最低的空间量。
https://stackoverflow.com/questions/39481196
复制相似问题