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


Messages recommandés

Salut a toi @hannibal smith , et bienvenue sur le forum ! 

merci pour cette encouragement !! comme d'hab si des questions te taraudent tu peux me MP  ;) 

 

_______________________________________________________________________________________________________________________________________________________________

 

Et j'en profite pour faire une annonce par la même occase : 

__________________________________________________________

|                                                                                                        |

|      SE SOIR JE POSTE LE GMBB'S BETA TEST 2                   |

|                                                                                                        |

|                        CETTE MAJ COMPREND :                                 |

|                      -  Le code fournis par @Gen                               |

                    -  3 MODES CRO / FLO / SEC                               |

|                      -  MÊME SCHÉMA (2 BOUTTONS)                      |

|                                                                                                        |

___________________________________________________________

 

*  Je décide de sortir cette MAJ plutôt , a contre envie ... car hier soir j'ai rencontré un problème avec l'ancienne version , ma lampe est resté 1 heure de plus  *

Comme écris plus haut le .ino seras fonctionnel mais qu'en version test (encore une fois) , une version bien mieux fini avec plus d'options arrivera , plus prochainement ..

Ainsi qu'une version avec écran TFT Nextion ( pour plus tard ) 

 

________________________________________________________________________________________________________________________________________________________________

 

 

A se soir ! @Omgprod ! :) 

Modifié par Omgprod
  • Like 1
Lien à poster
Partager sur d’autres sites
Le 05/03/2018 à 08:16, Omgprod a dit:

Salut a tous je vous annonce juste qu'il y a la : 

 

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

 

 

EDIT ECRAN RECU , NOUVEAUX TESTS :

 

IMG_0723.thumb.jpg.074cedff837d923cdf445b3f3f8900fa.jpgScreenshot_2.thumb.png.d0e809b928c98eafea852efeff2d79b6.png 

Bonjour

ton nouveau code inclus le Nextion?

Merci

 

Lien à poster
Partager sur d’autres sites

Salut a toi @Marchello !! je te souhaite la bienvenue sur le forum ! 

Non j'ai reçu l'écran la semaine dernière , je suis qu'en phase de test pour le moment ( faut comprendre la bête ) , mais c'est prévu .. sans date a donner  ;) 

Bonne soirée ! 

Lien à poster
Partager sur d’autres sites

Salut la commu

 

En se moment j attend mes pièces, je planche donc sur l ajout d une option qui serait de pouvoir modifier l heure d allumage et d extinction de mon futur panneaux via keypad 4×4.

Mais cela relève du défi pour un petit néophyte comme moi, 

Quelqu' un aurait-il une suggestion ou une piste à suivre?

Le roi @Gen nous fera-t-il partager sont savoir?:D

 

Merci d avance.

Lien à poster
Partager sur d’autres sites

yop.

 

Télécharges le programme du mini-growduino.. Tout s'y trouve

Tu n'as qu'à copier la partie déclarative et les fonctions qui t'intéressent

 

++

GEN

Lien à poster
Partager sur d’autres sites

Plop ! Re @tizi59 , @Gen ;)  

 

j’avoue que gen a déjà bien mâché le travail pour le keypad  .. mais si tu veux te faire plus d’idée sur le code de keypad y’a un livre sympa qui en parle avec du code assez bien fait que je peux te conseiller le nom c’est Arduino Applications avancées . Si tu arrives à le choper en pdf ;)  moi j’ai plusieurs de ses livres ( dont je me tue en ce moment même ) ils sont bien pour des débutants 

 

mais oui tu peux déjà testé avec le code du MGD tu as même les fonctions pour changer l’heure toute faite :D 

 

moi j’ai testé le code de @B.ganja avec le module et j’avoue que c’est plutot Pas mal ! Tu devrais jeter un œil aussi tizy ;) 

 

E4575ECA-E3B3-44E3-B87F-63F5BFB36BDC.thumb.jpeg.a0da62288653ba7bfb500d5430a10f2f.jpeg

 

Réception des états des timers, cycliques , HU , TU .. MODE , CRO , TEMP et Humidité 

 

* a savoir que avec le modèle hc 05 ( que je n’ai pas ) on peut faire passer le l’Arduino en esclave * 

  • Like 2
Lien à poster
Partager sur d’autres sites
  • 2 mois après ...

Salut a tous, je n'arrive pas à téléchargé le pdf, corrigé par Gen, avec le programme. S'il était possible de le remettre. SVP.

Ce post est vraiment intéressant. J'aimerai me lancer.

Merci d'avance.

Lien à poster
Partager sur d’autres sites

Yop

 

Je viens de tester et le téléchargement fonctionne, donc le bin's c'est soit chez toi, soit tu n'as pas les droits

de toute manière le code est accessible car je l'ai inclus en texte dans le post

Suffit de démasquer, de le sélectionner  et de le copier ..

 

++

GEN

Lien à poster
Partager sur d’autres sites
  • 1 mois après ...

Plop All ! 

 

Je sais ça fait quelques temps que je ne me suis pas co, j'en suis désolé ... Et en plus de ça, j'ai une bonne et une mauvaise nouvelle.

 

