GROWDUINO [Zone de partage]


Recommended Posts

  • 4 weeks later...

Salut.

 

Voici un exemple de montage Mini-GrowDuino réalisé par mes soins.

C'est la version de base sans pH et EC

 

Vue complète

 

399381681.jpg

 

Détails de l'affichage

274474892.jpg

 

Vue du câblage intérieur

589394703.jpg

 

Le boîtier déporté contenant les capteurs T°, humidité, CO2 et son voyant de fonctionnement

809410694.jpg

 

Vue latérale

240510815.jpg

 

Vue du dessus

979086316.jpg

 

 

Spécifications :

 

Boîtier étanche IP65

Prises étanches IP65

Relais SSR pour la lampe

Relais SSR pour la commande de l'auto-transformateur

Capteurs déportés 5m

Indicateur de consommation

 

Voila de quoi vous donner des idées de montage

 

Bon bricolage

++

GEN

Edited by Gen
  • Like 5
  • Thanks 1
Link to post
Share on other sites

Salut,

 

Très belle réalisation!

Clairement cette taille de boitier est mieux pour pouvoir faire le miniGrowduino. (Le mien étant devenu presque trop juste pour les transfo alors que j'avais initialement prévu des cartes de contrôle des ventilateurs)

 

Suite à une demande en MP je vais partager mon code.

C'est une version basée sur la version 1.34 de GEN

Les modifs sont les suivantes:

- possibilité de changer l'heure et la date

- un mode séchage en plus du mode cro et flo qui pilote l'intra et l'extra en fonction du taux d'humidité et non de la température et coupe la lampe 1. (le réglage du taux d'humidité voulu se fait avec le menu humidité, en mode croissance de jour)

- possibilité de changer l'hystérésis pour la température et l'humidité.

- réglage de vitesse min/max et Delta pour les intra et extra.

- réglage du temps de réponse avant un changement de vitesse des intra et extra.

- un mode de protection de la lampe 1 (20min) lors d'une coupure de courant indiqué par # à côté du ON de la lampe et débrayable à l'appui de la touche #.

 

J'ai fait un ajout dans la librairie Daily Timer afin de faire fonctionner le mode de protection des lampes.

 

Attention dans le code l'ordre de mapping des touches du clavier sont différentes de celles de Gen et j'utilise un écran LCD dont l'adresse n'est pas conventionnelle 0x3F au lieu de 0x27

 

Soyez indulgent avec ma programmation je ne suis pas un expert. Njoy!

 

 

++

Viker

MiniGrowduinoV1_34modViker.zip

Edited by Viker
  • Like 1
Link to post
Share on other sites

yop.

 

J'ai regardé ton code.. n'utilises pas la commande millis() c'est à proscrire car il arrive toujours un moment où elle sera en overflow. cette commande est à utiliser sur des programmes à cycles courts

utilises plutôt la commande unixtime()

 

++

GEN

Edited by Gen
Link to post
Share on other sites

yop.

 

J'ai regardé ton code.. n'utilises pas la commande millis() c'est à proscrire car il arrive toujours un moment où elle sera en overfload. cette commande est à utiliser sur des programmes à cycles cours

utilises plutôt la commande unixtime()

 

++

GEN

 

Salut GEN,

 

tu as raison, je modifierai à l'occasion. Mais bon comme ça gère que l'extinction de l'écran ce n'est pas dramatique.

 

 

Super projet !

Mais pourquoi des ToR (Hystéresis) sur les T° Up ou Down ?

Un PID serait bien moins chaotique non ?

 

Salut John.Do,

 

Je n'ai fait qu'ajouté la possibilité de changer la valeur de l'hystérésis pour la température et l'humidité ;)

 

Mais par contre le choix de Gen d'utiliser l'hystérésis et non un pid (gen tu me corriges si je me trompe ;) ) permet de ne pas déclencher et d'éteindre le chauffage ou la clim dès le franchissement de la valeur sélectionné ce qui donnerait comme résultat une succession d'allumage et d'extinction des appareils façon clignotant. Ici se sont des valeurs limites qui sont utilisées et non une valeur moyenne. Un pid est fait pour gérer une valeur moyenne.

 

Exemple: j'ai réglé mes valeurs limites à 20°C et 24°C à 24,1°C la clim s'enclenche et ne s'éteint pas à 23,9°C mais à la valeur 23° si mon hystérésis est de 1°C. Idem pour le chauffage en dessous de 20°C et jusqu'à une valeur de 21°C.

 

