Этот учебник является частью: ESP32-S3 RGB LED матрица
Замечательный проект для создания развлекательных и практических приложений с использованием модуля RGB-матрицы ESP32-S3.
Проект интернет-часов на матрице RGB LED ESP32-S3 - 5 радуга цветов
Часы Интернета на базе ESP32-S3 с эффектом радужного цвета
Этот проект представляет собой интернет-часовой RGB-матрицы на базе ESP32-S3, который подключается к Wi-Fi, синхронизирует локальное время с NTP-сервером и прокручивает время вHH:MMформат на встроенном матрице RGB NeoMatrix размером 8×8. В отличие от версий с однотонными или случайными цветами, этот часы используют плавныйэффект радуги, где каждый символ непрерывно меняет цвет в спектре RGB при прокрутке. Цифровые часы также периодически отображают дату и автоматически регулируют яркость между дневным и ночным временем.

Как работают эти часы
После подключения питания через USB-C, ESP32-S3 подключается к вашей Wi-Fi сети и получает текущее местное время из интернета. Дисплей обычно прокручивает время, но с установленным интервалом переключается, чтобы показать дату. И время, и дата отображаются с использованием динамического радужного эффекта, создавая яркий и анимированный дисплей на маленьком матрице 8×8.
Используемые библиотеки
Эскиз основывается на следующих библиотеках:

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>УстановитьAdafruit NeoMatrixиспользуя Менеджер библиотек Arduino. Его зависимости, включаяAdafruit GFX LibraryиAdafruit NeoPixel, будет установлено автоматически.

Важная конфигурация пользователя
Пин данных матрицы (встроенная RGB-матрица)
Хотя RGB-матрица подключена к плате ESP32-S3, пин данных все равно должен быть определен в коде:

#define MATRIX_PIN 14GPIO 14 обычно используется на матрицах RGB ESP32-S3. Если ваша модификация платы использует другой пин, обновите это значение.
SSID и пароль Wi-Fi (чувствительны к регистру)
Замените учетные данные Wi-Fi на данные вашей сети:
const char* WIFI_SSID = "your WIFI";
const char* WIFI_PASSWORD = "passW0rd";Важно:Wi-Fi SSID-ы эточувствительный к регистру. SSID с именем"Book"не то же самое, что"book"Если регистр букв не совпадает точно, ESP32-S3 не сможет подключиться.
Сервер NTP, часовой пояс и переход на летнее время
Часы синхронизируют время, используя интернет NTP сервер:
const char* ntpServer = "pool.ntp.org";Местное время рассчитывается с использованием этих смещений:
// Toronto-ish: UTC-5, plus 1 hour DST
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;gmtOffset_secсдвиг UTC в секундах (пример: UTC-5 =-5 * 3600)daylightOffset_secИспользуйте3600если действует переход на летнее время, или0если не используется
Эти значения применяются с использованием:
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);Автоматическая яркость днем / ночью
Яркость автоматически меняется в зависимости от текущего часа:
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22;
const int NIGHT_END_HOUR = 6;В период с 10 вечера до 6 утра матрица тускнеет, чтобы уменьшить блики. В дневное время восстанавливается нормальная яркость.
Эффект радуги
Этот проект использует классическое RGB цветовое колесо для генерации плавных радужных цветов. Каждый символ рисуется с немного другим цветовым сдвигом, и цвета изменяются со временем, создавая плавную радужную анимацию.
// Helper to create Rainbow Colors
uint32_t Wheel(byte WheelPos) {
WheelPos = 255 - WheelPos;
if (WheelPos < 85) {
return matrix.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
if (WheelPos < 170) {
WheelPos -= 85;
return matrix.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
WheelPos -= 170;
return matrix.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}По мере пролистывания текста каждый символ проходит через спектр RGB, создавая непрерывный радужный эффект, который особенно впечатляюще смотрится на маленьком дисплее 8×8.
Поведение отображения времени и даты
Часы поддерживают отдельные буферы для времени и даты:
- Время:
HH:MM - Дата:
MMM DD(напримерJAN 08)
Дата отображается с фиксированным интервалом:
const uint32_t dateIntervalMs = 60000; // Show date every 1 minuteВ конце каждого полного цикла прокрутки код решает, продолжать ли показывать время или переключиться на дату.
Логика прокрутки на матрице 8×8
Поскольку дисплей шириной всего 8 пикселей, текст плавно прокручивается справа налево. Как только текст полностью выходит с экрана, курсор сбрасывается, и для следующего прохода загружается следующий контент (время или дата).
Демонстрация
После загрузки схемы и питания платы через USB-C:
- ESP32-S3 подключается к вашей сети Wi-Fi.
- Время синхронизировано с интернетом
- Время протекает.
HH:MMформат - Дата появляется периодически.
- Весь текст отображается с плавным анимированным радужным эффектом.
- Экран автоматически затемняется ночью иBrightens днем.
Загрузки и ссылки
Полный исходный код представлен ниже этой статьи. Полезные инструменты и ссылки, включая RGB Color Picker, также приведены ниже этой статьи.
Этот учебник является частью: ESP32-S3 RGB LED матрица
- ESP32-S3 RGB LED Matrix Project 1- Basic Dot
- ESP32-S3 RGB LED Matrix Project 2 - Scrolling Text
- ESP32-S3 RGB LED Matrix Project 3 - Text from mobile phone
- ESP32-S3 RGB LED Matrix Project 4 - Tilt dot
- ESP32-S3 RGB LED Matrix Project 5 - Arrow always up
- ESP32-S3 RGB LED Matrix Project 6 - Cible game
- ESP32-S3 RGB LED матрица Wi-Fi + проект часов NTP - 1 Базовые часы
- ESP32-S3 RGB светодиодная матрица Интернет-часы - 2-часовой многоцветный дисплей времени и даты
- Проект интернет-часов на матрице RGB LED ESP32-S3 - 3 ночных цвета с датой
- Проект интернет-часы с матрицей RGB LED на ESP32-S3 - 4 случайных цвета
- Тест матрицы RGB LED ESP32-S3 для настройки RGB, GRB
Ресурсы и ссылки
-
Видео
-
Внутренний🎨 Color picker Toolrobojax.com
Файлы📁
Файл Fritzing
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB