Проект интернет-часов на матрице RGB LED ESP32-S3 - 3 ночных цвета с датой

Проект интернет-часов на матрице RGB LED ESP32-S3 - 3 ночных цвета с датой

ESP32-S3 RGB NeoMatrix Интернет-часы с автоматической регулировкой яркости день/ночь

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

Что делает эти часы

После включения ESP32-S3 подключается к вашей Wi-Fi сети и получает текущее местное время из интернета. Время плавно прокручивается по светодиодной матрице. В ночные часы дисплей автоматически затемняется до низкой яркости, а днем снова переключается на более яркий уровень.

ESP32-S3_интернет_часы_анимация

Используемые библиотеки

Этот скетч использует следующие библиотеки:

#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будет установлен автоматически.

Важная конфигурация пользователя

SSID и пароль Wi-Fi (учитывается регистр)

Замените следующие значения на свои данные для Wi-Fi:

const char* WIFI_SSID     = "WiFi";
const char* WIFI_PASSWORD = "passW0rd";

Важно:Wi-Fi SSID'ы эторегистронезависимый. Имя SSID"Book"естьнетто же самое как"book"Если регистры не совпадают точно, ESP32 не сможет установить соединение.

Сервер NTP, часовой пояс и переход на летнее время

Часы синхронизируют время, используя следующий NTP-сервер:

const char* ntpServer = "pool.ntp.org";

Местное время рассчитывается с использованием этих смещений:

const long  gmtOffset_sec     = -5 * 3600; 
const int   daylightOffset_sec = 3600;
  • gmtOffset_secопределяет ваш смещение UTC в секундах
  • daylightOffset_secдобавляет один час, когда активно летнее время (используйте0если не нужно)

Эти значения применяются с:

configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);

Автоматическая яркость днем / ночью

Яркость дисплея автоматически изменяется в зависимости от текущего часа:

const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22; // 10 PM
const int NIGHT_END_HOUR = 6;    // 6 AM

С 10 вечера до 6 утра яркость матрицы уменьшается, чтобы создать комфортные условия в темной обстановке. Вне этих часов восстанавливается полная дневная яркость. Вы можете настроить эти значения в соответствии с освещением в вашей комнате.

Конфигурация цвета RGB

Цвет текста часов определяется с помощью значений RGB (красный, зеленый, синий), где каждый канал варьируется от 0 до 255. Несколько цветов могут храниться в массиве и автоматически переключаться.

uint8_t userColors[][3] = {
  {17, 43, 171},  // Light Blue
  {255, 0, 0},    // Red
  {0, 255, 0},    // Green
  {255, 165, 0},  // Orange
  {255, 0, 255}   // Magenta
};

ЕслиuseFixedColorустановлено наtrue, часы всегда используют один цвет. Если установлен наfalseцвет автоматически меняется после каждого полного прокручивания времени.

Чтобы быстро найти точные значения RGB для любого цвета, используйте инструмент выбора цвета RGB:RGB Выбор цвета.

Отображение времени и прокрутка

Текущее время отформатировано какHH:MMи хранится в небольшом буфере символов. Поскольку дисплей шириной всего 8 пикселей, текст плавно прокручивается справа налево. Как только время полностью покидает дисплей, для следующего прохода выбирается следующий цвет (если он включен).

Демонстрация

После загрузки эскиза:

  • ESP32-S3 подключается к Wi-Fi
  • Время синхронизировано с интернетом.
  • Т текущее время прокручивается по RGB матрице
  • Яркость автоматически меняется между днем и ночью.
  • Цвет текста остается фиксированным или изменяется в зависимости от ваших настроек.

Загрузки и ссылки

Полный исходный код представлен ниже этой статьи. Ссылки на части, инструменты и технические параметры доступны ниже этой статьи.

Изображения

ESP32 S3 Matrix
ESP32 S3 Matrix
ESP32 S3 Matrix  pin out
ESP32 S3 Matrix pin out
ESP32-S3_RGB_8x8_matrix-3
ESP32-S3_RGB_8x8_matrix-3
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix-2
ESP32-S3_RGB_8x8_matrix-2
ESP32-s3_internet_clock_animation
ESP32-s3_internet_clock_animation
870-ESP32-S3 RGB LED Matrix Internte Clock Project 3 - Night Color with Date
Язык: C++
Скопировано!

Вещи, которые могут вам понадобиться

Ресурсы и ссылки

Файлы📁

Файл Fritzing