void setup() {
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
themes[0] = {0x0000, 0xFFFF, 0x07E0, 0x39E7};
themes[1] = {0x0000, 0xFFFF, 0xF6A0, 0x781F};
themes[2] = {0x0000, 0xFFFF, 0xF800, 0x7800};
prefs.begin("vape_stats", false);
puff_total = prefs.getInt("total", 0);
puff_day = prefs.getInt("day", 0);
current_theme_idx = prefs.getInt("theme", 0);
watts = prefs.getInt("watts", 40);
loadTheme(current_theme_idx);
// Сначала ИНИЦИАЛИЗИРУЕМ Wi-Fi, пока экран еще не начал активно слать данные
WiFi.softAP(ap_ssid, ap_password);
IPAddress IP = WiFi.softAPIP();
// Настраиваем Веб-Сервер
ws.onEvent(onWsEvent);
server.addHandler(&ws);
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
request->send_P(200, "text/html", index_html);
});
server.begin();
// И только ПОТОМ включаем экран
tft.initR(INITR_BLACKTAB);
tft.setRotation(1);
tft.fillScreen(C_BG);
tft.setTextSize(1); tft.setTextColor(C_ACCENT); tft.setCursor(10, 35);
tft.print("AP WI-FI READY!");
tft.setCursor(10, 55); tft.print("IP: ");
tft.setTextColor(C_TEXT); tft.print(IP.toString());
delay(1500);
tft.fillScreen(C_BG);
pinMode(ENCODER_S1, INPUT_PULLUP);
pinMode(ENCODER_S2, INPUT_PULLUP);
pinMode(ENCODER_KEY, INPUT_PULLUP);
last_s1_state = digitalRead(ENCODER_S1);
drawStaticUI();
updateWattsUI(true);
}