Etage jardinière

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 :
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 }


}