canapé friends horloge
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
canapé friends horloge
- Ocena
- 0 / 5
- Polubienia
- 3
- Pobrania
- 11
- Wydruki
- 0
- Wyświetlenia
- 72
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Home Decor
- Licencja
- Creative Commons — Public Domain
canapé friends avec horloge intergrée
afficheur TM1637 mini
carte controleur wemos D1 mini
code arduino ide
passage auto a l heure ete et hiver et les 2 points clignotent
#include <Arduino.h>
#include "TM1637Display.h"
#include "WiFiManager.h"
#include <time.h>// Définition des pins pour l'affichage TM1637
#define red_CLK 5
#define red3_DIO 4
// Configuration de la luminosité (0 à 7)
int Display_backlight = 1;
// Initialisation de l'affichage TM1637
TM1637Display red3(red_CLK, red3_DIO);
// Configuration du serveur NTP et du fuseau horaire
const char* ntpServer = "pool.ntp.org";
void setup()
{
// Configuration des pins
pinMode(red_CLK, OUTPUT);
pinMode(red3_DIO, OUTPUT);
// Démarrage du port série pour le débogage
Serial.begin(115200);
Serial.println("\n\nDémarrage de l'horloge WiFi...");
// Configuration du WiFi Manager
WiFiManager manager;
manager.setTimeout(180); // Timeout de 3 minutes
// Tentative de connexion WiFi
Serial.println("Connexion au WiFi...");
bool res = manager.autoConnect("Horloge-Friends", "12345678");
if(!res)
{
Serial.println("Échec de connexion WiFi - Redémarrage...");
delay(1000);
ESP.restart();
}
Serial.println("WiFi connecté !");
Serial.print("Adresse IP: ");
Serial.println(WiFi.localIP());
// Configuration de l'heure via NTP avec timezone Europe/Paris
// CET-1CEST,M3.5.0,M10.5.0/3 signifie:
// - CET (Central European Time) = UTC+1 en hiver
// - CEST (Central European Summer Time) = UTC+2 en été
// - M3.5.0 = dernier dimanche de mars à 2h00 (passage à l'heure d'été)
// - M10.5.0/3 = dernier dimanche d'octobre à 3h00 (passage à l'heure d'hiver)
Serial.println("Synchronisation avec le serveur NTP...");
configTzTime("CET-1CEST,M3.5.0,M10.5.0/3", ntpServer);
// Attendre que l'heure soit synchronisée
struct tm timeinfo;
int retry = 0;
while(!getLocalTime(&timeinfo) && retry < 10) {
Serial.print(".");
delay(1000);
retry++;
}
if(retry < 10) {
Serial.println("\nHeure synchronisée !");
Serial.printf("Date actuelle: %02d/%02d/%04d\n",
timeinfo.tm_mday, timeinfo.tm_mon + 1, timeinfo.tm_year + 1900);
Serial.printf("Heure actuelle: %02d:%02d:%02d\n",
timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
} else {
Serial.println("\nÉchec de synchronisation NTP");
}
// Configuration de la luminosité de l'affichage
red3.setBrightness(Display_backlight);
Serial.println("Horloge prête !");
}
void loop()
{
// Récupération de l'heure locale
struct tm timeinfo;
if(!getLocalTime(&timeinfo)) {
Serial.println("Échec d'obtention de l'heure");
// Afficher des tirets en cas d'erreur
red3.showNumberDecEx(8888, 0b00000000, true, 4, 0);
delay(1000);
return;
}
// Extraction des heures et minutes
int heures = timeinfo.tm_hour;
int minutes = timeinfo.tm_min;
int secondes = timeinfo.tm_sec;
// Affichage dans le moniteur série (toutes les secondes)
static int lastSecond = -1;
if(secondes != lastSecond) {
Serial.printf("Heure: %02d:%02d:%02d\n", heures, minutes, secondes);
lastSecond = secondes;
}
// Créer le nombre à afficher (HHMM)
int displayValue = heures * 100 + minutes;
// Faire clignoter les deux points toutes les secondes
// 0b01000000 = deux points allumés
// 0b00000000 = deux points éteints
uint8_t colonState = (secondes % 2 == 0) ? 0b01000000 : 0b00000000;
// Afficher l'heure complète avec l'état des deux points
red3.showNumberDecEx(displayValue, colonState, true, 4, 0);
// Attendre 100ms avant la prochaine mise à jour (pour un clignotement fluide)
delay(100);
}
