Pages: [1] 2 3   Go Down
Author Topic: Projet arrosage automatique de plantes  (Read 3132 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut à tous,

Je débarque sur le forum après avoir commencé à utiliser une Arduino Uno. J'ai pour objectif de pouvoir arroser mes plantes automatiquement lorsque le sol est sec. La première étape est de lire les données de mon capteur d'humidité qui est de celui là : http://www.miniinthebox.com/fr/capteur-d-humidite-du-sol-compatible-arduino-immersion-gold_p508926.html?pos=ultimately_buy_1

J'ai fais pas mal de recherche sur le net mais je n'arrive pas à l'utiliser (pour l'instant je veux juste pouvoir lire les données dans le moniteur arduino avant d'aller plus loin.

Quelqu'un peut m'aider ?

Niveau branchement, j'ai connecté le petit module au capteur puis trois pins de ce module à mon arduino GND, VCC et D0 au pin5 du arduino.

Merci d'avance à tous smiley
Logged

Québec
Offline Offline
Newbie
*
Karma: 0
Posts: 30
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

  Regarde ici
   http://skyduino.wordpress.com/2013/04/27/tuto-capteur-temperature-humidite-dht11/     
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut et merci de ta réponse,

J'avais déjà vu ce tuto et il me renvoi comme message d'erreur "temps d'attente dépassé".

C'est là dessus que je bloque smiley-sad
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 224
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Tu as bien connecté D0 sur une entrée analogique de l'Arduino ? A priori tuto de Snootlab devrait correspondre.


Je ne vois pas de DHT11 sur le capteur qu'utilise shino0026 smiley-roll

« Last Edit: August 10, 2013, 01:53:24 pm by SesechXP » Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Comme le code que tu m'a donné parle d'un pin analogique, j'ai utilisé le A0 de mon capteur au lieu du D0.

Je viens de faire des tests, les valeurs renvoyés sont très bizarres elles varient enormement alors que l'humidité ne change pas. Est ce que j'ai mal fait quelquechose ? Il y a un etrange bloc bleu sur une des le module qui se trouve entre le capteur et l'arduino, il y a une vis au milieu en jouant dessus les valeurs changent...
Logged

France
Offline Offline
God Member
*****
Karma: 29
Posts: 898
Scientia potentia est.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

elles varient enormement

Genre?

C'est sûr que la valeur ne sera jamais très stable, la valeur analogique étant comprise entre 0 et 1023, si par exemple ça "saute" de 400 à 500 je pense que c'est suffisant pour avoir une idée de l'humidité. Reste plus qu'a écrire un code qui fasse la moyenne de plusieurs mesures.
« Last Edit: August 11, 2013, 07:01:09 am by guix » Logged

Sud-Ouest
Offline Offline
Full Member
***
Karma: 0
Posts: 115
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
fais nous un schéma de ton câblage et donne le code que tu utilise, on pourras plus t'aider.
Logged

france
Offline Offline
God Member
*****
Karma: 8
Posts: 689
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est un capteur de type résistif : la résistance électrique du sol sec est plus élevée que celle du sol humide.

- Branché directement sur l'Arduino, tu mesures une résistance, avec une entrée analogique.
- Branché via le bloc bleu, qui comporte un potentiomètre de réglage, tu peux ajuster le seuil de déclenchement de l'arrosage en mode numérique (on / off) ou rester en mode analogique.

Si tu bouges le capteur dans la terre, la mesure de R va fluctuer (selon le contact des électrodes avec le sol), il faut le laisser bien fixe.
« Last Edit: August 11, 2013, 07:31:50 am by Christian_R » Logged

Christian

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Voici des photos de mon montage

Le code utilisé c'est ça :
Code:
int sensorPin = 2;    // sélection de la pin de mesure
int sensorValue = 0;    // initialisation de la valeur
 
void setup() {
   Serial.begin(115200); 
}
 
void loop() {
 
  sensorValue = analogRead(sensorPin);    // lecture directe de la valeur
  delay(1000);    // patienter 1 s
  Serial.print("sensor = " );    // impression du titre
  Serial.println(sensorValue);    // impression de la valeur mesurée
}

Les valeurs retournées bougent pas mal, la j'ai mis le capteur dans le pot après avoir arrosé et voici un peu ce que ça donne :
Code:
sensor = 272
sensor = 287
sensor = 296
sensor = 296
sensor = 291
sensor = 282
sensor = 273
sensor = 270
sensor = 262
sensor = 261
sensor = 262
sensor = 264
sensor = 267
sensor = 280
sensor = 294
sensor = 296
sensor = 293
sensor = 286
sensor = 277
sensor = 271
sensor = 266
sensor = 261
sensor = 261
sensor = 263
sensor = 264
sensor = 267
sensor = 279
sensor = 293
sensor = 297
sensor = 297
sensor = 290
sensor = 280
sensor = 273
sensor = 271
sensor = 263
sensor = 262
sensor = 263
sensor = 264
sensor = 265
sensor = 276
sensor = 291
sensor = 297
sensor = 296
sensor = 289
sensor = 279
sensor = 272
sensor = 267
sensor = 262
sensor = 262
sensor = 263
sensor = 264
sensor = 271
sensor = 285
sensor = 297
sensor = 298
sensor = 293
sensor = 284
sensor = 275
sensor = 272
sensor = 265
sensor = 263
sensor = 265
sensor = 266
sensor = 266
sensor = 276
sensor = 290
sensor = 298
sensor = 298
sensor = 293
sensor = 284
sensor = 276
sensor = 272
sensor = 265
sensor = 262
sensor = 263
sensor = 264
sensor = 265
sensor = 274
sensor = 289
sensor = 298
sensor = 298
sensor = 292
sensor = 283
sensor = 274
sensor = 272
sensor = 263
sensor = 263
sensor = 264
sensor = 266
sensor = 268
sensor = 282
sensor = 296
sensor = 298
sensor = 295
En testant de mettre le capteur au sec ou plongé dans un verre d'eau, les changements dans les données ne sont pas flagrant et surtout très fluctants.
Logged

Sud-Ouest
Offline Offline
Full Member
***
Karma: 0
Posts: 115
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Alors, il faut que tu débranche ton fil vert qui va sur la pin 2 et que tu le branche sur A0.
Dans le code tu remplace "int sensorPin = 2;" par "int sensorPin = A0;
Tu test et tu nous dis si ça va mieux.

Explications: ton capteur est de type analogique (ou peut être les deux comme a dit Christian_R) donc en fonction du taux d’humidité qu'il mesure, il délivre une tension compris entre 0 et 5 Vcc sur le fil vert. Pour lire une tension entre 0 et 5 Vcc avec une carte Uno, il faut te servir d'une des entrées analogique de A0 a A5.
Entrée qui va te donne une valeur entre 0 et 1023, il faudra que tu applique un traitement dans ton code pour avoir le taux d’humidité entre 0 et 100 %.
Je te met sur la voie => regarde la fonction " map() " =http://arduino.cc/en/Reference/Map

Un conseil regarde et pratique des tutos :
http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ARDUINO
Logged

Sud-Ouest
Offline Offline
Full Member
***
Karma: 0
Posts: 115
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si comme  Christian_R te la décrit ton capteur a une sortie analogique et une sortie digitale. Il faut que tu arrive à distinguer les deux, tu as marqué quoi sur tes 4 pin en bas ?
5V, Gnd et quoi ?
Logged

France
Offline Offline
God Member
*****
Karma: 29
Posts: 898
Scientia potentia est.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

En testant de mettre le capteur au sec ou plongé dans un verre d'eau, les changements dans les données ne sont pas flagrant et surtout très fluctants.

Et si tu rajoute du sel dans l'eau?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si comme  Christian_R te la décrit ton capteur a une sortie analogique et une sortie digitale. Il faut que tu arrive à distinguer les deux, tu as marqué quoi sur tes 4 pin en bas ?
5V, Gnd et quoi ?
Ca marche avec ton système en fait j'ai une pin analogique A0 et une digitale D0. Prochaine étape faire lire au arduino les valeurs et qu'il déclanche tout seul une LED quand la plante manque d'eau smiley

Ca avance, merci beaucoup de votre aide smiley
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ca avance pas mal smiley

J'ai réussi à faire allumer la Led lorsque la plante manque d'eau, voici mon code si ça peut dépanner quelqu'un :
Code:
int sensorPin = A0;    // sélection de la pin de mesure
int sensorValue = 0;    // initialisation de la valeur
int ledPin = 13;
 
void setup() {
   Serial.begin(115200); 
   pinMode(ledPin, OUTPUT);
}
 
void loop() {
 
  sensorValue = analogRead(sensorPin);    // lecture directe de la valeur
  delay(1000);    // patienter 1 s
  Serial.print("sensor = " );    // impression du titre
  Serial.println(sensorValue);    // impression de la valeur mesurée

  int val = analogRead(sensorPin);
 
  Serial.println(analogRead(sensorPin)); //pour mettre dans le terminal
 
  if(val < 900) digitalWrite(ledPin,LOW);
  if(val > 900) digitalWrite(ledPin,HIGH);
  delay(500);
}

Maintenant la prochaine étape est de déclancher l'arrosage. J'ai récupéré une pompe d'une ancienne fontaine, je ne sais pas trop comment la déclancher, elle est branchée au 220V.
Après mes recherches j'ai apparement besoin d'un relay, comment cela fonctionne-t-il ? Il faut que je dénude le cable de la pompe et que je mette le relay au milieu ? Comment le déclancher avec le Arduino ?

Merci encore pour votre aide. Je ferai un tuto total une fois que j'aurai réussi smiley
Logged

france
Offline Offline
God Member
*****
Karma: 8
Posts: 689
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Le relais sera déclenché par une sortie digitale de l'Arduino. Il sert d'interrupteur sur le fil d'alim de la pompe.

La pompe comporte un moteur et fonctionne en 220V (attention, haute tension) donc monter un optocoupleur pour l'isolation électrique de l'utilisateur, et une diode de roue libre pour protéger le relais des surtensions.
Ou utiliser un petit module de relais tout monté c'est plus simple.

Prévoir aussi une minuterie dans le programme qui coupe l'arrosage au bout d'un certain temps (sécurité inondation) en l'absence de réponse du capteur.
Logged

Christian

Pages: [1] 2 3   Go Up
Jump to: