ESP32 MQTT dashboard for JC3248W535 and T-Display-S3 with Python server
  • C 82.1%
  • C++ 9.1%
  • Python 8.7%
Найти файл
2026-09-13 16:32:43 +03:00
docs Release ESP32 MQTT Dashboard 1.0.1 2026-09-13 16:32:43 +03:00
firmware Release ESP32 MQTT Dashboard 1.0.1 2026-09-13 16:32:43 +03:00
server Release ESP32 MQTT Dashboard 1.0.1 2026-09-13 16:32:43 +03:00
third_party ESP32 MQTT Dashboard 1.0.0 2026-09-12 17:59:50 +03:00
.gitignore ESP32 MQTT Dashboard 1.0.0 2026-09-12 17:59:50 +03:00
CHANGELOG.md Release ESP32 MQTT Dashboard 1.0.1 2026-09-13 16:32:43 +03:00
LICENSE ESP32 MQTT Dashboard 1.0.0 2026-09-12 17:59:50 +03:00
NOTICE.md ESP32 MQTT Dashboard 1.0.0 2026-09-12 17:59:50 +03:00
README.md Release ESP32 MQTT Dashboard 1.0.1 2026-09-13 16:32:43 +03:00

ESP32 MQTT Dashboard

ESP32 MQTT Dashboard — домашняя информационная панель на ESP32. Сервер собирает данные из OpenWeather, Home Assistant и Linux, публикует готовое состояние через MQTT, а один или два дисплея показывают погоду, домашний климат, состояние сервера и медиаплеера.

Текущий публичный релиз: 1.0.1. Внутренняя версия MQTT-протокола — 2; это отдельная нумерация.

Проект поддерживает два устройства:

  • LilyGO T-Display-S3 — компактный дисплей 320×170 с двумя физическими кнопками;
  • JC3248W535C_I_Y — сенсорная панель 320×480, интерфейс работает горизонтально как 480×320.

Оба дисплея получают одни и те же данные от сервера, но рисуют собственный интерфейс. Можно использовать оба устройства одновременно или оставить только одно.

Возможности

Сервер умеет:

  • получать текущую погоду и прогноз OpenWeather;
  • читать климатические датчики и медиаплеер из Home Assistant;
  • собирать CPU, ОЗУ, Swap, Load Average, температуру процессора, использование диска и аптайм Linux-хоста;
  • хранить историю климата и системных показателей в SQLite;
  • публиковать состояние и конфигурацию дисплеев через MQTT;
  • принимать с большой панели команды управления медиаплеером.

На JC3248W535 доступны страницы «Главная», «Погода», «Прогноз», «Климат», «Стример» и «Система». T-Display-S3 показывает тот же набор данных в компактной раскладке.

Что понадобится

Обязательно:

  • Linux-сервер с Docker Engine и Docker Compose;
  • работающий MQTT-брокер, доступный серверу и ESP32;
  • Wi-Fi 2,4 ГГц для ESP32;
  • хотя бы один поддерживаемый дисплей.

Необязательно:

  • OpenWeather — если нужна погода и прогноз;
  • Home Assistant — если нужны домашние датчики и медиаплеер;
  • второй дисплей — сервер нормально работает и с одним устройством.

MQTT-брокер в состав проекта не входит. Подойдёт, например, уже установленный Mosquitto.

Быстрый старт

  1. Установите сервер.
  2. Настройте MQTT, погоду, Home Assistant и нужные дисплеи.
  3. Прошейте нужное устройство:
  4. Если нужно разобраться с обменом данными, откройте описание MQTT-протокола.
  5. Для переноса на другое железо есть краткие рекомендации по адаптации.

Проверенное оборудование и среда сборки

LilyGO T-Display-S3

  • ESP32-S3;
  • экран 320×170;
  • две физические кнопки;
  • Arduino IDE 2.x;
  • esp32 by Espressif Systems 2.0.17;
  • TFT_eSPI 2.5.43;
  • PubSubClient 2.8;
  • ArduinoJson 6.21.5.

JC3248W535C_I_Y

  • ESP32-S3;
  • 16 МБ Flash;
  • 8 МБ Octal PSRAM;
  • экран 320×480;
  • интерфейс 480×320 в горизонтальной ориентации;
  • ёмкостный сенсор;
  • ESP-IDF 5.5.5;
  • LVGL 9.5.0;
  • esp_lcd_axs15231b 2.1.0.

Внешне похожие платы могут иметь другую разводку GPIO или другой контроллер дисплея. Перед прошивкой другой ревизии сверьте характеристики платы.

Структура репозитория

server/                     Python-сервер и пример конфигурации
firmware/
├── t-display-s3/           скетч Arduino IDE
└── jc3248w535/             проект ESP-IDF

docs/                       документация
third_party/                тексты лицензий сторонних компонентов
CHANGELOG.md                история релизов
LICENSE                     лицензия основного кода
NOTICE.md                   сведения о сторонних компонентах

Каталог server/data/ в репозитории пуст. SQLite-база создаётся при первом запуске и не должна попадать в Git или релизный архив.

Конфигурация и учётные данные

Публичные файлы содержат только примеры. Перед запуском нужно заменить YOUR_..., адрес MQTT-брокера, адрес Home Assistant, координаты OpenWeather и entity_id датчиков на свои значения.

Для обеих прошивок параметры Wi-Fi и MQTT задаются прямо в исходном коде. После их изменения прошивку нужно пересобрать и записать в устройство. Отдельный secrets.h не используется.

Автор

Разработка: Виталий Егоров
E-mail: egorowitaliy@gmail.com

Лицензия

Основной код распространяется по лицензии MIT. Сведения о Roboto, Meteocons, LVGL, ESP-IDF и других сторонних компонентах находятся в NOTICE.md и каталоге third_party/.