,但这似乎并没有解决我的问题。
以下是我的草图:
```
void setup() {
Serial.begin(9600);
Serial.println("Before deepSleep");
// set D0 as output
pinMode(D0, OUTPUT);
// connect D0 to RST
digitalWrite(D0, HIGH);
// wait for a second
delay(1000);
// enter deep sleep mode for 10 seconds
ESP.deepSleep(10e6);
}
void loop() {
// this should never be executed
Serial.println("After deepSleep");
}
```
首先,确保您已经通过以下方式连接了您的Wemos D1 mini:
- 连接电源引脚(VCC)到电源源。您可以使用USB端口或将3.3V引脚连接到外部电源源。
- 将地引脚(GND)连接到地线。
- 将CH_PD引脚连接到电源源。您可以将其连接到3.3V引脚或使用外部电源源。
- 将D0引脚连接到RST引脚,以便在休眠模式下唤醒设备。
- 如果您正在使用SCL和SDA引脚,则将它们连接到对应的引脚上。
现在,让我们更改草图以使其正常工作:
```
void setup() {
Serial.begin(9600);
Serial.println("Before deepSleep");
// enable wakeup from deep sleep on D0
esp_sleep_enable_ext0_wakeup(GPIO_NUM_0, LOW);
// enter deep sleep mode for 10 seconds
esp_deep_sleep_start();
}
void loop() {
// this should never be executed
Serial.println("After deepSleep");
}
```
现在,让我们解释一下这些更改:
- 我们使用 `esp_sleep_enable_ext0_wakeup()` 函数启用了从深度睡眠模式中的D0引脚唤醒。这意味着在设备完全关闭并进入深度睡眠模式时,如果D0引脚接收到一个低电平信号,设备将自动从睡眠中唤醒。
- 我们不再需要将D0引脚连接到RST引脚,因为 `esp_sleep_enable_ext0_wakeup()` 函数已经处理了它。
- 我们使用 `esp_deep_sleep_start()` 函数代替 `ESP.deepSleep()` 函数,因为它支持更多的高级选项,并且与ESP32和ESP8266兼容。
现在,您应该可以成功地在Wemos D1 mini上使用 `deepSleep()` 函数了。如果您遇到任何问题,请尝试重新连接引脚并确保它们与草图中使用的 GPIO 引脚号匹配。
,但这似乎并没有解决我的问题。
以下是我的草图:
```
void setup() {
Serial.begin(9600);
Serial.println("Before deepSleep");
// set D0 as output
pinMode(D0, OUTPUT);
// connect D0 to RST
digitalWrite(D0, HIGH);
// wait for a second
delay(1000);
// enter deep sleep mode for 10 seconds
ESP.deepSleep(10e6);
}
void loop() {
// this should never be executed
Serial.println("After deepSleep");
}
```
首先,确保您已经通过以下方式连接了您的Wemos D1 mini:
- 连接电源引脚(VCC)到电源源。您可以使用USB端口或将3.3V引脚连接到外部电源源。
- 将地引脚(GND)连接到地线。
- 将CH_PD引脚连接到电源源。您可以将其连接到3.3V引脚或使用外部电源源。
- 将D0引脚连接到RST引脚,以便在休眠模式下唤醒设备。
- 如果您正在使用SCL和SDA引脚,则将它们连接到对应的引脚上。
现在,让我们更改草图以使其正常工作:
```
void setup() {
Serial.begin(9600);
Serial.println("Before deepSleep");
// enable wakeup from deep sleep on D0
esp_sleep_enable_ext0_wakeup(GPIO_NUM_0, LOW);
// enter deep sleep mode for 10 seconds
esp_deep_sleep_start();
}
void loop() {
// this should never be executed
Serial.println("After deepSleep");
}
```
现在,让我们解释一下这些更改:
- 我们使用 `esp_sleep_enable_ext0_wakeup()` 函数启用了从深度睡眠模式中的D0引脚唤醒。这意味着在设备完全关闭并进入深度睡眠模式时,如果D0引脚接收到一个低电平信号,设备将自动从睡眠中唤醒。
- 我们不再需要将D0引脚连接到RST引脚,因为 `esp_sleep_enable_ext0_wakeup()` 函数已经处理了它。
- 我们使用 `esp_deep_sleep_start()` 函数代替 `ESP.deepSleep()` 函数,因为它支持更多的高级选项,并且与ESP32和ESP8266兼容。
现在,您应该可以成功地在Wemos D1 mini上使用 `deepSleep()` 函数了。如果您遇到任何问题,请尝试重新连接引脚并确保它们与草图中使用的 GPIO 引脚号匹配。
举报