Je compte bien finir se projet ( mais cela prendra un peu plus de temps ) la raison c'est que je reprend l'école, mais en informatique :lire: ( pour éviter de trop en dire ..) donc je devrais pondre des trucs un peu plus potable, d'ici la ;) 

 

Je passerais poster des petites news temps en temps!

et des photos de la prod MiniGrowDuino @Gen ;) 


Et je reste dispo aux MP :applaus:   PEACE !  @OMGPROD 

Lien à poster
Partager sur d’autres sites
  • 7 mois après ...

Bonjour La Zone ! 

Je viens vous dire que je ne vous ai pas oubliés, et Aujourd'hui je viens vous livrer mon projet OMGPROD-GROWCODE en version : Alpha.
Je bosse dessus depuis 3, 4 jours, en reprenant les anciens code que j'ai pu retrouver ? ( Avec un minimum de deux delay dans le void setup et aucun dans le loop )

 

Le but du projet, un minimum de composant , et un code assez simpliste mais complet    

 

/* Partie Système */

- 1 Arduino 

- 1 DHT 22 

- 1 Modules RTC ds3231

- 3 Bouttons poussoir  (Cro, FLo, Reset)

- 2 Résistances

-  1 écran LCD 20x4

 

/* Partie Electrique & Boitier */

- 1 relais optocoupleur 4 voies

- 1 Relais SSR  

- 5 Prises Femelles 230v

-  1 Prise Mâle avec son câble de x mètres (Alimentation 230v du boitier)

- Sucres ou Wagon 

- 1 Boitier 

- Boutton ON, OFF 230v 

- Alimentation 230v 5v  ( LED Alimentation 50W 5V 10A ; MeanWell, RS-50-5 )

 

/* OPTIONNEL */

- 1 Arduino Wifi

- 1 Shield Uno Rtc + SD  ou Module SD

- 1 Bluetooth

- un Disjoncteur 10a