Par contre un pid serait parfait pour gérer une valeur moyenne. Par exemple je veux un air à 18°C arrivant en intraction issu d'un mix d'air intérieur chaud et extérieur froid dont le mélange se fait par un clapet.

 

J'espère avoir répondu à ta question.

 

++ Viker

  • Like 1
Link to post
Share on other sites

Salut GEN,

 

tu as raison, je modifierai à l'occasion. Mais bon comme ça gère que l'extinction de l'écran ce n'est pas dramatique.

 

 

 

Salut John.Do,

 

Je n'ai fait qu'ajouté la possibilité de changer la valeur de l'hystérésis pour la température et l'humidité ;)

 

Mais par contre le choix de Gen d'utiliser l'hystérésis et non un pid (gen tu me corriges si je me trompe ;) ) permet de ne pas déclencher et d'éteindre le chauffage ou la clim dès le franchissement de la valeur sélectionné ce qui donnerait comme résultat une succession d'allumage et d'extinction des appareils façon clignotant. Ici se sont des valeurs limites qui sont utilisées et non une valeur moyenne. Un pid est fait pour gérer une valeur moyenne.

 

Exemple: j'ai réglé mes valeurs limites à 20°C et 24°C à 24,1°C la clim s'enclenche et ne s'éteint pas à 23,9°C mais à la valeur 23° si mon hystérésis est de 1°C. Idem pour le chauffage en dessous de 20°C et jusqu'à une valeur de 21°C.

 

Par contre un pid serait parfait pour gérer une valeur moyenne. Par exemple je veux un air à 18°C arrivant en intraction issu d'un mix d'air intérieur chaud et extérieur froid dont le mélange se fait par un clapet.

 

J'espère avoir répondu à ta question.

 

++ Viker

 

Et bien justement, le ToR fait du on/off sur la plage -2+2 ou -1+1 alors qu'un PID va lisser échantillonnage et par setpoint corriger les erreurs. C'est bien plus précis d'utiliser le PID pour éviter les on/off par gestion de consignes. Les métriques pH et EC avec compensation thermique (RTD) peuvent très bien piloter des pompes péristaltiques. Pour le pH c'est plus chiant car c'est buffer + et buffer - qu'il faut gérer.

 

 

 

 

post-869733-0-88078000-1503654960_thumb.png

Edited by John.Do
Link to post
Share on other sites

Salut

 

Et bien justement, le ToR fait du on/off sur la plage -2+2 ou -1+1

 

 

Faux

 

Suffit d'aller y jeter un coup d'oeil à la classe pour y comprendre le fonctionnement qui n'est certainement pas chaotique. De plus c'est expliqué dans la vidéo

 

Temp Up, Temp Down, HR Up, et HR Down sont gérés par elle

Pour les moteurs, le taf se fait par le temps d'interrogation .

 

Tu as envies d'utiliser un PID, pani prob le code est libre tu peux y modifier ce que tu veux.

Mais tu n'y gagneras strictement rien

 

[edit]

PS : Ton explication est correcte Viker

 

++

GEN

Edited by Gen
Link to post
Share on other sites

Salut @Gen

 

 

 

Faux

 

Réponse un peu rugueuse ne laissant pas de discussion possible.  :shock:

Sans vouloir mettre le bazar, c'est la première fois que j'entends dire qu'un PID est moins intéressant que l’hystérèse pour de la gestion de consignes thermique (et autre d'ailleurs). 

Pas grave  ;-)  ! En effet, je ne vais pas forker ce projet car je pars dans une toute autre architecture pas forcement plus robuste, mais plus simple en termes d'interopérabilités et de scalabilité.

 

 

EDIT :

 

Après gérer une clim ou chauffage par On/Off est peut-être pas la meilleure des solutions.

C'est même un peu bourrin non ?

 

Fil pilote, Gradation, carte Modbus / rs232 / rs485 / IP / Vanne thermostatique / 0-10V ...

 

Donc effectivement, l’hystérésis est obligatoire sans interface promotionnelle pas de notions de consigne vraie. 

Edited by John.Do
Link to post
Share on other sites

Re..

 

Tu affirmes qlq chose et sous entends un mode de fonctionnement que je cite : "chaotique", j'ai répondu faux, je ne vois pas où est le souci car il faut lire.. J'ai dit : Suffit d'aller y jeter un coup d'oeil à la classe pour y comprendre le fonctionnement

