Files
esp32_oled_clock/README.md
2026-05-15 13:09:48 +03:00

3.0 KiB
Raw Permalink Blame History

ESP32 OLED Clock with MQTT Temperature Display

Описание

ESP32 часы с OLED дисплеем 1.3" (SH1106), синхронизация времени по NTP, отображение температуры из MQTT. При включении показывает анимационную заставку UA1ZBE.

Аппаратная часть

  • ESP32 DevKit
  • OLED дисплей 1.3" (SH1106), 128x64, I2C
  • Подключение: SDA → GPIO21, SCL → GPIO22

Схема подключения

ESP32        →     OLED 1.3" SH1106
------             --------------
3.3V         →     VCC
GND          →     GND
GPIO21       →     SDA
GPIO22       →     SCL

WiFi настройки

В файле src/main.cpp:

// Основная сеть
const char* ssid = "Keenetic-3222";
const char* password = "28021980";

// Резервная сеть (подключается если основная недоступна)
const char* ssid2 = "TP-Link_45EC";
const char* password2 = "16314733";

MQTT настройки

const char* mqtt_server = "ua1zbe.ru";
const int mqtt_port = 1883;
const char* mqtt_topic_pz = "/Meteo/dsw1";     // Температура П-Зори
const char* mqtt_topic_kand = "max_kand/temp"; // Температура Кандалакша

Режимы отображения

Секунды Содержимое
0-15 Температура П-Зори
15-30 Часы + дата
30-45 Температура Кандалакша
45-60 Часы + дата

Последовательность запуска

  1. Анимационная заставка UA1ZBE (рамка с надписью, 2 цикла)
  2. "Connecting..." - подключение к WiFi
  3. "NTP sync..." - синхронизация времени
  4. "WiFi + MQTT OK" - всё готово
  5. Режим отображения часов и температур

Структура проекта

esp32_oled_clock/
├── platformio.ini    # конфигурация PlatformIO
├── README.md         # документация
└── src/
    └── main.cpp      # основной код

Сборка и загрузка

cd ~/esp32_oled_clock
platformio run --target upload

Мониторинг

platformio device monitor --baud 115200

Зависимости

  • U8g2 (библиотека для OLED дисплеев)
  • PubSubClient (MQTT клиент)
  • WiFi
  • time.h (синхронизация NTP)

Возможные проблемы

  1. Нет синхронизации NTP — проверьте WiFi подключение, попробуйте другой NTP сервер
  2. Шум на дисплее — проверьте провода SDA/SCL, попробуйте адрес 0x3D вместо 0x3C
  3. Нет MQTT данных — проверьте работу брокера и топики

Автор

UA1ZBE