[GMBB] Re-Edition de l'Automate de Windaube

La récré est terminée, fini de te tourner les pouces !!

Ahaha !! c'est ça que j'aime entendre ! :wub:

Je n'ai bien entendu pas fait le programme à ta place,

Et M**de ! :mdr: 330 lignes en si peux de temps , qu'est ce qu'on vas demander de plus !

En tous cas un gros GG , et je te remercie beaucoup pour ce boulot d’orfèvre :D j'ai de quoi passer de bonnes nuits maintenant :coffee: :lire:

Je vais " Zieuter " tous ça dans la soirée !

Encore un BIG UP :plusun: pour le grand Gen'ius !

Sur ce , ého, éhooo, Je retourne au boulot ! ;)
 
Dernière édition par un modérateur:
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
 
Dernière édition:
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

re,

@Gen tu veut dire que

if(digitalRead(A2) = ( if(digialRead(A2) == true )

if(!digitalRead(A2) = ( if(digialRead(A2) == false )

merci d'avance.
 
Dernière édition par un modérateur:
re:

Toutafet !

ne pas oublier de mettre la seconde parenthèse

if(digitalRead(A2))


Syntax


digitalRead(pin)

Parameters


pin: the number of the digital pin you want to read

Returns


HIGH or LOW
++

GEN

 
Dernière édition:
re:

Toutafet !

++

GEN

merci @gen en effet cela simplifie l'écriture du code

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

je le sais bien

j'ais une erreur si je le laisse pas et je comprend pas pourquoi.

braces around scalar initializer for 'int'.
 
parce que maintenant,quelque part dans ton code, tu références un tableau à 2 dimensions, alors qu'il n'en a plus qu'une.

++

GEN

 
en effet mais je suis parti sur cette méthode

if(digitalRead(A2) && now.unixtime()%86400 == 32760) et je t'en remercie grandement
 
Bien..

par contre je ne suis pas trop partisan de mettre des valeurs en dur dans le code, le jour où il faut changer l'heure, il faut se farcir tout le code pour la retrouver

ce que je te propose c'est de créé une fonction qui renvoie le temps écoulé depuis minuit en secondes

et elle prendra les valeurs de variables déclarées en tête du programme

int startH = 9;

int startM = 6;

int startS = 0;

ensuite ajouter cette fonction

long secondsSinceMidnight(int hour,int minute, int second)

{

return (hour * 3600) + (minute * 60) + second;

}

et maintenant tu fais ton test ainsi :

if(digitalRead(A2) && now.unixtime()%86400 == secondsSinceMidnight(startH,startM, startS))

Si tu as plusieurs fois et successivement le même genre de comparaison, pour gagner du temps processeur, tu peux déclarer une variable (a toi de voir sa portée, qu'elle soit locale, ou globale)

d'y assigner la valeur via la fonction secondsSince... et de faire le comparatif avec la valeur de cette vazriable et non plus appeler la fonction

++

GEN
 
Bien..

par contre je ne suis pas trop partisan de mettre des valeurs en dur dans le code, le jour où il faut changer l'heure, il faut se farcir tout le code pour la retrouver

ce que je te propose c'est de créé une fonction qui renvoie le temps écoulé depuis minuit en secondes

et elle prendra les valeurs de variables déclarées en tête du programme

int startH = 9;

int startM = 6;

int startS = 0;

ensuite ajouter cette fonction

long secondsSinceMidnight(int hour,int minute, int second)

{

return (hour * 3600) + (minute * 60) + second;

}

et maintenant tu fais ton test ainsi :

if(digitalRead(A2) && now.unixtime()%86400 == secondsSinceMidnight(startH,startM, startS))

Si tu as plusieurs fois et successivement le même genre de comparaison, pour gagner du temps processeur, tu peux déclarer une variable (a toi de voir sa portée, qu'elle soit locale, ou globale)

d'y assigner la valeur via la fonction secondsSince... et de faire le comparatif avec la valeur de cette vazriable et non plus appeler la fonction

++

GEN

merci @Gen

j'utilise

int getTimeInMinutes(DateTime currentTime)
{
return ((currentTime.hour() * 60) + currentTime.minute());
}

pour gérer l'allumage.

c'est pareil ?
 
Dernière édition par un modérateur:
yop

c'est le même principe mais l'un travail en secondes (impératif si on travail avec unixtime() car c'est en secondes également

et l'autre en minutes

++

GEN

 
Ha ha !! On veut devenir Vizir à la place du Vizir je vois ... LOL

Belle personnalisation du Growduino. Proficiat !

Vive l'open source.

++

GEN

edit : MAJ 2 EN FIN DEBUT DE THREAD ! a plus tard l'équipe :wub::plus::lire:

Faut arrêter de poster après avoir fumer....
 
Dernière édition:
Re les loulous ! je suis en pleine fascination :wub: c'est de la bombe !!!

@Gen Jamais j'oserais ! jamais je pourrais ! je te l'ai dit en com je sais pas qui a fait siffler les oreilles de l'autre .. je l'ai commandé dans la semaine dernière et comme par hasard t'en as parlé aussi :D en tous cas c'est vraiment pas mal du tout !!

mais faut faire chauffer Photoshop !! ( contacter vos GFX :P ) je prévois une autre template plus en osmose quand même que les screens d'en haut ... se sont juste des testes :)
 
lol... je rigoleuuuu.

j'ai depuis plus de 2 mois un nextion 3.5" et un 7".. j'ai commencé les tests, mais ça va pas encore tout a fait comme je veux (création de graphiques) .. Mais ce va le faire, je fini toujours par trouver une solution..

Pour info, il y a une connexion nextion le nouveau shield mini-GrowDuino :-)

++

GEN
 
Re !!!

En meme temps vu les questions que je te poses des fois tu peux que rigoler :mdr:

Ahhhh yesss bien ! bah envoie un MP si tu veux des " croquis " de templates tu m'envoies ta couleurs background et l'autre couleur flashiii et je te prépare ca si tu veux ;) ( enfin avec ton cahiers des charges :P )
Nice la connectique ! , après c'est pas bien compliqué si on as un bornier reste juste a brancher le rx , tx en fuck*** slave :fouet::siff: :mdr:

petite vu sur le nouvel écran d'acceuil http://prntscr.com/in86zc ;)
 
Dernière édition par un modérateur:
merci, mais mon fils est infographiste, il va me faire cela aux petits oignons :-)

++

GEN

 
:D .... Tu m'étonnes !!

bon bah hâte de voir tout ça de ton coté !! ;) ( ça va encore être un truc de dingue comme on aime :plusun: )
 
Retour
Haut