12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /*
- * Hold GPIO status in deep sleep mode, use ESP32's ULP (Ultra Low Power) coprocessor
- *
- * HelTec AutoMation, Chengdu, China.
- * 成都惠利特自动化科技有限公司
- * www.heltec.cn
- * support@heltec.cn
- *
- *this project also release in GitHub:
- *https://github.com/HelTecAutomation/ESP32_LoRaWAN
- */
- #include "soc/rtc_io_reg.h"
- #include "driver/rtc_io.h"
- #define uS_TO_S_FACTOR 1000000 /* Conversion factor for micro seconds to seconds */
- #define TIME_TO_SLEEP 5 /* Time ESP32 will go to sleep (in seconds) */
- RTC_DATA_ATTR int bootCount = 0;
- void setup(){
- rtc_gpio_hold_dis(GPIO_NUM_25);
- pinMode(25,OUTPUT);
- digitalWrite(25,LOW);//The on board LED will be OFF in wake up period
-
- Serial.begin(115200);
- delay(1000); //Take some time to open up the Serial Monitor
- //Increment boot number and print it every reboot
- ++bootCount;
- Serial.println("Boot number: " + String(bootCount));
- delay(2);
- esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
- Serial.println("Setup ESP32 to sleep for every " + String(TIME_TO_SLEEP) +
- " Seconds");
- delay(10);
-
- Serial.println("Going to sleep now");
- delay(2);
- rtc_gpio_init(GPIO_NUM_25);
- pinMode(25,OUTPUT);
- digitalWrite(25,HIGH);//The on board LED will be ON in deep sleep period
- rtc_gpio_hold_en(GPIO_NUM_25);
-
- esp_deep_sleep_start();
- Serial.println("This will never be printed");
- }
- void loop(){
- //This is not going to be called
- }
|