Auteur Isa87 | Dernière modification 9/12/2019 par Clementflipo
découpe laser, Arduino, Impression 3D Etage_jardinière_jardini_re.png fr none Creation 1
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
- Arduino Uno
- Servo FS5103B
- Relais Grove-103020005
- Digital Light Sensor Grove
- 2 clous
- LED horticole sortie USB
- Une petite Breadboard et plein de fils
- 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
fichiers
- La jardinière dans laquelle on placera la plante
- Le 4ème étage, dans lequel on installera le servo-moteur
- 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
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
}
}
Published }
}
}
}
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #