#pragma once #include // ---- TFT (hardware SPI: SCK=D5, MOSI=D7) ---- #define TFT_CS D8 #define TFT_DC D3 #define TFT_RST D4 #define TFT_BLK D2 // ---- I2C (BMP180 + DS3231 share this bus) ---- #define I2C_SDA D6 #define I2C_SCL D1 #define BMP180_ADDR 0x77 #define DS3231_ADDR 0x68 // ---- Scheduler intervals (ms) ---- // NOTE: for quick bench testing you may temporarily shrink these. static const unsigned long SAMPLE_INTERVAL_MS = 60UL * 1000UL; // read sensor / redraw static const unsigned long HISTORY_INTERVAL_MS = 5UL * 60UL * 1000UL; // store a history sample static const unsigned long FLUSH_INTERVAL_MS = 15UL * 60UL * 1000UL; // flush history to flash // ---- History buffer ---- static const int HISTORY_SIZE = 288; // 24 h @ 5 min static const float TREND_THRESHOLD_HPA = 1.6f; // >|1.6| hPa / 3 h = rising/falling // ---- Forecast change log ---- static const int FORECAST_LOG_SIZE = 24; // last N forecast changes // ---- Defaults (editable via web) ---- static const float DEFAULT_ALTITUDE_M = 150.0f; static const int DEFAULT_TZ_OFFSET_MIN = 7 * 60; // UTC+7 static const float DEFAULT_LAT = 54.9870f; static const float DEFAULT_LON = 82.8730f; // ---- Network ---- // NTP is done by hard-coded IP in rtc_time.cpp (this LAN's DNS is unreliable). #define AP_NAME "WeatherPredictor-Setup"