deepsleep2游戏攻略(deepsleep2完整版下载)

本指南展示了如何使用 Arduino IDE 与 ESP8266 (NodeMCU) 一起使用深度睡眠。我们将介绍深度睡眠与定时器唤醒和深度睡眠与使用复位 (RST) 引脚的外部唤醒。

要将 ESP8266 置于深度睡眠模式,请使用ESP.deepSleep(美国)并以微秒为单位作为参数睡眠时间传递。GPIO 16 必须连接到复位 (RST) 引脚,以便 ESP8266 能够唤醒。

让 ESP8266 无限期进入深度睡眠模式ESP.deepSleep(0). ESP8266 将在 RST 引脚接收到 LOW 信号时唤醒。

引入深度睡眠模式

如果您使用电池供电的 ESP8266 板制作了一个项目,或者您刚刚将 ESP8266 NodeMCU 板连接到移动电源。运行一段时间后,您会发现电池不会持续很长时间,尤其是在您使用 Wi-Fi 的情况下。

如果您将 ESP8266 置于深度睡眠模式,它会降低功耗并且您的电池将持续更长时间。

让 ESP8266 处于深度睡眠模式意味着减少运行时消耗更多功率的活动(如 Wi-Fi),但留下足够的活动以在发生有趣的事情时唤醒处理器。

睡眠类型

共有三种不同类型的睡眠模式:调制解调器睡眠、轻度睡眠和深度睡眠。下表显示了每种模式之间的差异(来自 ESP8266 数据表的信息)。

物品

调制解调器睡眠

浅睡眠

沉睡

无线上网

离开

离开

离开

系统时钟

离开

deepsleep2游戏攻略(deepsleep2完整版下载)

离开

实时时钟

中央处理器

待办的

离开

基板电流

15毫安

0.4毫安

~20 uA

平均电流 (DTIM = 1)

16.2 毫安

1.8毫安

平均电流 (DTIM = 3)

15.4 毫安

0.9毫安

平均电流 (DTIM = 10)

15.2 毫安

0.55毫安

注:表中功耗指的是 ESP8266 作为独立芯片。如果您使用的是开发板,则它们具有使用更多电流的无源组件。

它们都有不同的用途,应该在不同的应用程序中使用。

在本文中,我们将介绍深度睡眠模式。一切都是关闭的,除了实时时钟 (RTC),这是 ESP8266 跟踪时间的方式。

这是最省电的选项,ESP 芯片仅消耗大约 20uA。但是,如果您使用带有内置编程器、LED 等的全功能开发板,您将无法实现如此低功耗的状态。

深度睡眠素描

在深度睡眠中,示例应用程序如下所示:

ESP8266 连接到 Wi-FiESP8266 执行任务(读取传感器、发布 MQTT 消息等)休眠一段预定义的时间ESP8266 唤醒这个过程一遍又一遍地重复唤醒源

将 ESP8266 置于深度睡眠模式后,有多种唤醒方式:

#1 定时器唤醒: ESP8266 在预定义的时间段后自行唤醒#2 外部唤醒:按下 RST 按钮唤醒 ESP8266(ESP8266 重启)#1 ESP8266 带定时器唤醒的深度睡眠

要通过 ESP8266 使用定时器唤醒,您需要将 RST 引脚连接到NodeMCU 板中标记为 D0 的 GPIO 16 。只需按照下一个示意图:

仅在上传代码后将 RST 引脚连接到 GPIO 16。

如果您看一下 NodeMCU 引脚分配,您会发现 GPIO 16 是一个特殊引脚,并且它具有 WAKE 功能。

ESP8266 运行时,ESP8266 的 RST 引脚始终为高电平。但是,当 RST 引脚接收到 LOW 信号时,它会重新启动微控制器。

如果您使用 ESP8266 设置深度睡眠定时器,一旦定时器结束,GPIO 16 会发送一个 LOW 信号。这意味着 GPIO 16 连接到 RST 引脚时,可以在设定的时间后唤醒 ESP8266。

ESP8266 NodeMCU 定时器唤醒草图

安装 Arduino IDE 的 ESP8266 插件,转到工具并选择“ NodeMCU (ESP-12E 模块) ”。这是您需要上传到 ESP 的代码:

/* * ESP8266 Deep sleep mode example * Rui Santos * Complete Project Details https://randomnerdtutorials.com */ void setup() { Serial.begin(115200); Serial.setTimeout(2000); // Wait for serial to initialize. while(!Serial) { } // Deep sleep mode for 30 seconds, the ESP8266 wakes up by itself when GPIO 16 (D0 in NodeMCU board) is connected to the RESET pin Serial.println("I'm awake, but I'm going into deep sleep mode for 30 seconds"); ESP.deepSleep(30e6); // Deep sleep mode until RESET pin is connected to a LOW signal (for example pushbutton or magnetic reed switch) //Serial.println("I'm awake, but I'm going into deep sleep mode until RESET pin is connected to a LOW signal"); //ESP.deepSleep(0); }void loop() {}

在此示例中,我们在串行监视器中打印一条消息:

Serial.println("I'm awake, but I'm going into deep sleep mode until RESET pin is connected to a LOW signal");

之后,ESP8266 进入休眠状态 30 秒。

ESP.deepSleep(30e6);

要将 ESP8266 置于深度睡眠状态,请使用ESP.deepsleep(美国)并将睡眠时间作为参数传递(以微秒为单位)。

在这种情况下,30e6 对应于 30000000 微秒,即 30 秒。

上传代码后,按 RST 按钮开始运行代码,然后将 RST 连接到 GPIO 16。ESP8266 应该每 30 秒唤醒一次,并在 Serial Monitor 中打印一条消息,如下所示。

此示例仅在串行监视器中打印一条消息,但在现实世界的应用程序中,您将执行一项有用的任务,例如发出请求、发布传感器读数等。

ESP-01 定时器唤醒电路

如果您想使用 ESP-01 板进行类似的设置,您需要焊接一根电线,如下所示。那个小引脚是 GPIO 16,它需要连接到 RST 引脚。

然而,引脚非常小,很难将这样的电线焊接到 ESP-01 上的 GPIO 16 上……因此,对于这种唤醒模式,您应该使用NodeMCU 板或裸露的 ESP12-E 芯片。

#2 ESP8266 带外部唤醒的深度睡眠

您还可以通过外部唤醒来唤醒 ESP8266,例如按下按钮或簧片开关。您只需将 ESP8266 无限期地置于深度睡眠模式,然后将 RST 引脚设置为低电平即可将其唤醒。

要测试此设置,请将按钮连接到 ESP8266 板,如下图所示。当您按下按钮时,RST 引脚变为低电平。

如果您使用的是 ESP-01,请按照下图进行操作。

ESP8266 外部唤醒草图

然后,将以下代码上传到您的 ESP8266 开发板。

/* * ESP8266 Deep sleep mode example * Rui Santos * Complete Project Details https://randomnerdtutorials.com */ void setup() { Serial.begin(115200); Serial.setTimeout(2000); // Wait for serial to initialize. while(!Serial) { } // Deep sleep mode for 30 seconds, the ESP8266 wakes up by itself when GPIO 16 (D0 in NodeMCU board) is connected to the RESET pin //Serial.println("I'm awake, but I'm going into deep sleep mode for 30 seconds"); //ESP.deepSleep(30e6); // Deep sleep mode until RESET pin is connected to a LOW signal (for example pushbutton or magnetic reed switch) Serial.println("I'm awake, but I'm going into deep sleep mode until RESET pin is connected to a LOW signal"); ESP.deepSleep(0); }void loop() {}

此代码将 ESP8266 无限期地置于深度睡眠模式。为此,您只需将 0 作为参数传递给沉睡()功能:

ESP.deepSleep(0);

ESP 只会在某些东西重置电路板时唤醒。在这种情况下,按下按钮将 RST 引脚拉至 GND。

当您按下按钮时,ESP8266 会唤醒,执行编程任务并重新进入睡眠状态,直到触发新的复位事件。

测量电流

当板子处于深度睡眠模式时,用万用表测量电流消耗,看看它消耗了多少功率。

以下是放置万用表探头的方法。

当 ESP-01 处于深度睡眠模式时,它仅使用 0.3mA,大约为 300uA。

请记住,在正常使用 Wi-Fi 期间,ESP8266 可能消耗 50mA 到 170mA 之间的电流。

评论