(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 |
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 0
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 :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #