Erreur compilateur

(deleted)

Je ne comprends pas: le code est dans un .ino, et tu as en plus un .h et un .cpp ?

Tu ne nous donnes pas tout, notamment les fonctions:

unsigned long Heure_Internet();
void sendNTPpacket(const char * address) ;
void gestionDutemps();
bool BISSEXTILE(int annee);
int Connect_Serveur();

Sont-elles dans le .cpp ?

Tu définis la variable t dans le .h:

struct ts t;

Elle doit être aussi définie ailleurs, c'est ce que dit le compilateur :

multiple definition of `t'

Donc cherche où elle peut apparaître. Tu peux aussi mettre tes 4 fonctions directement à la fin du .h

Bonjour,

Il ne faut pas définir de variables dans un .h car chaque fois que le .h va être appelé dans un .ino ou un .cpp la variable va être instanciée.
Les variables doivent être définies dans un .cpp (ou .ino) et déclarées extern dans le .h

extern struct ts t;

Quand tu écris

#ifndef Heure_Internet_h
#define Heure_Internet_h
 #endif

C'est pour que le fichier .h ne soit pas inclus plusieurs fois lors d'une compilation, donc le #endif doit être à la fin du fichier.

Il m'arrive pour des codes un peu gros de déclarer toutes mes variables globales dans un fichier .h et les fonctions dans un ou plusieurs autres, ce qui me permet d'avoir seulement les #include, le setup et la loop dans le fichier ino.
Et ça fonctionne bien...

(deleted)