//#define TEST_MODE #define LIGHT_PIN A3 #define ERR reboot() #define SLEEP_TIME_S 30 #define SLEEP_TIME_MS SLEEP_TIME_S * 1000 #define SLEEP_TIME_US SLEEP_TIME_MS * 1000 #define debug(X) Serial.print(X) #define debugln(...) Serial.println(__VA_ARGS__) #define debuglog(A, B) debug(A); debugln(B) char log_buff[200]; #define dout(...) sprintf(log_buff, __VA_ARGS__); Serial.println(log_buff); #define RTDB_AUTH_TOKEN "abc123" #define RTDB_PROJECT "weather-station-xxxxx" #define RTDB_PATH "outdoor" #define RTDB_HOST RTDB_PROJECT "-default-rtdb.firebaseio.com" #define RTDB_URL "https://" RTDB_HOST "/" RTDB_PATH ".json?auth=" RTDB_AUTH_TOKEN // Reboot on error void reboot() { showError(); const int64_t reboot_sleep_time = 5 * 1000 * 1000; debuglog("Rebooting by going to sleep for: ", reboot_sleep_time); esp_sleep_enable_timer_wakeup(reboot_sleep_time); Serial.flush(); esp_deep_sleep_start(); }