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

101 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`:
```cpp
// Основная сеть
const char* ssid = "Keenetic-3222";
const char* password = "28021980";
// Резервная сеть (подключается если основная недоступна)
const char* ssid2 = "TP-Link_45EC";
const char* password2 = "16314733";
```
## MQTT настройки
```cpp
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 # основной код
```
## Сборка и загрузка
```bash
cd ~/esp32_oled_clock
platformio run --target upload
```
## Мониторинг
```bash
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