Bonjour tout le monde !
C'est avec une certaine fierté que je viens vous présenter mon premier projet Arduino sur la gestion climatique d'une serre/véranda/jardin d'intérieur etc... Je sais que ce n'est pas ce qui manque sur le forum mais comme c'est un projet utile, idéal pour apprendre et en plus bon marché ! Je ne pouvais pas passer à côté!
Le projet : il s'agit de réguler le climat d'un espace de culture via des relais commandés par l'arduino avec des consignes hautes et basses en température, hygrométrie et aussi en temps afin de pouvoir déclencher certains événements tous les "x temps". Plus concrètement gérer l'aération, la ventilation, le chauffage, la brumisation etc..
Le matériel : je dispose pour le moment:
- une carte Arduino UNO
- un capteur de température (pour l'extérieur)
- un capteur de température et d'hygrométrie DHT22 (pour l'intérieur)
- quatre relais (2 shields de deux relais)
- d'un encodeur / switch
- d'un écran LCD - 4 lignes 20 caractères
d'autres options seront ajoutées par la suite comme le stockage des données, transmission avec ou sans fil, et affichage des mesures sur un terminal mais pour l'instant je préfère me contenter du minimum, faire les essais, être sûr que ce soit fiable avant d'aller plus loin.
Les branchements : bah je n'ai pas encore fait de schéma sur l'ordi mais brièvement l'encodeur/switch et le capteur de température (extérieure) sont sur les entrées analogiques et le reste sur les I/O numériques.
Le fonctionnement : toutes les consignes se remplissent via l'écran LCD et l'encodeur/switch. Il y a un premier menu avec l'affichage des températures et l'hygrométrie, si j'appuis sur le bouton, les valeurs Min/Max des capteurs s'affichent, si je réappuie une seconde fois je reviens au menu initial.
Si je tourne l'encodeur, je parcoure quatre menus correspondants aux quatre relais avec l'affichage des consignes. Pour modifier ces dernières j'utilise le switch et l'encodeur qui au fur et à mesure des appuis va pouvoir sélectionner la consigne à modifier et avec l'encodeur spécifier une valeur. Enfin un dernier appui permet de revenir au menu initial.
Les consignes en température (et l'hygrométrie aussi) se présente sous cette forme Tmin < T < Tmax : en gros le relais se déclenche en dessous de Tmin ET/OU au dessus de Tmax. Pour la consigne de temps si on choisi de l'utiliser se présente comme ça : temps_On / temps_Off.
Je suis conscient que si j'avais pris le temps de faire des dessins, cela aurait été bien plus simple pour expliquer.. enfin surtout pour comprendre . Je le ferais si je voie qu'il y a trop de confusion dans la compréhension du fonctionnement.
Le programme : bon c'est là où je vais avoir besoin de votre aide : Si le programme fonctionne à peu près correctement (il y a quelques p'tits bug, et il manque le reset des extrêmes..), il n'est pas du tout optimisé et me paraît bordélique, en effet c'est mon premier programme et je ne sais pas trop à quoi ressemble un sketch bien codé.. Je ne maîtrise pas les tableaux et les boucles non plus... :-[ . Alors j'aimerais avoir quelques suggestions pour avoir un beau code dans les règles de l'art!! J'aimerais vraiment apprendre à coder proprement car je me suis rendu compte que je prenais beaucoup de plaisir à programmer et j'aimerais pouvoir continuer sur de bonnes bases.. Sans plus attendre voici le sketch ( attention ça va peut être piquer les yeux.. )
Heu... Bon avec le prog ça fait trop de texte.. je le mets en pièce jointe..
Merci beaucoup et à bientôt!
gestion climat.pdf (78.9 KB)