tu y trouveras les valeurs -1,0,+1 déterminent les pentes de travail qui commanderont les mises sous tension ou non des I/O.

 

Bonne continuation dans ton projet

 

++

GEN

Edited by Gen
Link to post
Share on other sites

Re...

Faut manger des carottes un peu Gen :lol: , car de prime abord cela donne pas envie !

Oui mon projet avance, ce n'est certes pas des tonnes de posts sur le forum ...

Mais je m'éclate : https://www.cannaweed.com/topic/211635-projet-de-contr%C3%B4leur-hydrobio-ponique-sur-raspberry-pi

 

@+

John

PS Edit : Cela arrive à tous le monde de pas lire 100% des posts à rallonge.

Edited by John.Do
Link to post
Share on other sites

Sinon petit retour sur les relais ssr chinois que j'ai utilisé afin de me passer de relais mécaniques en pensant que c'était bien mieux.

 

Au final ils sont fragiles. Sur une rampe de 8 j'ai d'abord eue les petit fusible vert qui ont claqués par ci par là.

Du coup, je les ai remplacés par des fusibles réarmable de 2A.

Ensuite sur cette même rampe j'ai eu deux ssr qui ont claqués et que j'ai du remplacer.

 

Bref il ne sont pas cher et pas très fiable.

 

Du coup, préférez le bon vieux relais à bobine ou des ssr de meilleur qualité.

 

Sinon question sur un moteur dc on utilise une diode roue libre, quel est l'équivalent pour un moteur ac?

 

++ Viker

Link to post
Share on other sites

heu???... poses toi cette question : à quoi sert la diode roue libre et tu auras la réponse

je te laisse réfléchir, j'y répondrai par la suite

 

++
GEN

Link to post
Share on other sites

Salut tout le monde

 

Message pour Gen:

 

Comme annoncé en mp, impossible d'envoyer le fichier en mp du oups je le mets ici.

 

miniGrowDuinoV1_35.zip

 

Pour les autres je vous conseil de ne pas encore prendre ce code ( erreur, d'où l'envoi à Genève, d'ailleurs merci beaucoup de ton aide), lorsque j'aurais terminer la programmation et les testé je posterais ici avec un code complet et opérationnel avec explication et photos des modifications.

 

PS: Gen en relisant le message de Viker, j'ai vu qu'il allait falloir aussi que je modifie les touches du clavier (enfin il me semble). Ainsi que l'extinction de l'écran

Edited by Roucass
Link to post
Share on other sites

Salut.

 

T'es gentil mais le code que tu m'as envoyé est le fichier original.. comment veux-tu que je corrige tes erreurs ????

J'ai besoin du fichier .ino que tu as modifié et qui plante

 

PS: Gen en relisant le message de Viker, j'ai vu qu'il allait falloir aussi que je modifie les touches du clavier (enfin il me semble). Ainsi que l'extinction de l'écran

 

 

Ce sont des options sue Viker a développées par la suite . Je crois qu'il t'a filé le code source, regarde les modifs qu'il a faites et insères les dans ton code.. une fois que j'aurai corrigé ta version bien entendu ;-)

 

tu vois, l'arduino c'est comme le sexe, bonne préparation donne toujours satisfaction !

 

++

GEN

Link to post
Share on other sites

Je mettais tromper de ligne quand j'ai compresser les fichier, voilà le mien et normalement y a toute les classe .

Si il manque des classe n'hésite pas je les est sur le tel car j'ai pas de logiciel pour pouvoir les modifier ( toi tu fais comment sur l'ordinateur )

minigrowduino.zip

Link to post
Share on other sites

heu???... poses toi cette question : à quoi sert la diode roue libre et tu auras la réponse

je te laisse réfléchir, j'y répondrai par la suite

 

++

GEN

 

Salut Gen,

 

bon une diode roue libre permet d'éviter un retour de courant dans le circuit lors de l'extinction d'un moteur qui se transforme momentanément en alternateur. La diode shunt le moteur.

 

du coup en ac comment ça se passe? il faut un condensateur non polarisé?

 

++ Viker

Link to post
Share on other sites

Viker... un relais est un interrupteur commandé à distance.

 

au cul du moteur AC tu ne mets rien, par contre à la commande du relais (coté DC) tu mets toujours une diode.

 

si il y a un condensateur sur le circuit, il ne sert que pour le déparasitage ;-)

 

++

GEN

Link to post
Share on other sites
Guest
This topic is now closed to further replies.