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

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

#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-матрица интегрирована на плате, вывод данных все равно должен быть определен в коде:

#define MATRIX_PIN 14GPIO 14 обычно используется на платах RGB матрицы ESP32-S3. Если ваша версия платы использует другой вывод, обновите это значение соответственно.
SSID и пароль Wi-Fi (регистрозависимые)
Замените данные Wi-Fi на информацию о вашей сети:
const char* WIFI_SSID = "your WiFi SSID";
const char* WIFI_PASSWORD = "passW0rd";Важно:Wi-Fi SSID-ы этос учетом регистра. SSID с именем"Book"не то же самое, что"book"Если регистр букв не совпадает точно, ESP32-S3 не сможет подключиться.
Сервер NTP, часовой пояс и переход на летнее время
Синхронизация времени осуществляется с использованием интернет-сервера NTP:
const char* ntpServer = "pool.ntp.org";Местное время рассчитывается с использованием UTC и коэффициентов перехода на летнее время:
// Toronto-ish: UTC-5, plus 1 hour DST
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;gmtOffset_secUTC смещение в секундах (откорректируйте для вашего местоположения)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-цвета
Заранее определённый список RGB-цветов хранится в массиве, где каждый цвет задаётся значениями красного, зелёного и синего, варьирующимися от 0 до 255:
uint8_t userColors[][3] = {
{255, 0, 0}, // Red
{0, 255, 0}, // Green
{0, 0, 255}, // Blue
{255, 165, 0}, // Orange
{255, 0, 255}, // Magenta
{0, 255, 255}, // Cyan
{255, 255, 0} // Yellow
};На каждом полном цикле прокрутки:
- Тотцифры часовназначается случайный цвет
- Тотдвоеточиеполучает другой случайный цвет
- Тотминутные цифрыполучить другой случайный цвет
Это создает постоянно меняющуюся цветовую комбинацию, которая делает часы визуально интересными. Чтобы создать свои собственные нестандартные цвета, вы можете воспользоваться инструментом выбора цвета RGB:RGB цветовой выборщик.
Логика рендеринга времени
Время делится на три компонента:
- Часы:
HH - Двоеточие:
: - Минуты:
MM
Каждая часть рисуется индивидуально, так что она может иметь свой собственный цвет, в то время как все части движутся вместе, образуя плавную прокручиваемую анимацию на дисплее 8×8.
Случайная генерация цвета
Чтобы обеспечить случайность цвета, эскиз инициализирует генератор случайных чисел при запуске с помощью неподключенного аналогового вывода:
randomSeed(analogRead(0));Это гарантирует, что цветовые комбинации разные на каждом усилении и в каждом цикле прокрутки.
Демонстрация
После загрузки эскиза и питания платы через USB-C:
- ESP32-S3 подключается к вашей Wi-Fi сети.
- Время синхронизируется из интернета.
- Время скользит вперёд.
HH:MMформат - Часы, двоеточие и минуты меняют цвет на случайный в каждом цикле.
- Экран автоматически затемняется ночью.
Загрузки и ссылки
Полный исходный код приведен ниже этой статьи. Полезные инструменты и ссылки находятся ниже этой статьи.
Этот учебник является частью: 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 - 5 радуга цветов
- Тест матрицы RGB LED ESP32-S3 для настройки RGB, GRB
Ресурсы и ссылки
-
Видео
-
Внутренний🎨 Color picker Toolrobojax.com
Файлы📁
Файл Fritzing
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB