Bonjour tout le monde, je suis débutant sur Arduino et j'ai eu un problème sur une horloge numérique connecter à internet. Suite à un orage elle s'est déconnecté du réseau et j'ai donc du lui modifié le Wifi sur le quelle elle se connectait. Malheureusement je pensais avoir une sauvegarde du précédent programme mais en la remettant en route elle ne faisait plus exactement comme avant. L'horloge doit afficher l'heure la semaine en cours et la date, ça c'est bon le programme de sauvegarde que j'avais m'affiche déjà tout ça. Le problème vient du rafraichissement de l'écran, l'ancienne version rafraichissait seulement les données qui changeait (par exemple chaque seconde les numéro changeait) maintenant tout l'écran fait un balayage de gauche à droite pour se rafraichir donc si vous avez des idées sur comment régler cela je suis preneur. Merci d'avance
#include <WiFi.h>
#include <Adafruit_GFX.h>
#include <P3RGB64x32MatrixPanel.h>
#include <Fonts/FreeSansBold9pt7b.h>
#include <Timezone.h>
#include <EasyNTPClient.h>
#include <WiFiUdp.h>
// constructor with default pin wiring
P3RGB64x32MatrixPanel matrix;
char ssid[] = "nom du wifi";
char pass[] = "mot de passe";
WiFiUDP Udp_G; // Objet UDP permettant d'envoyer et recevoir des trames Wi-Fi selon le protocole UDP
EasyNTPClient ClientNtp_G(Udp_G, "pool.ntp.org"); // Objet NTP synchronisé avec "pool.ntp.org"
TimeChangeRule RegleHeureEteFrance_G = {"RHEE", Last, Sun, Mar, 2, 120}; // Règle de passage à l'heure d'été pour la France
TimeChangeRule RegleHeureHiverFrance_G = {"RHHE", Last, Sun, Oct, 3, 60}; // Règle de passage à l'heure d'hiver la France
Timezone ConvertirHeureFrance_G(RegleHeureEteFrance_G, RegleHeureHiverFrance_G); // Objet de conversion d'heure avec les caractéristique de la métropole française
short DN; //Returns the number of day in the year
short WN; //Returns the number of the week in the year
void DayWeekNumber(unsigned int y, unsigned int m, unsigned int d, unsigned int w){
int days[]={0,31,59,90,120,151,181,212,243,273,304,334}; // Number of days at the beginning of the month in a not leap year.
//Start to calculate the number of day
if (m==1 || m==2){
DN = days[(m-1)]+d; //for any type of year, it calculate the number of days for January or february
} // Now, try to calculate for the other months
else if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0){ //those are the conditions to have a leap year
DN = days[(m-1)]+d+1; // if leap year, calculate in the same way but increasing one day
}
else { //if not a leap year, calculate in the normal way, such as January or February
DN = days[(m-1)]+d;
}
// Now start to calculate Week number
if (w==0){
WN = (DN-7+10)/7; //if it is sunday (time library returns 0)
}
else{
WN = (DN-w+10)/7; // for the other days of week
}
}
void setup() {
Serial.begin(115200);
Serial.print("Attempting to connect to Network named: ");
Serial.println(ssid); // print the network name (SSID);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
Serial.println("");
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
matrix.begin(); // setup the LED matrix
}
void loop()
{
if (WiFi.status() != WL_CONNECTED)
ESP.restart();
time_t HeureLocale_L;
HeureLocale_L = ConvertirHeureFrance_G.toLocal(ClientNtp_G.getUnixTime());
matrix.fillScreen(0);
matrix.setTextColor(matrix.color444(15, 15, 15));
matrix.setFont(&FreeSansBold9pt7b);
matrix.setCursor(0, 13);
matrix.printf("%02d:%02d", hour(HeureLocale_L), minute(HeureLocale_L));
matrix.setFont();
matrix.printf(":%02d", second(HeureLocale_L));
matrix.setCursor(2, 16);
matrix.setTextColor(weekday(HeureLocale_L) == 0 ? matrix.color444(15, 0, 0) :
weekday(HeureLocale_L) == 6 ? matrix.color444(0, 6, 15) :
matrix.color444(6, 15, 6));
DayWeekNumber(year(HeureLocale_L), month(HeureLocale_L), day(HeureLocale_L), weekday(HeureLocale_L));
matrix.printf("Sem %02d", WN);
matrix.setCursor(2, 24);
matrix.setTextColor(matrix.color444(12, 12, 4));
matrix.printf("%02d/%02d/%04d\n", day(HeureLocale_L), month(HeureLocale_L), year(HeureLocale_L));
matrix.swapBuffer(); // display the image written to the buffer
}