# ElinkInformer / TableWatch E‑paper інформер на ESP32‑S3 (WeActStudio 2.9" tri‑color). Показує час великими цифрами, Wi‑Fi, батарею, погоду та дані з Notion. Є веб‑інтерфейс для керування інтервалами, а також оновлення прошивки через браузер. ## Функції - великий годинник у стилі flip‑card - статус‑бар: Wi‑Fi, батарея, погода, час - таблиця Notion (5 записів) з полями `Name` + `Data/Date` - чергування екранів (час/Notion) з налаштовуваними інтервалами - Wi‑Fi portal налаштування (SSID `ElinkInformer-Setup`) - веб‑інтерфейс з Bootstrap‑темою (mDNS `tablewatch.local`) - оновлення прошивки через web upload ## Обладнання - ESP32‑S3 (board: `esp32-s3-zero` у PlatformIO) - WeActStudio 2.9" E‑Paper (GxEPD2_290_C90c) ## Піни дисплея У `src/config.h`: - `PIN_BUSY = 6` - `PIN_RST = 7` - `PIN_DC = 8` - `PIN_CS = 9` - `PIN_SCK = 10` - `PIN_MOSI = 11` ## Батарея / ADC Налаштування в `src/config.h`: - `kBatteryAdcPin` (за замовчуванням `A0`) - `kBatteryAdcRefMv` (3300 мВ) - `kBatteryDividerNum`/`kBatteryDividerDen` (коефіцієнт подільника) - `kBatteryMvMin`/`kBatteryMvMax` (межі 0–100%) Калібруйте `kBatteryMvMin`/`kBatteryMvMax` під вашу батарею. ## Погода - Джерело: Open‑Meteo (`kWeatherUrl`) - Відображення: `Дніпро +3C дощ` (українські назви) ## Notion - Використовується Notion API для читання бази. - Потрібні поля в базі: - `Name` (title) - `Data` або `Date` або `Дата` (date) - ID бази береться з URL (параметр `v` не потрібен). - Токен інтеграції збережений у `kNotionToken`. **Важливо:** інтеграцію потрібно додати до доступу бази (Share → додати інтеграцію). ## Веб‑інтерфейс Доступ за адресою `http://tablewatch.local/` (mDNS) або IP. Можна налаштувати: - час показу екрана годинника - час показу екрана Notion - інтервал мережевої синхронізації Кнопки: - Оновлення прошивки (завантаження `.bin`) - Перезавантаження ## Оновлення прошивки (Web) Використовуйте файл `.bin` після збірки: ```bash pio run ``` Файл з’явиться у `.pio/build/esp32-s3-devkitm-1/firmware.bin`. ## Збірка та прошивка (USB) ```bash pio run pio run -t upload ``` ## Налаштування Wi‑Fi Після старту пристрій піднімає portal: - SSID: `ElinkInformer-Setup` - Відкрити `192.168.4.1` ## Налаштування інтервалів Параметри зберігаються в RTC: - `gClockScreenSec` — екран часу - `gTableScreenSec` — екран Notion - `gNetSyncSec` — мережевий синх Дефолти в `src/config.h`: - `kDefaultClockScreenSec` - `kDefaultTableScreenSec` - `kDefaultNetSyncSec` ## Структура проєкту - `src/config.h` — всі константи/налаштування - `src/app_state.*` — стан та RTC змінні - `src/display.*` — рендеринг дисплея - `src/network.*` — Wi‑Fi, NTP, погода, Notion - `src/web.*` — веб‑інтерфейс та OTA‑upload через web - `src/hardware.*` — ADC/батарея - `src/main.cpp` — ініціалізація та головний цикл ## Безпека Токен Notion збережений у прошивці у відкритому вигляді. Для продакшна бажано використовувати проксі/сервер або секрети поза прошивкою.