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.
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...
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.
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.
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 :
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
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 ?
shino0026:
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.
cutprod:
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
J'ai réussi à faire allumer la Led lorsque la plante manque d'eau, voici mon code si ça peut dépanner quelqu'un :
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
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.
Pour piloter l'arrosage je suis passé par une électrovanne de type machine a laver... Beaucoup moins chère et adaptation de tuyauterie facile sur du domestique.
Regarde là , tu en a en 220 V ATTENTION et une en 12Vcc (je pencherais pour celle ci) = http://www.gotronic.fr/cat-electrovannes-1242.htm
Pour piloter ta pompe ou ton électrovanne prend un module relais comme celui ci = http://www.gotronic.fr/art-module-relais-dfr0017-19260.htm
Attention au relais de puissance pas chère... soudure qui flambent, bobine qui crament, pouvoirs de coupure limité...
La qualité pour du matériel électrique c'est important, c'est comme si tu faisais le tableau électrique de ta maison avec que des disjoncteurs "made in china" (et j'ai rien contre les chinois), tu dormirais tranquille ?
Quel sera le branchement à effectuer ? Je dois dénuder mon fil et le faire passer ou sur le relai ? Je n'arrive pas à trouver un tuto simple qui explique comment mettre en place un relai