Etage jardinière : Différence entre versions

(Cette version a été marquée pour être traduite)
Ligne 2 : Ligne 2 :
 
|Main_Picture=Etage_jardinière_jardini_re.png
 
|Main_Picture=Etage_jardinière_jardini_re.png
 
|Licences=Attribution (CC BY)
 
|Licences=Attribution (CC BY)
|Description=<translate>Création d'un étage complémentaire à une station météo (dans le cadre de la formation Fabrication Numérique IMT/SQYLAB)
+
|Description=<translate><!--T:1-->
 +
Création d'un étage complémentaire à une station météo (dans le cadre de la formation Fabrication Numérique IMT/SQYLAB)
 
Equipe: Chantal, Christophe, Delphine, Eléonore, Isabelle</translate>
 
Equipe: Chantal, Christophe, Delphine, Eléonore, Isabelle</translate>
 
|Area=Decoration, Electronics, House, Robotics
 
|Area=Decoration, Electronics, House, Robotics
Ligne 17 : Ligne 18 :
 
}}
 
}}
 
{{ {{tntn|Introduction}}
 
{{ {{tntn|Introduction}}
|Introduction=<translate>Cette jardinière constitue le 4<sup>ème</sup> étage d'une station Météo, elle est composée :
+
|Introduction=<translate><!--T:2-->
 +
Cette jardinière constitue le 4<sup>ème</sup> étage d'une station Météo, elle est composée :
  
 +
<!--T:3-->
 
-         Capteur de luminosité
 
-         Capteur de luminosité
  
 +
<!--T:4-->
 
-         Allumage de lampes horticoles si la luminosité est insuffisante
 
-         Allumage de lampes horticoles si la luminosité est insuffisante
  
 +
<!--T:5-->
 
-         Capteur d’humidité
 
-         Capteur d’humidité
  
 +
<!--T:6-->
 
-         Activation d’un arrosage automatique si l’humidité est insuffisante</translate>
 
-         Activation d’un arrosage automatique si l’humidité est insuffisante</translate>
 
}}
 
}}
 
{{ {{tntn|Materials}}
 
{{ {{tntn|Materials}}
|Material=<translate>-         Arduino Uno
+
|Material=<translate><!--T:7-->
 +
-         Arduino Uno
  
 +
<!--T:8-->
 
-         Servo FS5103B
 
-         Servo FS5103B
  
 +
<!--T:9-->
 
-         Relais Grove-103020005
 
-         Relais Grove-103020005
  
 +
<!--T:10-->
 
-         Digital Light Sensor Grove
 
-         Digital Light Sensor Grove
  
 +
<!--T:11-->
 
-         2 clous
 
-         2 clous
  
 +
<!--T:12-->
 
-         LED horticole sortie  USB
 
-         LED horticole sortie  USB
  
 +
<!--T:13-->
 
-         Une petite Breadboard et plein de fils</translate>
 
-         Une petite Breadboard et plein de fils</translate>
|Tools=<translate>-         Découpeuse Laser pour :
+
|Tools=<translate><!--T:14-->
 +
-         Découpeuse Laser pour :
  
 +
<!--T:15-->
 
o  Jardinière dans laquelle on met la plante
 
o  Jardinière dans laquelle on met la plante
  
 +
<!--T:16-->
 
o  4<sup>ème</sup> étage dans lequel on place le tonneau qui contient l’eau, le servo moteur et les connections à l’Arduino
 
o  4<sup>ème</sup> étage dans lequel on place le tonneau qui contient l’eau, le servo moteur et les connections à l’Arduino
  
 +
<!--T:17-->
 
-         Imprimante 3D :
 
-         Imprimante 3D :
  
 +
<!--T:18-->
 
o  Personnage décoratif (facultatif)
 
o  Personnage décoratif (facultatif)
  
 +
<!--T:19-->
 
o  Support des clous capteurs d’humidité
 
o  Support des clous capteurs d’humidité
  
 +
<!--T:20-->
 
o  Tonneau
 
o  Tonneau
  
 +
<!--T:21-->
 
o  Bras reliant le tonneau au servo-moteur
 
o  Bras reliant le tonneau au servo-moteur
  
 +
<!--T:22-->
 
-          Programmation Arduino
 
-          Programmation Arduino
  
 +
<!--T:23-->
 
o  Récupérer la valeur de luminosité
 
o  Récupérer la valeur de luminosité
  
 +
<!--T:24-->
 
o  Allumer les lampes horticoles
 
o  Allumer les lampes horticoles
  
 +
<!--T:25-->
 
o  Récupérer la valeur d’humidité
 
o  Récupérer la valeur d’humidité
  
 +
<!--T:26-->
 
o  Activation du servo moteur pour arroser
 
o  Activation du servo moteur pour arroser
  
 +
<!--T:27-->
 
-         Insertion dans la station Météo et connexion au module Arduino</translate>
 
-         Insertion dans la station Météo et connexion au module Arduino</translate>
 
|Tuto_Attachments={{ {{tntn|Tuto Attachments}}
 
|Tuto_Attachments={{ {{tntn|Tuto Attachments}}
Ligne 76 : Ligne 103 :
 
{{ {{tntn|Separator}}}}
 
{{ {{tntn|Separator}}}}
 
{{ {{tntn|Tuto Step}}
 
{{ {{tntn|Tuto Step}}
|Step_Title=<translate>Découpe laser</translate>
+
|Step_Title=<translate><!--T:28--> Découpe laser</translate>
|Step_Content=<translate>fichiers
+
|Step_Content=<translate><!--T:29-->
 +
fichiers
  
 +
<!--T:30-->
 
-         La jardinière dans laquelle on placera la plante
 
-         La jardinière dans laquelle on placera la plante
  
 +
<!--T:31-->
 
-         Le 4<sup>ème</sup> étage, dans lequel on installera le servo-moteur</translate>
 
-         Le 4<sup>ème</sup> étage, dans lequel on installera le servo-moteur</translate>
 
|Step_Picture_00=Étage_jardinière.svg
 
|Step_Picture_00=Étage_jardinière.svg
Ligne 86 : Ligne 116 :
 
}}
 
}}
 
{{ {{tntn|Tuto Step}}
 
{{ {{tntn|Tuto Step}}
|Step_Title=<translate>Impression 3D</translate>
+
|Step_Title=<translate><!--T:32--> Impression 3D</translate>
|Step_Content=<translate>-         Bras du tonneau
+
|Step_Content=<translate><!--T:33-->
 +
-         Bras du tonneau
  
 +
<!--T:34-->
 
https://www.tinkercad.com/things/1HUIQjvirqO
 
https://www.tinkercad.com/things/1HUIQjvirqO
  
 +
<!--T:35-->
 
-         Tonneau
 
-         Tonneau
  
 +
<!--T:36-->
 
<nowiki>https://www.tinkercad.com/things/cVDAGjM8vII</nowiki>
 
<nowiki>https://www.tinkercad.com/things/cVDAGjM8vII</nowiki>
  
 +
<!--T:37-->
 
-         Nains   
 
-         Nains   
  
 +
<!--T:38-->
 
https://www.tinkercad.com/things/9H7ipvUNixY
 
https://www.tinkercad.com/things/9H7ipvUNixY
  
 +
<!--T:39-->
 
https://www.tinkercad.com/things/4lgBVLc03So
 
https://www.tinkercad.com/things/4lgBVLc03So
  
 +
<!--T:40-->
 
https://www.tinkercad.com/things/ke2VoyRgWKc
 
https://www.tinkercad.com/things/ke2VoyRgWKc
  
 +
<!--T:41-->
 
-         Support des clous (capteur d’humidité)
 
-         Support des clous (capteur d’humidité)
  
 +
<!--T:42-->
 
<nowiki>https://www.tinkercad.com/things/0ZrEwZZYIVw</nowiki></translate>
 
<nowiki>https://www.tinkercad.com/things/0ZrEwZZYIVw</nowiki></translate>
 
|Step_Picture_00=Etage_jardinière_bras.png
 
|Step_Picture_00=Etage_jardinière_bras.png
Ligne 113 : Ligne 153 :
 
}}
 
}}
 
{{ {{tntn|Tuto Step}}
 
{{ {{tntn|Tuto Step}}
|Step_Title=<translate>Programmation Arduino</translate>
+
|Step_Title=<translate><!--T:43--> Programmation Arduino</translate>
|Step_Content=<translate>1.1       Récupération valeur d’humidité
+
|Step_Content=<translate><!--T:44-->
 +
1.1       Récupération valeur d’humidité
  
 +
<!--T:45-->
 
On envoie un courant de 5V sur un des clous.
 
On envoie un courant de 5V sur un des clous.
  
 +
<!--T:46-->
 
Si la terre est humide, l’autre clou lit une valeur. Si la terre est sèche, le courant ne passe pas ou peu.
 
Si la terre est humide, l’autre clou lit une valeur. Si la terre est sèche, le courant ne passe pas ou peu.
  
 +
<!--T:47-->
 
'''void setup()'''
 
'''void setup()'''
  
 +
<!--T:48-->
 
'''{'''
 
'''{'''
  
 +
<!--T:49-->
 
'''Serial.begin(9600);'''
 
'''Serial.begin(9600);'''
  
 +
<!--T:50-->
 
'''pinMode(A1, INPUT); // test analogique humidité'''  
 
'''pinMode(A1, INPUT); // test analogique humidité'''  
  
 +
<!--T:51-->
 
'''}'''   
 
'''}'''   
  
 +
<!--T:52-->
 
'''void loop() {'''
 
'''void loop() {'''
  
 +
<!--T:53-->
 
'''                                                                                                                   '''   
 
'''                                                                                                                   '''   
  
 +
<!--T:54-->
 
'''  Serial.print("valeur humidité:");'''
 
'''  Serial.print("valeur humidité:");'''
  
 +
<!--T:55-->
 
'''  Serial.println(analogRead(A1));'''
 
'''  Serial.println(analogRead(A1));'''
  
 +
<!--T:56-->
 
'''  delay(2000);'''
 
'''  delay(2000);'''
  
 +
<!--T:57-->
 
''' '''
 
''' '''
  
 +
<!--T:58-->
 
'''   }   '''   
 
'''   }   '''   
  
 +
<!--T:59-->
 
1.2       Activation du servo
 
1.2       Activation du servo
  
 +
<!--T:60-->
 
Pour gérer la vitesse :
 
Pour gérer la vitesse :
  
 +
<!--T:61-->
 
-         Passage de 0 à 110 degrés, degré par degré avec un délai après chaque mouvement de un degré
 
-         Passage de 0 à 110 degrés, degré par degré avec un délai après chaque mouvement de un degré
  
 +
<!--T:62-->
 
-         Délai de quelques secondes en position basse pour laisser le temps à l’eau de se vider
 
-         Délai de quelques secondes en position basse pour laisser le temps à l’eau de se vider
  
 +
<!--T:63-->
 
En cas de problème d’initialisation de la position du bras, on peut initialiser pos avec une valeur différente de 0.
 
En cas de problème d’initialisation de la position du bras, on peut initialiser pos avec une valeur différente de 0.
  
 +
<!--T:64-->
 
'''#include <Servo.h>'''   
 
'''#include <Servo.h>'''   
  
 +
<!--T:65-->
 
'''Servo myservo;  // create servo object to control a servo'''
 
'''Servo myservo;  // create servo object to control a servo'''
  
 +
<!--T:66-->
 
'''               // a maximum of eight servo objects can be created'''   
 
'''               // a maximum of eight servo objects can be created'''   
  
 +
<!--T:67-->
 
'''int pos =0;    // variable to store the servo position'''   
 
'''int pos =0;    // variable to store the servo position'''   
  
 +
<!--T:68-->
 
'''void setup() '''  
 
'''void setup() '''  
  
 +
<!--T:69-->
 
'''{'''
 
'''{'''
  
 +
<!--T:70-->
 
'''  myservo.attach(7);  // attaches the servo on pin 7 to the servo object'''
 
'''  myservo.attach(7);  // attaches the servo on pin 7 to the servo object'''
  
 +
<!--T:71-->
 
'''pos =0;'''
 
'''pos =0;'''
  
 +
<!--T:72-->
 
'''}'''   
 
'''}'''   
  
 +
<!--T:73-->
 
'''void loop() {'''
 
'''void loop() {'''
  
 +
<!--T:74-->
 
'''  for(pos = 0; pos < 110; pos += 1)  // goes from 0 degrees to 110 degrees'''  
 
'''  for(pos = 0; pos < 110; pos += 1)  // goes from 0 degrees to 110 degrees'''  
  
 +
<!--T:75-->
 
'''  {                                  // in steps of 1 degree'''
 
'''  {                                  // in steps of 1 degree'''
  
 +
<!--T:76-->
 
'''<nowiki>   myservo.write(pos);              // tell servo to go to position in variable 'pos'</nowiki>'''
 
'''<nowiki>   myservo.write(pos);              // tell servo to go to position in variable 'pos'</nowiki>'''
  
 +
<!--T:77-->
 
'''   delay(50);                       // waits 50ms for the servo to reach the position'''  
 
'''   delay(50);                       // waits 50ms for the servo to reach the position'''  
  
 +
<!--T:78-->
 
'''  }'''
 
'''  }'''
  
 +
<!--T:79-->
 
'''     delay(5000);                    // laisse le temps au tonneau de se vider'''
 
'''     delay(5000);                    // laisse le temps au tonneau de se vider'''
  
 +
<!--T:80-->
 
'''     '''
 
'''     '''
  
 +
<!--T:81-->
 
'''  for(pos = 110; pos>=0   ; pos-=1)    // goes from 110 degrees to 0 degrees'''  
 
'''  for(pos = 110; pos>=0   ; pos-=1)    // goes from 110 degrees to 0 degrees'''  
  
 +
<!--T:82-->
 
'''  {                               '''
 
'''  {                               '''
  
 +
<!--T:83-->
 
'''<nowiki>   myservo.write(pos);              // tell servo to go to position in variable 'pos'</nowiki>'''
 
'''<nowiki>   myservo.write(pos);              // tell servo to go to position in variable 'pos'</nowiki>'''
  
 +
<!--T:84-->
 
'''   delay(50);                       // waits 50ms for the servo to reach the position'''  
 
'''   delay(50);                       // waits 50ms for the servo to reach the position'''  
  
 +
<!--T:85-->
 
'''  }'''  
 
'''  }'''  
  
 +
<!--T:86-->
 
'''  } '''   
 
'''  } '''   
  
 +
<!--T:87-->
 
1.3       Capteur de luminosité
 
1.3       Capteur de luminosité
  
 +
<!--T:88-->
 
'''#include <Wire.h>                   //bibliothèque'''
 
'''#include <Wire.h>                   //bibliothèque'''
  
 +
<!--T:89-->
 
'''#include <Digital_Light_TSL2561.h>  //bibliothèque'''
 
'''#include <Digital_Light_TSL2561.h>  //bibliothèque'''
  
 +
<!--T:90-->
 
'''unsigned long lux;                  //variable récupérant les données du capteur'''  
 
'''unsigned long lux;                  //variable récupérant les données du capteur'''  
  
 +
<!--T:91-->
 
'''void setup()'''
 
'''void setup()'''
  
 +
<!--T:92-->
 
'''{'''
 
'''{'''
  
 +
<!--T:93-->
 
'''  Wire.begin();                   '''  
 
'''  Wire.begin();                   '''  
  
 +
<!--T:94-->
 
'''  Serial.begin(9600);             '''
 
'''  Serial.begin(9600);             '''
  
 +
<!--T:95-->
 
'''TSL2561.init();     }'''
 
'''TSL2561.init();     }'''
  
 +
<!--T:96-->
 
'''void loop()'''
 
'''void loop()'''
  
 +
<!--T:97-->
 
'''{'''
 
'''{'''
  
 +
<!--T:98-->
 
'''  Serial.print("The Light value is: "); //moniteur série'''
 
'''  Serial.print("The Light value is: "); //moniteur série'''
  
 +
<!--T:99-->
 
'''  Serial.println(TSL2561.readVisibleLux()); //moniteur série'''
 
'''  Serial.println(TSL2561.readVisibleLux()); //moniteur série'''
  
 +
<!--T:100-->
 
'''delay(1000);                        //moniteur série'''
 
'''delay(1000);                        //moniteur série'''
  
 +
<!--T:101-->
 
'''signed long lux;'''
 
'''signed long lux;'''
  
 +
<!--T:102-->
 
'''  lux = TSL2561.readVisibleLux();     //définition de lux'''
 
'''  lux = TSL2561.readVisibleLux();     //définition de lux'''
  
 +
<!--T:103-->
 
'''Serial.println (lux);              //moniteur série pour vérifier si lux donne les même valeur que le capteur'''
 
'''Serial.println (lux);              //moniteur série pour vérifier si lux donne les même valeur que le capteur'''
  
 +
<!--T:104-->
 
'''delay(1000);                       //moniteur série'''
 
'''delay(1000);                       //moniteur série'''
  
 +
<!--T:105-->
 
  '''}'''
 
  '''}'''
  
 +
<!--T:106-->
 
1.4       Allumage de la lampe
 
1.4       Allumage de la lampe
  
 +
<!--T:107-->
 
La lampe s’allume lorsque la luminosité est insuffisante :
 
La lampe s’allume lorsque la luminosité est insuffisante :
  
 +
<!--T:108-->
 
'''if (lux<=3000)              //J'ai défini la valeur en mesurant l'intensité'''
 
'''if (lux<=3000)              //J'ai défini la valeur en mesurant l'intensité'''
  
 +
<!--T:109-->
 
'''{                          //de la lampe à sa hauteur supposée par rapport aux plantes'''
 
'''{                          //de la lampe à sa hauteur supposée par rapport aux plantes'''
  
 +
<!--T:110-->
 
'''digitalWrite(relais,HIGH);//si moins de 3000lux le relais se déclenche et la lampe s'allume'''
 
'''digitalWrite(relais,HIGH);//si moins de 3000lux le relais se déclenche et la lampe s'allume'''
  
 +
<!--T:111-->
 
'''}'''
 
'''}'''
  
 +
<!--T:112-->
 
'''else{'''
 
'''else{'''
  
 +
<!--T:113-->
 
'''digitalWrite(relais,LOW);//si trop de lumière, elle s'éteint'''
 
'''digitalWrite(relais,LOW);//si trop de lumière, elle s'éteint'''
  
 +
<!--T:114-->
 
'''}'''
 
'''}'''
  
 +
<!--T:115-->
 
'''}    '''</translate>
 
'''}    '''</translate>
 
|Step_Picture_00=Etage_jardinière_d_tecteur_humidit_.jpg
 
|Step_Picture_00=Etage_jardinière_d_tecteur_humidit_.jpg

Version du 12 mars 2019 à 12:45

Auteur avatarIsa87 | Dernière modification 9/12/2019 par Clementflipo

Etage jardinière jardini re.png
Création d'un étage complémentaire à une station météo (dans le cadre de la formation Fabrication Numérique IMT/SQYLAB) Equipe: Chantal, Christophe, Delphine, Eléonore, Isabelle
Difficulté
Moyen
Durée
50 heure(s)
Catégories
Décoration, Électronique, Maison, Robotique
Coût
50 EUR (€)
Autres langues :
français
Licence : Attribution (CC BY)

Introduction

Cette jardinière constitue le 4ème étage d'une station Météo, elle est composée :

-         Capteur de luminosité

-         Allumage de lampes horticoles si la luminosité est insuffisante

-         Capteur d’humidité

-         Activation d’un arrosage automatique si l’humidité est insuffisante

Matériaux

-         Arduino Uno

-         Servo FS5103B

-         Relais Grove-103020005

-         Digital Light Sensor Grove

-         2 clous

-         LED horticole sortie  USB

-         Une petite Breadboard et plein de fils

Outils

-         Découpeuse Laser pour :

o  Jardinière dans laquelle on met la plante

o  4ème étage dans lequel on place le tonneau qui contient l’eau, le servo moteur et les connections à l’Arduino

-         Imprimante 3D :

o  Personnage décoratif (facultatif)

o  Support des clous capteurs d’humidité

o  Tonneau

o  Bras reliant le tonneau au servo-moteur

-          Programmation Arduino

o  Récupérer la valeur de luminosité

o  Allumer les lampes horticoles

o  Récupérer la valeur d’humidité

o  Activation du servo moteur pour arroser

-         Insertion dans la station Météo et connexion au module Arduino

Étape 1 - Découpe laser

fichiers

-         La jardinière dans laquelle on placera la plante

-         Le 4ème étage, dans lequel on installera le servo-moteur



Étape 2 - Impression 3D

-         Bras du tonneau

https://www.tinkercad.com/things/1HUIQjvirqO

-         Tonneau

https://www.tinkercad.com/things/cVDAGjM8vII

-         Nains 

https://www.tinkercad.com/things/9H7ipvUNixY

https://www.tinkercad.com/things/4lgBVLc03So

https://www.tinkercad.com/things/ke2VoyRgWKc

-         Support des clous (capteur d’humidité)

https://www.tinkercad.com/things/0ZrEwZZYIVw

Étape 3 - Programmation Arduino

1.1       Récupération valeur d’humidité

On envoie un courant de 5V sur un des clous.

Si la terre est humide, l’autre clou lit une valeur. Si la terre est sèche, le courant ne passe pas ou peu.

void setup()

{

Serial.begin(9600);

pinMode(A1, INPUT); // test analogique humidité

}

void loop() {

                                                                                                                   

  Serial.print("valeur humidité:");

  Serial.println(analogRead(A1));

  delay(2000);

 

   }   

1.2       Activation du servo

Pour gérer la vitesse :

-         Passage de 0 à 110 degrés, degré par degré avec un délai après chaque mouvement de un degré

-         Délai de quelques secondes en position basse pour laisser le temps à l’eau de se vider

En cas de problème d’initialisation de la position du bras, on peut initialiser pos avec une valeur différente de 0.

#include <Servo.h>

Servo myservo;  // create servo object to control a servo

               // a maximum of eight servo objects can be created

int pos =0;    // variable to store the servo position

void setup() 

{

  myservo.attach(7);  // attaches the servo on pin 7 to the servo object

pos =0;

}

void loop() {

  for(pos = 0; pos < 110; pos += 1)  // goes from 0 degrees to 110 degrees

  {                                  // in steps of 1 degree

   myservo.write(pos);              // tell servo to go to position in variable 'pos'

   delay(50);                       // waits 50ms for the servo to reach the position

  }

     delay(5000);                    // laisse le temps au tonneau de se vider

     

  for(pos = 110; pos>=0   ; pos-=1)    // goes from 110 degrees to 0 degrees

  {                               

   myservo.write(pos);              // tell servo to go to position in variable 'pos'

   delay(50);                       // waits 50ms for the servo to reach the position

  }

  } 

1.3       Capteur de luminosité

#include <Wire.h>                   //bibliothèque

#include <Digital_Light_TSL2561.h>  //bibliothèque

unsigned long lux;                  //variable récupérant les données du capteur

void setup()

{

  Wire.begin();                   

  Serial.begin(9600);             

TSL2561.init();     }

void loop()

{

  Serial.print("The Light value is: "); //moniteur série

  Serial.println(TSL2561.readVisibleLux()); //moniteur série

delay(1000);                        //moniteur série

signed long lux;

  lux = TSL2561.readVisibleLux();     //définition de lux

Serial.println (lux);              //moniteur série pour vérifier si lux donne les même valeur que le capteur

delay(1000);                       //moniteur série

  }

1.4       Allumage de la lampe

La lampe s’allume lorsque la luminosité est insuffisante :

if (lux<=3000)              //J'ai défini la valeur en mesurant l'intensité

{                          //de la lampe à sa hauteur supposée par rapport aux plantes

digitalWrite(relais,HIGH);//si moins de 3000lux le relais se déclenche et la lampe s'allume

}

else{

digitalWrite(relais,LOW);//si trop de lumière, elle s'éteint

}

}    




Commentaires

Published }