Hydroponie : Différence entre versions

De Wiki d'activités IMA
(Semaine 11)
 
(6 révisions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
 +
<include nopre noesc src="/home/pedago/pimasc/include/video-HydroponieAutonome-iframe.html" />
 +
__TOC__
 +
<br style="clear: both;"/>
 
==Cahier des charges==
 
==Cahier des charges==
 
===Contexte===
 
===Contexte===
Ligne 141 : Ligne 144 :
  
 
<ul>
 
<ul>
<li></li>
+
<li>Pas de réception des LEDs souhaitées et pas d'autres LEDs disponibles à l'école. Il a fallu utiliser des CMS directement sur une plaque cuivrée et créer des pistes permettant d'alimenter chaque anode. Malheureusement, on n'est plus dans la même gamme de puissance qui était prévu à une centaine de Watts par LEDs et qui ici est plutôt de l'ordre du mW</li>
 +
 
 +
<li>Afin de contrôler ces LEDs, on établit un montage de contrôle de la couleur des LEDs via des résistances variables, leurs valeurs sont lues sur l'Arduino et sont converties en signal à fournir en sortie vers les LEDs.
 +
 
 +
 
 +
Voici le montage réalisé avec une unique LED :
 +
 
 +
[[Fichier:Fritzing2.PNG|300px|thumb|center|Contrôle d'une LED avec potentiomètre]]</li>
 
</ul>
 
</ul>
  
Ligne 147 : Ligne 157 :
  
 
<ul>
 
<ul>
<li></li>
+
<li>Gestion de la pompe. On essaye de reproduire une alimentation en eau de type goutte à goutte en alimentant un moteur à courant continu 9V (symbolisant la pompe car elle n'a pas pu être commandée). On contrôle ce moteur de la même façon que les ventilateurs. C'est à dire qu'un transistor PNP vient soit laisser passer le courant pour piloter le moteur soit il est bloqué. A l'utilisateur ensuite de choisir les délais nécessaires à la réalisation du débit souhaité.</li>
 +
 
 +
<li>Problème, le transistor souhaité n'étant plus disponible, il a été nécessaire d'effectuer un montage Darlington afin d'obtenir le blocage nécessaire. En effet, le transistor disponible n'était pas assez bloquant et le moteur était mal piloté. Le montage Darlington consiste à créer un transistor à l'aide de deux autres : on vient placer l'émetteur du premier sur la base du second afin d'obtenir un gain global plus important.</li>
 
</ul>
 
</ul>
  
Ligne 153 : Ligne 165 :
  
 
<ul>
 
<ul>
<li></li>
+
<li>Assemblage de tous les programmes Arduino et tests de tous les composants fonctionnant ensemble</li>
 +
 
 +
<li>Problème lors de la sortie de la maquette de certains composants. Les raccords entre l'Arduino et les composants ont dû être augmentés puisqu'il faut désormais les placer au sein du caisson. Le ruban de LEDs semble ainsi faire de faux contacts suite à cette nouvelle soudure. Le DHT11 semble aussi être endommagé mais les informations parviennent toujours sur le port série.</li>
 
</ul>
 
</ul>
  
Ligne 159 : Ligne 173 :
  
 
<ul>
 
<ul>
<li>Création d'un système permettant la détection d'un niveau haut et bas du réservoir. La première idée était d'utiliser des capteurs de niveau, puis un capteur de pression mais pas très avantageux du fait de l'implémentation de la bibliothèque Arduino. La solution adoptée est finalement un potentiomètre de grande impédance relié à un flotteur. Le fait qu'il soit de forte impédance (ici 2MOhms) réduit au maximum la perte de chaleur. On n'a donc qu'un potentiomètre dont on peut définir une position haute ainsi qu'un position basse de niveau d'eau en fonction de l'angle effectué par le potentiomètre. Pour le régler, je décide d'envoyer un message sur le port série de l'Arduino afin de relever les valeurs lues.
+
<li>Création d'un système permettant la détection d'un niveau haut et bas du réservoir. La première idée était d'utiliser des capteurs de niveau, puis un capteur de pression mais pas très avantageux du fait de l'implémentation de la bibliothèque Arduino. La solution adoptée est finalement un potentiomètre de grande impédance relié à un flotteur. Le fait qu'il soit de forte impédance (ici 2MOhms) réduit au maximum la perte de chaleur. On n'a donc qu'un potentiomètre dont on peut définir une position haute ainsi qu'un position basse de niveau d'eau en fonction de l'angle effectué par le potentiomètre. D'autre part, on pilote un buzzer lorsque ces seuils sont atteints. Pour le régler, je décide d'envoyer un message sur le port série de l'Arduino afin de relever les valeurs lues.
  
 
[[Fichier:Potar.jpg|300px|thumb|center|Potentiomètre avec flotteur]]</li>
 
[[Fichier:Potar.jpg|300px|thumb|center|Potentiomètre avec flotteur]]</li>
Ligne 174 : Ligne 188 :
 
Rapport de projet : [[Fichier:Rapport de projet IMA 4_Wegrzyn Nicolas.pdf]]  
 
Rapport de projet : [[Fichier:Rapport de projet IMA 4_Wegrzyn Nicolas.pdf]]  
  
Code Arduino : [https://drive.google.com/drive/folders/0BzPnFSB0CWFeMS1QYkNtUXFnd00]
+
Code Arduino : [[Fichier:Hydroponie_vfinale.zip]]

Version actuelle datée du 14 juin 2016 à 08:50


Vidéo HD


Cahier des charges

Contexte

L'hydroponie est une technique d'agriculture qui consiste à cultiver des végétaux hors de la terre. Cette technique présente de nombreux avantages, à savoir une moindre consommation d'eau, une croissance contrôlée et rapide, une réduction des attaques de nuisibles (insectes, maladies) mais surtout une automatisation de la culture.

Présentation générale du projet

L'objectif de ce projet est de réaliser une petite serre hydroponique autonome en énergie. Elle devra être alimentée par énergie solaire afin d'être plus écologique et économique. Le système devra également réguler l'alimentation en eau ou en substrat de la culture ainsi que l'éclairage. On étudiera également quels facteurs peuvent influencer la vitesse de pousse.

Objectif du projet

Pour être pleinement efficace, le système doit être entièrement automatisé. Cela implique une forte consommation en électricité. Pour réaliser des économies, on propose d'utiliser un panneau photovoltaïque pour convertir l'énergie solaire en électricité. Afin de récupérer le maximum de puissance en sortie, on pourra insérer un 'Maximum Power Point Tracker' (MPPT) bien que la plupart soient déjà compris avec certains panneaux. On pourra également envisager de placer une batterie au cas où le temps serait défavorable et que les panneaux perdraient en efficacité. Il faudra veiller à l'alimentation des plantes avec un système de moteur + pompe + système d'irrigation. Enfin, on gérera l'éclairage par des LEDs. D'autre part, on pourra également travailler sous un caisson de culture, permettant ainsi un contrôle de la qualité de l'air via des tests de la température de de l'humidité. L'objectif final devra être de régler ces paramètres avec un Arduino pour qu'ils soient le plus adapté possible à notre culture.

Choix techniques : matériel et logiciel

    Matériel :
  • Des billes d'argile, un pot panier, un bac réservoir, un système goutte à goutte, un plant de fraise
  • Un caisson en contreplaqué (réalisé au Fabricarium)
  • Un capteur d'humidité et de température DHT11
  • Deux ventilateurs
  • Un potentiomètre avec flotteur(tige + bouchon)
  • Une résistance chauffante 25W
  • Des LEDs RGB (de préférence en ruban)
  • Une pompe à eau
  • Une batterie 12V (pour la pompe, l'Arduino, et les deux ventilateurs)
  • Une batterie 24V (pour la résistance chauffante)
  • Un MPPT
  • Un Arduino Uno
  • Un panneau solaire
  • Divers transistors PNP, diodes et résistances
  • Trois résistances variables 1K
  • Logiciels :

    IDE Arduino 1.0.3 (pour la programmation)

    Fritzing (pour les schémas avec Arduino)

    Altium Designer (pour la création des cartes)

Schéma de principe

Voici un schéma réalisé afin de déterminer les éléments nécessaires à la réalisation.

Schéma de principe

Avancement du projet

Semaine 1

  • Définition du cahier des charges : premiers rendez-vous avec Mr Boé afin de définir les objectifs principaux à réaliser et le moyens techniques à mettre en œuvre. A noter que la partie autonomie du système est secondaire, il est nécessaire de se pencher dans un premier temps sur les objectifs premiers d'un système hydroponique classique à savoir :
    • La gestion de l'air ambiant
    • Le contrôle de l'éclairage de la plante
    • L'alimentation en eau ou substrat de la plante

Semaine 2

  • Après avoir défini les différents rôles que devrait réaliser mon projet, il est était nécessaire de choisir les moyens techniques à mettre en place mais aussi de tenter de les dimensionner. Dans chaque besoin, j'ai défini un sous-système à mettre en place pour répondre aux besoins. Il a fallu également penser au dimensionnement des pièces par rapport à ce qu'il est possible de réaliser sous imprimante 3D par exemple.

Semaine 3

  • Familiarisation avec des logiciels de CAO :
    • Solidworks : pour lequel je vais réaliser mon pot étant donné la taille de celui-ci ainsi que mon bac conteneur
    • Altium : il nous a été demandé de réaliser une bibliothèque avec les composants électroniques commandés ou dont nous avions besoin afin d'alimenter la base de donnée du logiciel présent à l'école. Pour le moment j'ai commencé par mon capteur de température. (A modifier car le capteur a été remplacé par le DHT11)
    • (A faire : logiciel pour la découpeuse laser ; peut-être utile pour la réalisation du caisson)

Semaine 4

  • Je me suis concentré dans un premier temps sur la récupération de la température et de l'humidité au sein du caisson. Nous avons décidé d'utiliser un capteur de température et d'humidité (DHT11) disponible à l'école plutôt que d'en commander deux différents. Il a fallut effectuer une étude préalable de l'utilisation de ce composant via la datasheet. Ce capteur possède 4 pins (1 VCC, 2 données, 1masse) et renvoie un bus de données dont 8 bits concernent les informations désirées.
  • Première étude préalable afin de vérifier la récupération des données fournies par le capteur. Les résultats sont concluants, on obtient une température et un pourcentage d'humidité cohérents.
    Montage
    Résultats

Semaine 5

  • Après avoir réussi à récupérer les informations de mon DHT11, il fallait ensuite pouvoir contrôler le ventilateur qui évacuerait l'humidité ou qui refroidirait le caisson. J'ai donc démonté un ventilateur de PC 12V et cherché un schéma de câblage. On utilise une résistance pour adapter l'Arduino au montage, un transistor ainsi qu'une diode de roue libre. J'utilise également une alimentation continue 12V puisque je ne possède pas encore la batterie rechargeable.
  • Le programme Arduino récupère les informations fournies par le capteur sur le pin 2. On définit un seuil de température ainsi qu'un seuil pour l'humidité. Ensuite le programme va lire deux variables flottantes (une pour la température et l'autre pour l'humidité) et va les comparer aux seuils déclarés. Si un de ceux-ci est dépassé, on passe le pin 4 (relié au montage du ventilateur) à l'état haut pour faire tourner le ventilateur. de plus on renvoie toujours l'état actuel des variables sur le port série. Voici le montage réalisé :
    Montage2
  • Les résultats se sont avérés concluants puisque le ventilateur s'est activé lors du chauffage du capteur ou d'une augmentation de l'humidité ambiante.

Semaine 6

  • Entretien avec MR Flamen à propos de la régulation de température au sein du caisson hydroponique.En effet, je souhaitais exposer ma solution première qui était de tenter de gérer une vitesse de rotation du ventilateur en utilisant les sorties analogiques de l'Arduino afin de contrôler la vitesse. La première solution retenue était de réaliser une unique fonction qui activerait le ventilateur en cas de dépassement d'un seuil de température ou d'humidité avec un seul ventilateur. Suite à cette conversation, j'ai décidé d'insérer dans mon projet un second ventilateur qui refroidirait le système, sur le même principe de convection qu'un radiateur domestique classique.
  • Réalisation : Il s'agirait de fixer une résistance de puissance d'environ 10 Ohms sur un dissipateur puis de disposer le ventilateur dessus en le vissant et en plaçant des entretoises pour éviter une vibration des ailettes. Entre ces deux éléments on vient déposer une pâte chauffante nécessaire à la bonne conduction. Cet ensemble serait ensuite placé en bas ou en haut du caisson, perpendiculairement au sol afin de réaliser une convection circulaire dans le système.

Semaine 7

  • Premier test de la résistance de puissance après étude de la datasheet. Cette résistance peut supporter plusieurs dizaines de Watts, suffisamment pour chauffer notre système. Afin de chauffer correctement, on lui applique une vingtaine de Volts et 3 Ampères. La résistance met ainsi peu de temps et permet d'entretenir une chaleur correcte.
  • Suite à cette nouvelle solution technique, il fallait gérer un deuxième ventilateur et non plus un seul. J'ai réalisé le même montage que le précédent puisque le ventilateur adopte les mêmes caractéristiques que le premier. A cette étape nous avons donc un pin de l'Arduino qui gère le ventilateur d'humidité, et l'autre pin celui de la température. Voici le montage obtenu :
    Montage des deux ventilateurs

Semaine 8

  • Pas de réception des LEDs souhaitées et pas d'autres LEDs disponibles à l'école. Il a fallu utiliser des CMS directement sur une plaque cuivrée et créer des pistes permettant d'alimenter chaque anode. Malheureusement, on n'est plus dans la même gamme de puissance qui était prévu à une centaine de Watts par LEDs et qui ici est plutôt de l'ordre du mW
  • Afin de contrôler ces LEDs, on établit un montage de contrôle de la couleur des LEDs via des résistances variables, leurs valeurs sont lues sur l'Arduino et sont converties en signal à fournir en sortie vers les LEDs. Voici le montage réalisé avec une unique LED :
    Contrôle d'une LED avec potentiomètre

Semaine 9

  • Gestion de la pompe. On essaye de reproduire une alimentation en eau de type goutte à goutte en alimentant un moteur à courant continu 9V (symbolisant la pompe car elle n'a pas pu être commandée). On contrôle ce moteur de la même façon que les ventilateurs. C'est à dire qu'un transistor PNP vient soit laisser passer le courant pour piloter le moteur soit il est bloqué. A l'utilisateur ensuite de choisir les délais nécessaires à la réalisation du débit souhaité.
  • Problème, le transistor souhaité n'étant plus disponible, il a été nécessaire d'effectuer un montage Darlington afin d'obtenir le blocage nécessaire. En effet, le transistor disponible n'était pas assez bloquant et le moteur était mal piloté. Le montage Darlington consiste à créer un transistor à l'aide de deux autres : on vient placer l'émetteur du premier sur la base du second afin d'obtenir un gain global plus important.

Semaine 10

  • Assemblage de tous les programmes Arduino et tests de tous les composants fonctionnant ensemble
  • Problème lors de la sortie de la maquette de certains composants. Les raccords entre l'Arduino et les composants ont dû être augmentés puisqu'il faut désormais les placer au sein du caisson. Le ruban de LEDs semble ainsi faire de faux contacts suite à cette nouvelle soudure. Le DHT11 semble aussi être endommagé mais les informations parviennent toujours sur le port série.

Semaine 11

  • Création d'un système permettant la détection d'un niveau haut et bas du réservoir. La première idée était d'utiliser des capteurs de niveau, puis un capteur de pression mais pas très avantageux du fait de l'implémentation de la bibliothèque Arduino. La solution adoptée est finalement un potentiomètre de grande impédance relié à un flotteur. Le fait qu'il soit de forte impédance (ici 2MOhms) réduit au maximum la perte de chaleur. On n'a donc qu'un potentiomètre dont on peut définir une position haute ainsi qu'un position basse de niveau d'eau en fonction de l'angle effectué par le potentiomètre. D'autre part, on pilote un buzzer lorsque ces seuils sont atteints. Pour le régler, je décide d'envoyer un message sur le port série de l'Arduino afin de relever les valeurs lues.
    Potentiomètre avec flotteur

Semaine 12

  • Montage final du projet. Utilisation de la découpe laser pour créer un caisson en contreplaqué ainsi qu'un support pour y placer l'Arduino.

Fichiers Rendus

Rapport de projet : Fichier:Rapport de projet IMA 4 Wegrzyn Nicolas.pdf

Code Arduino : Fichier:Hydroponie vfinale.zip