4.1 KiB
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 = 6PIN_RST = 7PIN_DC = 8PIN_CS = 9PIN_SCK = 10PIN_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 після збірки:
pio run
Файл з’явиться у .pio/build/esp32-s3-devkitm-1/firmware.bin.
Збірка та прошивка (USB)
pio run
pio run -t upload
Налаштування Wi‑Fi
Після старту пристрій піднімає portal:
- SSID:
ElinkInformer-Setup - Відкрити
192.168.4.1
Налаштування інтервалів
Параметри зберігаються в RTC:
gClockScreenSec— екран часуgTableScreenSec— екран NotiongNetSyncSec— мережевий синх
Дефолти в src/config.h:
kDefaultClockScreenSeckDefaultTableScreenSeckDefaultNetSyncSec
Структура проєкту
src/config.h— всі константи/налаштуванняsrc/app_state.*— стан та RTC змінніsrc/display.*— рендеринг дисплеяsrc/network.*— Wi‑Fi, NTP, погода, Notionsrc/web.*— веб‑інтерфейс та OTA‑upload через websrc/hardware.*— ADC/батареяsrc/main.cpp— ініціалізація та головний цикл
Безпека
Токен Notion збережений у прошивці у відкритому вигляді. Для продакшна бажано використовувати проксі/сервер або секрети поза прошивкою.