void setup() { Serial.begin(115200); debugln(F("---------------------")); debugln(F(" SYSTEM RESET")); debugln(F("---------------------")); /* Watchdog auf 5 Sekunden */ esp_task_wdt_init(WDT_TIMEOUT, true); //enable panic so ESP32 restarts esp_task_wdt_add(NULL); //add current thread to WDT watch esp_task_wdt_reset(); pinMode(LATCH_PIN, OUTPUT); pinMode(LED_ORANGE, OUTPUT); pinMode(LED_GRN, OUTPUT); pinMode(LED_ROT, OUTPUT); /* SPI einstellen */ SPI.begin(MYSCK, MYMISO, MYMOSI, LATCH_PIN); SPI.setBitOrder(MSBFIRST); SPI.setDataMode(SPI_MODE0); SPI.setClockDivider(SPI_CLOCK_DIV4); /* 4 Mhz */ EEPROM.begin(0x1000); ReadDataFromFlash(0, &Tables, sizeof(Tables)); /* Werte einstellen */ // memset(&Tables, 0, sizeof(Tables)); // Tables.TotalPower = 38800; // SaveDataToFlash(0, &Tables, sizeof(Tables)); // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally if (!oled1.begin(SSD1306_SWITCHCAPVCC, 0x3d)) { Serial.println(F("SSD1306 allocation failed")); for (;;) ; // Don't proceed, loop forever } // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally if (!oled2.begin(SSD1306_SWITCHCAPVCC, 0x3c)) { Serial.println(F("SSD1306 2 allocation failed")); for (;;) ; // Don't proceed, loop forever } Wire.setClock(400000); oled1.setTextSize(3); // Normal 1:1 pixel scale oled1.setTextColor(SSD1306_WHITE); // Draw white text oled1.cp437(true); // Use full 256 char 'Code Page 437' font oled2.setTextSize(3); // Normal 1:1 pixel scale oled2.setTextColor(SSD1306_WHITE); // Draw white text oled2.cp437(true); // Use full 256 char 'Code Page 437' font // Show initial display buffer contents on the screen -- // the library initializes this with an Adafruit splash screen. PrintBuf_D1("Wifi.. "); esp_task_wdt_reset(); WIFI_Start(); oled1.println("OK"); oled1.display(); oled1.print("HTTP..."); respSolarServer = RequestSolarServer(); respWeather = RequestWeather(); if (respSolarServer && respWeather) { oled1.println("OK"); oled1.display(); } else { oled1.println("Fail"); oled1.println("Reset!"); oled1.display(); while (1) ; } oldf_IsDayTime = IsDaylight(); timer.attach(1.0, Zeitsteuerung); // Interne Uhrzeit }