#include <WiFi.h>
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <WiFi.h>
#include <time.h>
// ---------------- WIFI + NTP ----------------
#define NTP_SERVER "pool.ntp.org"
#define UTC_OFFSET 0
#define UTC_OFFSET_DST 0
// ---------------- DOT MATRIX ----------------
#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW
#define MAX_DEVICES 4
#define CS_PIN 21
#define HW_DIG_ROWS 1
#define HW_REV_COLS 0
#define HW_REV_ROWS 0
MD_Parola matrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// ---------------- FUNCTION ----------------
String getTimeString() {
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
return "TIME ERR";
}
char buffer[16];
strftime(buffer, sizeof(buffer), "%H:%M:%S", &timeinfo);
return String(buffer);
}
String getDateString() {
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
return "DATE ERR";
}
char buffer[16];
strftime(buffer, sizeof(buffer), "%d/%m/%Y", &timeinfo);
return String(buffer);
}
// ---------------- SETUP ----------------
void setup() {
Serial.begin(115200);
// LED MATRIX
matrix.begin();
matrix.setIntensity(10);
matrix.displayClear();
// WIFI
matrix.print("CONNECTING");
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(200);
}
matrix.print("ONLINE");
delay(1500);
// NTP GET TIME
configTime(UTC_OFFSET, UTC_OFFSET_DST, NTP_SERVER);
matrix.print("SYNC TIME");
delay(1500);
}
// ---------------- LOOP ----------------
void loop() {
// --- SHOW TIME ---
matrix.displayClear();
matrix.print(getTimeString());
Serial.println(getTimeString());
delay(2000);
// --- SHOW DATE ---
// matrix.displayClear();
//matrix.print(getDateString());
//delay(2000);
}