changement bibliotheque ethernet

Bonjour j ' utilisais sur le codede mon mini serveur web domotique la bibliotheque ethernet2 , mais a priori , elle ne serait plus maintenue :confused:

j ' ai donc voulu passer sur la " classique " , mais j' obtiens une erreur a la compilation :

In file included from /home/iznobe/Arduino/libraries/Ethernet/src/Dns.cpp:8:0:
/home/iznobe/Arduino/libraries/Ethernet/src/Dns.cpp: In member function 'uint16_t DNSClient::BuildRequest(const char*)':
/home/iznobe/Arduino/libraries/Ethernet/src/utility/w5100.h:457:25: warning: result of '(256 << 8)' requires 18 bits to represent, but 'int' only has 16 bits [-Wshift-overflow=]
#define htons(x) ( (((x)<<8)&0xFF00) | (((x)>>8)&0xFF) )

/home/iznobe/Arduino/libraries/Ethernet/src/Dns.cpp:164:18: note: in expansion of macro 'htons'
twoByteBuffer = htons(QUERY_FLAG | OPCODE_STANDARD_QUERY | RECURSION_DESIRED_FLAG);

a mon niveau , c ' est du petit chinois ce que le compilo renvoi :roll_eyes:

je joins mes fichiers au cas ou y aurait besoin d ' y voir plus clair .

Merci pour votre aide .

arrosage_fonctions.ino (7.14 KB)

capteurs.ino (1.59 KB)

initialisations_fonctions.ino (1.79 KB)

page_web.ino (12.5 KB)

relais_fonctions.ino (4.08 KB)

serveur_machine_etats.7.317.ino (9.11 KB)

serveurs.ino (12.1 KB)

timers_rtc.ino (1.39 KB)

volets_fonctions.ino (5.62 KB)

iznobe:
Bonjour j ' utilisais sur le code de mon mini serveur web domotique la bibliotheque ethernet2 , mais a priori , elle ne serait plus maintenue

Est-ce que c'est un problème?

c'est juste un warning, non ? ça ne devrait pas empêcher de compiler et même si le compilateur a raison de se plaindre, ce n'est pas un souci dans ce cas, c'est OK de perdre les 2 bit lors du décalage - le résultat souhaité est le OU logique de 8 bits de poids forts avec les 8 bits de poids faible, il est attendu sur 8 bits uniquement

fdufnews:
Est-ce que c'est un problème?

souvent , le mega reste bloqué , enfin plus exactement , je suppose qu ' il y a un probleme avec le serveur web ou un truc dans le genre car l ' affichage de la page web ne se fait plus apres un temps aleatoire et le relais des heures creuses restent enclenché alors qu ' il ne devrait pas .

lorsque je demande une page , je vois bien une LED orange sur le shield ethernet qui clignote , LED activité je suppose .

pourtant sur le navigateur la page ne s' affiche plus .

j ' ai modifié la fonction relaisHeuresCreuses de mon code de sorte qu ' elle soit la plus simple possible pour voir si le probleme venait de là , mais ca n ' a rien changé .

je ne trouve pas ce qui cloche , donc je me suis dis qu ' il y avait un probleme avec la bibliotheque ethernet master 2 , c ' est pour cela que j' ai voulu mettre la bilbiotheque "ethernet" a la place de la 2 .

J-M-L:
c'est juste un warning, non ? ça ne devrait pas empêcher de compiler et même si le compilateur a raison de se plaindre, ce n'est pas un souci dans ce cas, c'est OK de perdre les 2 bit lors du décalage - le résultat souhaité est le OU logique de 8 bits de poids forts avec les 8 bits de poids faible, il est attendu sur 8 bits uniquement

a priori ca n ' empeche pas de compiler , mais ca ne gene pas l ' execution du code ?

du fait que j' ai un soucis de stabilité sur la durée ( voir post precedent ) , je me demandais si ca ne pouvait pas avoir un rapport.

avec la lib ethernet , plus rien ne marche :grin:

tout a l ' heure vers 14 heures 16 min , j ' ai entendu le relais se couper , puis se renclencher , je suis donc aller voir .

le relais 5 V de l ' arduino a fait une double commutation , je ne sais pas pourquoi , mais il n ' a pas enclenché le relais HC ( 220 V ).

honnetement là , je suis completement perdu pour plusieurs raisons .

1°) l ' heure ne correspond a rien par rapport au code .
2°) le relais ne peut pas changer d' etat plus d' une fois par 30 secondes d' apres le code .
3°) le relais 220 V devrait aussi s ' enclencher .
4°) desuite apres cela , impossible d' afficher la page du serveur ...

le relais a à nouveau commuté 2 fois a 14 h 42 , au moment ou j ' ecris ces lignes .

voici la fonction :

void relaisHeuresCreuses () { // heures creuses de minuit a 6 H et de 12 a 14 Heures
	static unsigned long chrono = 0;
	static bool RHC = true; // jamais lu

	if (RHC || (millis() - chrono >= TIMER_V)) { // si jamais lue ou lue depuis plus de 30 secondes
		if ((RTC.heure() < 6) || ((RTC.heure() >= 12) && (RTC.heure() < 14))) {
			activeRelais_A(RHC_PIN_RELAY);
			if (DEBUG) Serial.println (F("relaisHeureCreuse => etat actif"));
		}
		else {
			reInitRelais_A(RHC_PIN_RELAY);
			if (DEBUG) Serial.println (F("relaisHeureCreuse => etat passif"));
		}
		RHC = false;
		chrono = millis();
	}
}

une idée du probleme ?

Ce n'est pas le warning qui cause le souci. le warning est juste informatif que des bits sont perdus lors du shift, mais c'est volontaire de la part du programmeur.

difficile à dire d'où ça vient, ce code n'a pas l'air suspect..

Où en êtes vous au niveau mémoire ? peut-être cette bibliothèque est plus gourmande et reboot de l'Arduino ? vous avez des traces dans la console série ?

Bonjour au niveau memoire , je suis a 21 % utilisé et a 12% pour l ' ecriture de code , y a de la marge avec une mega !

parfois , j ' entends des relais qui s ' actionnent , sans avoir demandé de manip , j ' ai bien etendu arreter l' arrosage automatique , pour ne pas avoir de perturbation de ce coté là .

je ne vois pas trop ce qui peut declencher les relais sans demande sur le serveur web ( avecl ' arrosage desactivé ) le seul relais est celui des heures creuses et qui devrait logiquement s ' enclencher / se desenclencher a heures fixes .

Sur la console serie , je n' avais rien vu que jusqu ' a maintenant l ' arduino et le programme etait tranquille dans le coffret electrique .

le seul moyen est donc pour verifier le code , de laisser le PC et l ' arduino connecté pour verifier le moniteur serie ?

parfois , j ' entends des relais qui s ' actionnent , sans avoir demandé de manip , j ' ai bien etendu arreter l' arrosage automatique , pour ne pas avoir de perturbation de ce coté là .

je ne vois pas trop ce qui peut declencher les relais sans demande sur le serveur web ( avecl ' arrosage desactivé ) le seul relais est celui des heures creuses et qui devrait logiquement s ' enclencher / se desenclencher a heures fixes .

perturbations électromagnétiques ?