Aller.. Au tour de
@tizi59 d'avoir les oreilles qui chauffent
perso j' ais fais ça pour la tmax/hmax et tmin/hmin et sa fonctionne
la tempMax et Min est "sauvegarder ?" pendant 24h
int tmin=100;
int tmax=0;
int hmin=100;
int hmax=0;
Si la lecture déconne tu es mal.. tu n'as rien qui gère une erreur éventuelle
float t = dht.readTemperature(); //dht22
float h = dht.readHumidity();
ci dessous pourquoi définir 2 paramètres de dimension vu que tu n'as qu'une dimension de tableau ?
int TabEvt [1][3] = {{9,6,00},}; // grow
int TabEvt1 [1][3] = {{11,00,00},}; // flow
cela s'écrit :
int TabEvt [3] ={9,6,0}; // grow
int TabEvt1 [3] = {11,0,0}; // flow
if(t >= tmax)
{ tmax=t; }
if(t <= tmin)
{ tmin=t; }
if(h >= hmax)
{ hmax=h; }
if(h <= hmin)
{ hmin=h; }
/ je réinitialise la tmax/hmax et tmin/hmin a l'allumage à l'aide d'un tableau d' événement
if ((digitalRead(A2) == true) && now.hour() == TabEvt [0][0] && now.minute() == TabEvt [0][1] && now.second() == TabEvt [0][2] )
{tmax=0;tmin=100;hmax=0;hmin=100;}
if ((digitalRead(A2) == false) && now.hour() == TabEvt1 [0][0] && now.minute() == TabEvt1 [0][1] && now.second() == TabEvt1 [0][2] )
Ci-dessus, pourquoi avoir fait une condition à rallonge quand tu peux avoir le nombre de secondes depuis minuit très facilement?
de plus cela te permet de te passer de ton tableau
if(digitalRead(A2) && now.unixtime()%86400 == 32760) // 32760 est egal à 9hr 6min 0sec
Autres avantages en cas d'écriture des valeurs dans une EEPROM, c'est plus simple de faire 1 ecriture que 3 , économie d'espace et
cela permet de gagner du temps processeur.
pourquoi
if(digitalRead(A2).... et non if(digialRead(A2) == true
if(!digitalRead(A2).... et non if(digialRead(A2) == false
car digitalRead() renvoie déjà une expression, donc pas besoin de refaire une comparaison
LOW = False = 0
HIGH = True = 1
En espérant que cela t'aide
++
GEN