Bonjour, j'aimerais réaliser un arrosage automatique grâce à 4 sondes d'humidité (une à chaque coin du bac potager). J'ai fais le test avec une sonde et tout fonctionne correctement mais ma question est comment gérer le relais par les 4 sondes ? Je ne vois pas comment faire pour isoler chaque sondes les une des autres et que dans le même temps, elles commandent le même relais...
Voici le code utilisé:
int val; // Cette variable stocke la valeur reçue du capteur d'humidité du sol.
void setup() {
pinMode(13,OUTPUT); // Réglez la broche 13 comme broche de sortie, pour envoyer le signal au relay.
pinMode(8,INPUT); // Réglez la broche 8 comme broche d'entrée pour recevoir les données du capteur d'humidité.
}
void loop() {
val = digitalRead(8); // Lire les données du capteur d'humidité
if (val == LOW)
{
digitalWrite(13, HIGH); // si le capteur d'humidité fournit une valeur FAIBLE envoyer la valeur ÉLEVÉE au relais
}
else
{
digitalWrite(13, LOW); // si le capteur d'humidité fournit une valeur ÉLEVÉE, envoyer la valeur BAS au relais
}
delay(600); // Attendre quelques secondes puis continuer la boucle.
}
Sinon, tu prends tes 4 sondes, tu les lis,
Là 2 solutions
soit tu fait une moyenne des 4 valeurs si la valeure désirée est atteinte tu enclenche ton relais
Soit dès qu'un capteur atteint la valeur désirée tu enclenche ton relais..
Sinon, tu prends tes 4 sondes, tu les lis,
Là 2 solutions
soit tu fait une moyenne des 4 valeurs si la valeure désirée est atteinte tu enclenche ton relais
Soit dès qu'un capteur atteint la valeur désirée tu enclenche ton relais..
Voilà
Ce que je voudrais surtout éviter c'est d'avoir un coin humide et un autre qui n'y est pas, en gros que chaque coins aient le même taux d'humidité désiré. Enfaite, si un coin est humide mais pas un autre et bien j'aimerais que le relais s'enclenche quand même pour le coin non-humide.
BrUnO14200:
Il te faut alors 4 arrosages différents ou un moyen mécanique d'arroser indépendamment chaque zone .
Si je fais la moyenne comme proposé au-dessus (d'ailleurs comment ? et qu'en est-il du câblage?), ça règle le problème d'avoir le relais qui ne s'enclenche pas à cause d'une zone déjà humide alors qu'une autre ne l'est pas ?
Motobilette007:
Ce que je voudrais surtout éviter c'est d'avoir un coin humide et un autre qui n'y est pas, en gros que chaque coins aient le même taux d'humidité désiré. Enfaite, si un coin est humide mais pas un autre et bien j'aimerais que le relais s'enclenche quand même pour le coin non-humide.
dans ce cas c'est juste que dès qu'un des capteurs dit que c'est sec, tu enclenches le relais. Ils donnent une valeur analogique ces capteurs ou c'est une entrée numérique tout ou rien ?
si c'est une entrée numérique, tu fais juste un OU logique entre les 4 valeurs pour décider si oui ou non il faut activer le relais.
Si c'est une entrée analogique, tu fais un OU sur le résultat des comparaisons de mesures avec le seuil
void setup() {
pinMode(13,OUTPUT); // Réglez la broche 13 comme broche de sortie, pour envoyer le signal au relay.
pinMode(8,INPUT); // Réglez la broche 8 comme broche d'entrée pour recevoir les données du capteur d'humidité.
pinMode(9,INPUT);
pinMode(10,INPUT);
pinMode(11,INPUT);
}
void loop() {
if ( (digitalRead(8)==LOW) || (digitalRead(9)==LOW) || (digitalRead(10)==LOW) || (digitalRead(11)==LOW) )
{
digitalWrite(13, HIGH); // si un des capteurs d'humidité fournit une valeur FAIBLE envoyer la valeur ÉLEVÉE au relais
}
else
{
digitalWrite(13, LOW); // si tous les capteur d'humidité fournissent une valeur ÉLEVÉE, envoyer la valeur BAS au relais
}
delay(600); // Attendre 0,6 secondes puis continuer la boucle.
}
Motobilette007:
....en gros que chaque coins aient le même taux d'humidité désiré. ...
Sans arrosage individuel , je ne vois pas comment ça pourrait marcher ...
Après tu te fixais un seuil minimum commun au 4, le risque étant d'avoir une ou des parcelles inondées parce qu'arrosées pour rattrapper une "sécheresse" sur une parcelle ..
bricofoy:
dans ce cas c'est juste que dès qu'un des capteurs dit que c'est sec, tu enclenches le relais. Ils donnent une valeur analogique ces capteurs ou c'est une entrée numérique tout ou rien ?
si c'est une entrée numérique, tu fais juste un OU logique entre les 4 valeurs pour décider si oui ou non il faut activer le relais.
Si c'est une entrée analogique, tu fais un OU sur le résultat des comparaisons de mesures avec le seuil
Je pense qu'il fonctionne en analogique et en numérique ?
BrUnO14200:
Sans arrosage individuel , je ne vois pas comment ça pourrait marcher ...
Après tu te fixais un seuil minimum commun au 4, le risque étant d'avoir une ou des parcelles inondées parce qu'arrosées pour rattrapper une "sécheresse" sur une parcelle ..
L'arrosage ce fera à la base des capteurs donc je pense que le risque d'inondation est faible avec la méthode d'avoir chaque capteurs indépendants mais reliés au même relais, si un capteur détecte une zone qui n'est pas assez humide, l'arrosage se faisant à la base, le signal risque de rapidement passer de élevé à bas et donc arrêter l'arrosage?
bricofoy:
as tu essayé le code que j'ai donné ?
la sortie est tout ou rien, vu ce que tu utilises dans ton code.
as tu essayé le code modifié que j'ai donné au post précédent ?
Voilà je viens d'essayer cela fonctionne merci,le seul (problème) est que si 1 capteur est dans l'eau le relais est actif mais avec 2 capteurs dans l'eau il est inactif, donc je pense qu'avec les 4 capteurs humides le relais ne devrait pas rester actif et donc j'évite l'inondation, qu'en pensez-vous ?
Avec un seul relais pour arroser, tu ne peux pas, sauf coup de bol, réguler l'humidité en même temps dans les 4 coins. C'est mathématique et ça ne dépend pas du matériel ou du programme. Si tu veux 4 régulations, il te faut 4 actionneurs (arrosages).
Ce que tu peux faire, c'est te poser la question suivante : qu'est-ce que je ne veux pas qu'il arrive, en priorité 1 ?
un coin (c'est à dire une mesure ) trop sec ?
un coin trop humide ?
A partir de là tu peux faire un programme qui fait un arrosase "moyen", tu surveilles les 4 mesures et si une limite est franchie, tu réagis (en arrosant plus, ou moins)
Pour faire ce que tu veux, il faut travailler à partir de la valeur médiane de tes mesures, et non pas la valeur moyenne.
La valeur moyenne peut être faussée par une valeur incohérente, la médiane permettra de l'éliminer.
J'ai déjà utilisé ce principe pour réguler la vitesse de ventilateurs à partir de multiples mesures de température dans le milieu de l'environnement, et ça fonctionne très bien.
biggil:
Avec un seul relais pour arroser, tu ne peux pas, sauf coup de bol, réguler l'humidité en même temps dans les 4 coins. C'est mathématique et ça ne dépend pas du matériel ou du programme. Si tu veux 4 régulations, il te faut 4 actionneurs (arrosages).
Ce que tu peux faire, c'est te poser la question suivante : qu'est-ce que je ne veux pas qu'il arrive, en priorité 1 ?
un coin (c'est à dire une mesure ) trop sec ?
un coin trop humide ?
A partir de là tu peux faire un programme qui fait un arrosase "moyen", tu surveilles les 4 mesures et si une limite est franchie, tu réagis (en arrosant plus, ou moins)
Le soucis, c'est que je n'ai qu'une électro vanne... Mais si l'arrosage se fait à la base des capteurs (via des tuyaux percés) les risque de sécheresse et d'inondation sont évités ?
Pour faire ce que tu veux, il faut travailler à partir de la valeur médiane de tes mesures, et non pas la valeur moyenne.
La valeur moyenne peut être faussée par une valeur incohérente, la médiane permettra de l'éliminer.
J'ai déjà utilisé ce principe pour réguler la vitesse de ventilateurs à partir de multiples mesures de température dans le milieu de l'environnement, et ça fonctionne très bien.
Bonjour, que voulez-vous dire par médiane et comment faire svp ?
Motobilette007:
Voilà je viens d'essayer cela fonctionne merci,le seul (problème) est que si 1 capteur est dans l'eau le relais est actif mais avec 2 capteurs dans l'eau il est inactif, donc je pense qu'avec les 4 capteurs humides le relais ne devrait pas rester actif et donc j'évite l'inondation, qu'en pensez-vous ?
Il aurait du être inactif seulement avec les 4 capteurs dans l'eau, j'ai du faire une erreur dans la condition
EDIT : pourtant non ça semble correct. tu as bien connecté tes capteurs aux broches 8,9,10 et 11 ?
Pour faire ce que tu veux, il faut travailler à partir de la valeur médiane de tes mesures, et non pas la valeur moyenne.
La valeur moyenne peut être faussée par une valeur incohérente, la médiane permettra de l'éliminer.
J'ai déjà utilisé ce principe pour réguler la vitesse de ventilateurs à partir de multiples mesures de température dans le milieu de l'environnement, et ça fonctionne très bien.
oui sauf que là les capteurs c'est du tout ou rien, alors ça risque de pas donner grand chose...