2.2 KiB
2.2 KiB
ESP32 OLED Clock with MQTT Temperature Display
Описание
ESP32 часы с OLED дисплеем 1.3" (SH1106), синхронизация времени по NTP, отображение температуры из MQTT.
Аппаратная часть
- 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";
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 | Часы + дата |
Структура проекта
esp32_oled_clock/
├── platformio.ini # конфигурация PlatformIO
└── src/
└── main.cpp # основной код
Сборка и загрузка
cd ~/esp32_oled_clock
platformio run --target upload
Мониторинг
platformio device monitor --baud 115200
Зависимости
- U8g2 (библиотека для OLED дисплеев)
- PubSubClient (MQTT клиент)
- WiFi
- time.h (синхронизация NTP)
Возможные проблемы
- Нет синхронизации NTP — проверьте WiFi подключение, попробуйте другой NTP сервер
- Шум на дисплее — проверьте провода SDA/SCL, попробуйте адрес 0x3D вместо 0x3C
- Нет MQTT данных — проверьте работу брокера и топики
Автор
UA1ZBE