(  n'est pas indispensable pour le moment  )

 

/* Indispensable */

-  Du câbles 230, des Wires 5v

- Fer a souder,  étain 

- 1 Cerveau & du temps ?

 

Des petits screens ? 

 

Screen 1  , Screen 2  , Screen 3

 

Cool ou Pas ? ? Les parties BLTH, WIFI, SD ne sont pas encore coddés mais le reste est fonctionnel (Je n'ai pas pu faire des testes sur de grandes périodes du fait le version: ALPHA)

 

La partie logique (BACK-END des prises Lampe, Extra, Brasseur, Hydro, Chauffage ) est fonctionnel sur courte durée de testes.

 

J'attend les Arduinoteurs et Testeurs-Fous pour touts retours  & bugs  .. Thank's a Lot Guys ! 

 

( Une photo avec le câblages Arduino est a venir sous peu .. mais un peu de jujote et c'est pas très différent du premier..  Je ferais en plus la Maj sur le post principal de ce thread )
 

 

 Le .ino est dans un .RAR renommé en .PDF  faites la marche inverse pour le récupérer  => renommer .pdf  en .rar

 

 Have FUN ! @OMGPROD

OMGPROD-GROWCODE_ALPHA_.pdf

Lien à poster
Partager sur d’autres sites

yop

 

J'ai jeté une bille vite fait et....

 

Ton programme va planter au bout d'une 50 aines de jours.

la fonction millis() est à bannir pour des programmes à cycles longs

Utilises unixtime du RTC

 

Tu n'utilises pas d'hystérésis sur ta t° et ton Hr.

de fait les relais seront sollicités de manières répétitives pour rien

 

Les données sont en dur dans le code... pas glop, à la moindre modification, il faut recharger le programme

 

voila en gros ce que j'ai vu rapidement, en espérant que cela puisse t'aider

 

++

GEN

Modifié par Gen
Lien à poster
Partager sur d’autres sites

Salut @Gen !! 

Toujours dans la Zone ! sa fait plaisir ! ;) 

 

Je te remercie c'est exactement le genre de retour que je voulais, n'ayant fait que du web depuis quelques mois j'ai pas mal de trucs qui sont passés a la trappe ! :D 

Je crois on avait eu un bout de conversation sur ce sujet ? je vais profiter pour retourner jeter un coup d'oeil a la classe cyclic ou daily ou juste convertir a ma sauce le unixtime..

Je vais m'y coller and we will see !

 

 

 

 

 

Lien à poster
Partager sur d’autres sites

re:

 

Pioche dans le programme GrowDuino V3, tu y trouveras toute l'inspiration dont tu as besoin, ainsi que des classes qui te faciliteront la tâche

 

Bonne prog

 

++

GEN

Lien à poster
Partager sur d’autres sites

re:

 

Quelques conseils en programmation.

 

Dans ton code tu utilises un entier (int) pour déclarer la valeur d'état : int brasseurState           = 0;

Cette variable n'aura que 2 valeurs possibles (0 ou 1), alors pourquoi ne pas utiliser un booléen ?

booléen = 0 ou 1 / faux ou vrai Ce qui donne en déclaration : bool brasseurState = false;

tu y gagneras en mémoire et tu peux utiliser directement cette valeur booléenne pour te faciliter la vie et réduire ton code

 

Exemple

Ton code

if ( TimerBrass <= 10 ) {
    digitalWrite(brasseur, HIGH);
    brasseurState = 1;
  } else if ( TimerBrass > 10 ) {
    digitalWrite(brasseur, LOW);
    brasseurState = 0;
  } else if (TimerBrass == 30) {
    TimerBrass = 0;
  }

 

devient :

brasseurState = (TimerBrass <= 10);

digitalWrite(brasseur, brasseurState);  => le 2eme paramètre est un booléen HIGH = true  et LOW = false

 

Car le process dans ton code, ne passera JAMAIS par else if (TimerBrass == 30)  car timerBrass aura déjà répondu au moins à une des deux premières conditions

Si tu veux qu'il passe dedans il faut une autre condition extérieure

 

brasseurState = (TimerBrass <= 10);

digitalWrite(brasseur, brasseurState);

If(TimerBrass == 30){TimerBrass = 0;}

 

Et avec un petit peu de machiavélisme on pourrait même écrire mais alors tu n'as plus l'indicateur de fonctionnement brasseurState et pour connaître son état tu devras faire un digitalRead();

 

digitalWrite(brasseur, TimerBrass <= 10);

If(TimerBrass == 30){TimerBrass = 0;}

 

C'est la théorie, car comme dit plus haut, sans hystérésis, ton relais fonctionnera de manière intempestive pour rien

Faire également attention à ton utilisation de timerBrass  car de ce que j'en comprend, il fonctionne en deçà de 10 se coupe au dessus de 10, mais quand cela monte à 30 il se remet à fonctionner car TimerBrass repasse à 0 donc est de nouveau en deça de 10

 

N-joy Man et n'hésites pas si tu as un souci

 

++

GEN

 

Modifié par Gen
  • Thanks 1
Lien à poster
Partager sur d’autres sites
Il y a 9 heures, Gen a dit :

re:

 

Quelques conseils en programmation.

 

Dans ton code tu utilises un entier (int) pour déclarer la valeur d'état : int brasseurState           = 0;

Cette variable n'aura que 2 valeurs possibles (0 ou 1), alors pourquoi ne pas utiliser un booléen ?

booléen = 0 ou 1 / faux ou vrai Ce qui donne en déclaration : bool brasseurState = false;

tu y gagneras en mémoire et tu peux utiliser directement cette valeur booléenne pour te faciliter la vie et réduire ton code

 

Exemple

Ton code

if ( TimerBrass <= 10 ) {
    digitalWrite(brasseur, HIGH);
    brasseurState = 1;
  } else if ( TimerBrass > 10 ) {
    digitalWrite(brasseur, LOW);
    brasseurState = 0;
  } else if (TimerBrass == 30) {
    TimerBrass = 0;
  }

 

devient :

brasseurState = (TimerBrass <= 10);

digitalWrite(brasseur, brasseurState);  => le 2eme paramètre est un booléen HIGH = true  et LOW = false

 

Car le process dans ton code, ne passera JAMAIS par else if (TimerBrass == 30)  car timerBrass aura déjà répondu au moins à une des deux premières conditions

Si tu veux qu'il passe dedans il faut une autre condition extérieure

 

brasseurState = (TimerBrass <= 10);

digitalWrite(brasseur, brasseurState);

If(TimerBrass == 30){TimerBrass = 0;}

 

Et avec un petit peu de machiavélisme on pourrait même écrire mais alors tu n'as plus l'indicateur de fonctionnement brasseurState et pour connaître son état tu devras faire un digitalRead();

 

digitalWrite(brasseur, TimerBrass <= 10);

If(TimerBrass == 30){TimerBrass = 0;}

 

C'est la théorie, car comme dit plus haut, sans hystérésis, ton relais fonctionnera de manière intempestive pour rien

Faire également attention à ton utilisation de timerBrass  car de ce que j'en comprend, il fonctionne en deçà de 10 se coupe au dessus de 10, mais quand cela monte à 30 il se remet à fonctionner car TimerBrass repasse à 0 donc est de nouveau en deça de 10

 

N-joy Man et n'hésites pas si tu as un souci

 

++

GEN

 

 

Salut @Gen ! 

Que dire .... bah encore un gros merci, je prend les conseils et je vais les mettre en application ! ;) 

 

Vraiment comme dit plus haut j'ai recommencé ce petit bout de code dans la semaine donc rien n'est opti du tout, et revenir sur du Arduino, après des mois de PHP et de JS qu'elle tannée :D  ( déclarer toutes les variables et leurs types, de se battre avec les libs ) .. bon,  mine de rien ça m'avait manqué ;)

 

Je me suis lancé sur beaucoup trop de boucles pour faire au plus simple sur le moment,  je vais bosser sur l'optimisation du code ! 

 

Encore merci Gen ;) 

 

PS: Partant sur les bons conseils .. en tant que Dev Web, WordPress est a bannir ( <= un peu comme millis() pour un timer ) :D Mouahahahaha 

Lien à poster
Partager sur d’autres sites