Mateya oyo ezali eteni ya: ESP32-S3 Matrice ya LED RGB
Projet cool pona ko créer pona ba applications ya esengo pe ya pratique en utilisant module ESP32-S3 RGB Matrix. Ba liens ya ba vidéos misusu ezali na se ya article oyo.
Mosala ya ESP32-S3 RGB LED Matrix Internet Clock - Loni ya balabala ya 4
Móti ya ntángo ya Internet ya ESP32-S3 na balangi ya RGB ya mbala na mbala
Projɛ́ oyo ezalí mótí ya ntángo ya Internet ya ESP32-S3 oyo esangani na Wi-Fi, esangisi ntángo ya mboka longwa na serveur ya NTP, mpe epakolaka ntángo na format ya HH:MM na kati ya NeoMatrix ya RGB ya 8×8 oyo ezalí na kati. Na version oyo, bantángo ya ngonga, colon, mpe miniti, nyonso moko ezalí na balangi ya mbala na mbala oyo eponamaka na boumeli ya boumeli ya mobimba ya scroll, mpe esalaka mótí ya ntángo oyo ezalí na bomoi mpe ya kosakana oyo ebongwanaka ntango nyonso.

Ndenge mótí ya ntángo oyo esalaka
Sima ya kopésa nguya na board na nzela ya USB-C, ESP32-S3 esangani na réseau ya Wi-Fi na yo mpe ezwi ntángo ya sika ya mboka longwa na internet. Ntángo ekabwani na biteni misato—ngonga, colon, mpe miniti—mpe eteni nyonso ekomamaka na ndenge moko na kati ya matrice ya RGB. Ntango makomi makololoka mobimba longwa na écran, balangi ya sika ya mbala na mbala eponamaka mpo na libale oyo elandi.
Bibliothèques oyo esalelami
Sketch oyo esalelaka bibliothèques oyo:

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
Tiya Adafruit NeoMatrix longwa na Arduino Library Manager. Ba dépendances oyo esengeli lokola Adafruit GFX Library mpe Adafruit NeoPixel ekotiama automatiquement.

Configuration ya moto oyo esengeli
Pin ya ba données ya matrice (matrice ya RGB ya kati)
Atako matrice ya RGB ezalí na kati ya board, pin ya ba données esengeli kaka kolimbolama na kati ya code:

