#include <Adafruit_NeoPixel.h>
#include "esp_sleep.h"
#include "driver/gpio.h"
constexpr gpio_num_t WAKEUP_PIN{ GPIO_NUM_0 };
constexpr byte RGB_PIN{ 8 }; // Pin for C6
constexpr byte NUMPIXELS{ 1 };
Adafruit_NeoPixel pixels(NUMPIXELS, RGB_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
gpio_hold_dis((gpio_num_t)WAKEUP_PIN);
pinMode(WAKEUP_PIN, INPUT_PULLUP);
Serial.begin(115200);
pixels.begin();
Serial.println("Started");
}
void loop() {
pixels.setPixelColor(0, pixels.Color(0, 0, 50)); // Blau
pixels.show();
Serial.println("LED Blue");
delay(1000);
pixels.clear();
pixels.show();
Serial.println("LED Off");
delay(1000);
if (digitalRead(WAKEUP_PIN)) {
goToSleep();
}
}
void goToSleep() {
Serial.println("SLEEP: preparing");
pinMode(WAKEUP_PIN, INPUT_PULLUP);
gpio_hold_en((gpio_num_t)WAKEUP_PIN);
esp_sleep_enable_ext1_wakeup_io((1ULL << WAKEUP_PIN), ESP_EXT1_WAKEUP_ANY_LOW);
Serial.println("SLEEP: entering");
delay(100);
esp_deep_sleep_start();
}