ElinkInformer / TableWatch

Epaper інформер на ESP32S3 (WeActStudio 2.9" tricolor). Показує час великими цифрами, WiFi, батарею, погоду та дані з Notion. Є веб‑інтерфейс для керування інтервалами, а також оновлення прошивки через браузер.

Функції

  • великий годинник у стилі flipcard
  • статус‑бар: WiFi, батарея, погода, час
  • таблиця Notion (5 записів) з полями Name + Data/Date
  • чергування екранів (час/Notion) з налаштовуваними інтервалами
  • WiFi portal налаштування (SSID ElinkInformer-Setup)
  • веб‑інтерфейс з Bootstrapтемою (mDNS tablewatch.local)
  • оновлення прошивки через web upload

Обладнання

  • ESP32S3 (board: esp32-s3-zero у PlatformIO)
  • WeActStudio 2.9" EPaper (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 (межі 0100%)

Калібруйте kBatteryMvMin/kBatteryMvMax під вашу батарею.

Погода

  • Джерело: OpenMeteo (kWeatherUrl)
  • Відображення: Дніпро +3C дощ (українські назви)

Notion

  • Використовується Notion API для читання бази.
  • Потрібні поля в базі:
    • Name (title)
    • Data або Date або Дата (date)
  • ID бази береться з URL (параметр v не потрібен).
  • Токен інтеграції збережений у kNotionToken.

Важливо: інтеграцію потрібно додати до доступу бази (Share → додати інтеграцію).

Веб‑інтерфейс

Доступ за адресою http://tablewatch.local/ (mDNS) або IP.

Можна налаштувати:

  • час показу екрана годинника
  • час показу екрана Notion
  • інтервал мережевої синхронізації

Кнопки:

  • Оновлення прошивки (завантаження .bin)
  • Перезавантаження

Оновлення прошивки (Web)

Використовуйте файл .bin після збірки:

pio run

Файл з’явиться у .pio/build/esp32-s3-devkitm-1/firmware.bin.

Збірка та прошивка (USB)

pio run
pio run -t upload

Налаштування WiFi

Після старту пристрій піднімає 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.* — WiFi, NTP, погода, Notion
  • src/web.* — веб‑інтерфейс та OTAupload через web
  • src/hardware.* — ADC/батарея
  • src/main.cpp — ініціалізація та головний цикл

Безпека

Токен Notion збережений у прошивці у відкритому вигляді. Для продакшна бажано використовувати проксі/сервер або секрети поза прошивкою.

Description
No description provided
Readme 39 KiB
Languages
C++ 95.8%
C 4.2%