Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Arduino.h>
- #include "esp_sleep.h"
- const gpio_num_t button_pin = GPIO_NUM_33; // pushbutton >> GPIO33 & GND
- const gpio_num_t led_pin = GPIO_NUM_2; // on-board LED >> GPIO2
- // persist LED state across deep-sleep resets
- RTC_DATA_ATTR bool led_state = false;
- void setup() {
- Serial.begin(115200);
- pinMode(led_pin, OUTPUT);
- pinMode(button_pin, INPUT_PULLUP); // enable internal pull-up
- // check wake-up reason
- if (esp_sleep_get_wakeup_cause() == ESP_SLEEP_WAKEUP_EXT0) {
- // toggle persisted LED state
- led_state = !led_state;
- digitalWrite(led_pin, led_state); // update LED
- Serial.println("woke by button"); // report over Serial
- Serial.flush(); // ensure data is sent
- }
- // configure external wake-up (ext0) on button_pin LOW
- esp_sleep_enable_ext0_wakeup(button_pin, 0); // 0 = wake on LOW
- delay(50); // allow Serial to flush
- esp_deep_sleep_start(); // enter deepest sleep
- }
- void loop() {
- // not used after deep sleep entry
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement