1 / 4
canapé friends horloge — zdjęcie 1
1 / 4

canapé friends horloge

Zamów wydruk tego modelu

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); }