#define MATRIX_PIN 14
GPIO 14 esalelamaka mingi na ba boards ya matrice ya RGB ya ESP32-S3. Soki board na yo ya ndenge mosusu esalelaka pin mosusu, bongola valeur oyo kolanda yango.
SSID mpe mot de passe ya Wi-Fi (ezalí na ntina ya ba lettres minene mpe miké)
Bongola ba informations ya Wi-Fi na ba détails ya réseau na yo moko:
const char* WIFI_SSID = "your WiFi SSID";
const char* WIFI_PASSWORD = "passW0rd";
Likambo ya ntina: Ba SSID ya Wi-Fi ezalí na ntina ya ba lettres minene mpe miké. SSID oyo ebengami "Book" ezalí ndenge moko te na "book". Soki ba lettres minene mpe miké ekokani te mbala moko, ESP32-S3 ekokoka te kosangana.
Serveur ya NTP, zone ya ntángo, mpe ntángo ya moi
Bosangisi ya ntángo esalemaka na nzela ya serveur ya NTP ya internet:
const char* ntpServer = "pool.ntp.org";
Ntángo ya mboka etangamaka na nzela ya ba offsets ya UTC mpe ya ntángo ya moi:
// Toronto-ish: UTC-5, plus 1 heure ya DST
const long gmtOffset_sec = -5 * 3600;
const int daylightOffset_sec = 3600;
gmtOffset_sec: Offset ya UTC na secondes (bongola mpo na esika na yo)daylightOffset_sec: Salela3600ntango DST ezalí na mosala, to0soki te
Ba paramètres oyo esalelamaka na:
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
Bosémbisi ya mwinda ya mokolo / butu automatique
Mótí ya ntángo ebongolaka mwinda automatiquement kolanda ngonga ya sika:
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22;
const int NIGHT_END_HOUR = 6;
Na kati ya 10 PM mpe 6 AM, affichage ekitaka mwinda mpo na kokitisa glare na bisika ya molili. Na ntango ya mokolo, matrice ezongelaka mwinda ya momeseno.
Bizaleli ya balangi ya RGB ya mbala na mbala
Lisolo ya ba couleurs ya RGB oyo ekomami liboso ebombamaka na kati ya tableau, epai wapi couleur nyonso elimbolamaka na nzela ya ba valeurs ya Rouge, Vert, mpe Bleu longwa na 0 kino na 255:
uint8_t userColors[][3] = {
{255, 0, 0}, // Rouge
{0, 255, 0}, // Vert
{0, 0, 255}, // Bleu
{255, 165, 0}, // Orange
{255, 0, 255}, // Magenta
{0, 255, 255}, // Cyan
{255, 255, 0} // Jaune
};
Na boumeli nyonso ya mobimba ya scroll:
- Ba chiffres ya ngonga bapesamaka couleur ya mbala na mbala
- Colon ezwaka couleur mosusu ya mbala na mbala
- Ba chiffres ya miniti bazwaka couleur mosusu ya mbala na mbala
Oyo esalaka bosangani ya ba couleurs oyo ebongwanaka ntango nyonso mpe esalaka ete mótí ya ntángo ezala ya kitoko mpe ya kosepelisa. Mpo na kosala ba couleurs na yo moko ya momeseno, okoki kosalela outil ya RGB Color Picker: RGB Color Picker.
Logique ya kobimisa ntángo
Ntángo ekabwani na biteni misato:
- Ngonga:
HH - Colon:
: - Miniti:
MM
Eteni nyonso ekomamaka na ndenge moko mpo ete ezala na couleur na yango moko, wana biteni nyonso etambolaka elongo mpo na kosala animation ya scroll oyo ezalí pete na kati ya affichage ya 8×8.
Kosala ba couleurs ya mbala na mbala
Mpo na kolakisa ete ba couleurs ezala ya mbala na mbala, sketch ezalaka na ba graines ya générateur ya ba nombres ya mbala na mbala na ebandeli na nzela ya pin ya analogique oyo esangani te:
randomSeed(analogRead(0));
Oyo esalaka ete bosangani ya ba couleurs ezala ya ndenge na ndenge na boumeli nyonso ya kopésa nguya mpe boumeli nyonso ya scroll.
Elakiseli
Sima ya kotia sketch mpe kopésa nguya na board na nzela ya USB-C:
- ESP32-S3 esangani na réseau ya Wi-Fi na yo
- Ntángo esangisamaka longwa na internet
- Ntángo elolotaka na format ya
HH:MM - Ngonga, colon, mpe miniti ebongwanaka na ba couleurs ya mbala na mbala na boumeli nyonso
- Affichage ekitaka mwinda na butu automatiquement
Ba téléchargements mpe ba liens
Mokanda mobimba ya source code ezwami na nsé ya lisolo oyo. Bipali oyo esalisaka mpe mikanda ya kotánga ezali na nsé ya lisolo oyo.
Mateya oyo ezali eteni ya: ESP32-S3 Matrice ya LED RGB
- Projet ESP32-S3 Matrice LED RVB 1- Point de base
- Projet ESP32-S3 Matrice LED RVB 2 - Texte défilant
- Mokano ya ESP32-S3 RGB LED Matrix Projɛ́ 3 - Mokanda na phone ya mbɔ́kɔ
- Mpɔ́ngɔ́ ya ESP32-S3 RGB LED Matrix 4 - Tilt dot
- Projet ESP32-S3 Matrice LED RVB 5 - Flèche toujours vers le haut
- Projet ESP32-S3 Matrice LED RVB 6 - Jeu Cible
- Mokano ya ESP32-S3 RGB LED Matrix Wi-Fi + NTP Time Clock -1 Saa ya Liboso
- Projet Horloge Internet à Matrice LED RGB ESP32-S3 - Affichage de l'Heure et de la Date en 2 Horloges Multicolores
- Projet ya Saa ya Intanɛti ya ESP32-S3 RGB LED Matrix - 3 Langi ya Butú elongo na Mokolo
- Projet ya Monganga ya Internet ya ESP32-S3 RGB LED Matrix - 5 Loni ya Rainbow
- ESP32-S3 RGB LED Matrix test for RGB, GRB setting
/*
* =====================================================================================
* ESP32-S3 INTERNET RGB CLOCK (8x8 Matrix) - Project 4- Random Color
* =====================================================================================
watch video https://youtube.com/shorts/4iWjLiD7fS8
📚⬇️ Download and resource page https://robojax.com/RJT843
* Author: Gemini (AI Thought Partner) & Ahmad Shamshiri (Robojax.com)
* Date: 07 Jan 2026
* * FEATURES:
* 1. WiFi/NTP Time: Syncs automatically with internet time servers.
* 2. Cycle-Based Color: Color changes ONLY after the time finishes a full scroll.
* 3. Auto-Brightness: Dims the LEDs during night hours (User-configurable).
* =====================================================================================
*/
/*
* =====================================================================================
* ESP32-S3 INTERNET CLOCK - MULTI-COLOR ELEMENTS
* =====================================================================================
* Each part of the time (HH : MM) gets a different random color from your list.
* Colors only change once the full scroll cycle is finished.
* =====================================================================================
*/
#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
#define MATRIX_PIN 14
// --- CONFIGURATION ---
const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22;
const int NIGHT_END_HOUR = 6;
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
};
int totalColors = sizeof(userColors) / sizeof(userColors[0]);
// Variables to store the current random color indices
int hourColorIdx = 0;
int colonColorIdx = 1;
int minColorIdx = 2;
// --- GLOBALS ---
Adafruit_NeoMatrix matrix(8, 8, MATRIX_PIN,
NEO_MATRIX_TOP + NEO_MATRIX_LEFT +
NEO_MATRIX_ROWS + NEO_MATRIX_PROGRESSIVE,
NEO_RGB + NEO_KHZ800);
char hourText[3], minText[3];
int16_t scrollX = 8;
unsigned long lastScrollMs = 0;
const uint16_t scrollIntervalMs = 100;
// 👇 REPLACE these with your real home WiFi name & password
const char* WIFI_SSID = "your WiFi SSID";
const char* WIFI_PASSWORD = "passW0rd";
// NTP (time) server
const char* ntpServer = "pool.ntp.org";
// Toronto-ish: UTC-5, plus 1 hour DST
const long gmtOffset_sec = -5 * 3600; // -5 hours
const int daylightOffset_sec = 3600; // +1 hour for DST
void updateTimeParts() {
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) return;
snprintf(hourText, sizeof(hourText), "%02d", timeinfo.tm_hour);
snprintf(minText, sizeof(minText), "%02d", timeinfo.tm_min);
if (timeinfo.tm_hour >= NIGHT_START_HOUR || timeinfo.tm_hour < NIGHT_END_HOUR) {
matrix.setBrightness(NIGHT_BRIGHTNESS);
} else {
matrix.setBrightness(DAY_BRIGHTNESS);
}
}
void scrollTime() {
matrix.fillScreen(0);
int x = scrollX;
// 1. Draw Hours
matrix.setTextColor(matrix.Color(userColors[hourColorIdx][0], userColors[hourColorIdx][1], userColors[hourColorIdx][2]));
matrix.setCursor(x, 0);
matrix.print(hourText);
x += 12; // Move 12 pixels (2 digits * 6px)
// 2. Draw Colon
matrix.setTextColor(matrix.Color(userColors[colonColorIdx][0], userColors[colonColorIdx][1], userColors[colonColorIdx][2]));
matrix.setCursor(x, 0);
matrix.print(":");
x += 6; // Move 6 pixels
// 3. Draw Minutes
matrix.setTextColor(matrix.Color(userColors[minColorIdx][0], userColors[minColorIdx][1], userColors[minColorIdx][2]));
matrix.setCursor(x, 0);
matrix.print(minText);
matrix.show();
scrollX--;
// Total width is roughly 30 pixels (HH=12, :=6, MM=12)
if (scrollX < -30) {
scrollX = matrix.width();
// Pick NEW random colors for the next cycle
hourColorIdx = random(0, totalColors);
colonColorIdx = random(0, totalColors);
minColorIdx = random(0, totalColors);
}
}
void setup() {
Serial.begin(115200);
// Seed the random generator using an unconnected analog pin
randomSeed(analogRead(0));
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) delay(500);
// Configure time via NTP
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
Serial.println("Waiting for time...");
delay(2000); // small wait for initial sync
matrix.begin();
matrix.setTextWrap(false);
matrix.setBrightness(DAY_BRIGHTNESS);
}
void loop() {
if (millis() % 1000 == 0) updateTimeParts();
if (millis() - lastScrollMs >= scrollIntervalMs) {
lastScrollMs = millis();
scrollTime();
}
}
Mokili na bisika
-
Vidéo
-
Interno🎨 Color picker Toolrobojax.com
Fichiers📁
Fritzing File
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB