

/*
	Markus Opitz 2025
	instructables.com
*/


#include <s3servo.h>
s3servo servo1;
int servoPin = 2;   //use the GPIO numbers!

#define uS_TO_S_FACTOR 1000000ULL 

//RTC_DATA_ATTR int bootCount = 0;  // storage for counter
RTC_DATA_ATTR int servopos = 0;   // storage for servo position


void setup() {
  delay(1000);
  Serial.begin(115200);
  servo1.attach(servoPin);
  delay(500); 
  
  Serial.println("\n Servo position: " + String(servopos));
  
  if (servopos==0){   //decides which direction to go
    servo1.write(10);
    servopos= servopos+1;
  }
  else if (servopos==1){
    servo1.write(170);
    servopos= servopos-1;
  }
  delay(1000);   

  //++bootCount;
  //Serial.println("Boot number: " + String(bootCount));

int TIME_TO_SLEEP = random(20, 60);  //random sleep time from 20-60 seconds

  esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
  Serial.println("Setup ESP32 to sleep for " + String(TIME_TO_SLEEP) + " Seconds");

  Serial.print("going to sleep now");Serial.println("");
  esp_deep_sleep_start();
  Serial.println("This will never be printed");
}

void loop() {
    // no further action
}