Bonjour,
Un grand merci a @rollmops67 .
Je cherchais comment afficher la couleur de l'option tempo sur un écran.
Et je suis tombé sur ce forum.
Ça fait très longtemps que je veux me lancer sur de la programmation avec Arduino.
Ça a donc été l'occasion. Et ta création ma largement donné l'envie de passer a l'acte.
J'ai donc commandé Lilygo T-display-s3.
Je me suis inspiré de ton code pour l'arranger a ma façon. Ca a été plus facile que de partir d'une feuille blanche.
J'ai juste une remarque sur la gestion de l'heure.
J'ai vu sur un forum, qu'il n'était pas nécessaire de charger une bibliothèque. NTP était déjà géré sur les esp32.
Voici un extrait du code:
// NTP
const char* ntpServer = "pool.ntp.org"; // Serveur NTP
#define MAX_SIZE 80
// ******** Valeurs pour la gestion de l'heure et de la date
time_t timestamp_actu, timestamp_edf; // Timestamp de la derniere mise a jour Tempo et Get EDF
char heure[MAX_SIZE]; // Heure actuel => Format 17:28
char date[MAX_SIZE]; // Date actuel => Format 30/06/2024
char dateUpdateEdf[MAX_SIZE]; // Date actuel au format GET pour EDF
time_t timestamp = time (NULL ); // Timestamp actuel
// Fonction pour traduire les jours en français
String jourEnFrancais(const char* day) {
if (strcmp(day, "Monday") == 0) return "Lundi";
if (strcmp(day, "Tuesday") == 0) return "Mardi";
if (strcmp(day, "Wednesday") == 0) return "Mercredi";
if (strcmp(day, "Thursday") == 0) return "Jeudi";
if (strcmp(day, "Friday") == 0) return "Vendredi";
if (strcmp(day, "Saturday") == 0) return "Samedi";
if (strcmp(day, "Sunday") == 0) return "Dimanche";
return "";
}
String moisEnFrancais(int month) {
switch (month) {
case 0: return "Janvier";
case 1: return "Février";
case 2: return "Mars";
case 3: return "Avril";
case 4: return "Mai";
case 5: return "Juin";
case 6: return "Juillet";
case 7: return "Août";
case 8: return "Septembre";
case 9: return "Octobre";
case 10: return "Novembre";
case 11: return "Décembre";
default: return "";
}
}
void setup()
{
configTzTime("CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00", ntpServer);
}
void loop()
{
updateDateTime();
}
void updateDateTime() {
timestamp = time(NULL);
struct tm* pTime = localtime(×tamp);
strftime(heure, MAX_SIZE, "%H:%M", pTime);
// Obtenez le jour de la semaine en anglais
char day[10];
strftime(day, sizeof(day), "%A", pTime);
String dayInFrench = jourEnFrancais(day);
// Obtenez le mois en anglais
int month = pTime->tm_mon;
String monthInFrench = moisEnFrancais(month);
// Formatez la date en français
snprintf(date, MAX_SIZE, "%s %d %s", dayInFrench.c_str(), pTime->tm_mday, monthInFrench.c_str());
// Formatez la date pour la requête EDF
strftime(dateUpdateEdf, MAX_SIZE, "%Y-%m-%d", pTime);
}
Ça fonctionne super bien.
J'ai pour idée de passer a l'étape supérieure en commandant un écran 7 pouce sur esp-s3.
J'ai envie de pouvoir commander l'alarme, les lumières, .... Et aussi remonter les productions et consommations solaire.
En parallèle, j'ai un ancien projet en pause que je vais réactiver. Créer un robot tondeuse.
Encore merci a toi 