complément d'eau et remplissage de bac

Bonjour à tous,
Bon nous y voilas, je vous préviens de suite je suis actuellement entrain d’apprendre un peut le fonctionnement de l'arduino ce qui veut dire que je suis une bille mon niveau est proche du zero :sob:

Donc voilas, je recherche un moyen pour comblé l’évaporation qui ce fait sur mes bacs à crevettes d'eau douce, et ca automatiquement.
Actuellement j'ai 9 bacs, et je risque d'agrandir ce nombres, il me faut donc un système évolutif, et un système qui puisse prendre comme référence la conductivité de l'eau.

Pensez vous qu'un tel projet soir réalisable, sachant que mes connaissance en la matière sont presque égale à zéro ?

Ca doit être faisable et pas trop compliqué

Pour tester le niveau de l'eau, j'utiliserais pas la conductivité, il y aurai éléctrolyse et tes capteurs se désagrègeraient tout doucement. Pour mon bac d'arrosage, j'ai mis dans un tube en plastique très fin (5mm de diamètre) une ils ( ou reed , c'est une ampoule avec 2 lamelles en métal qui se touchent lorsqu'on approche un aimant), les fils ressortent par le tube.
Du coup, en collant un aimant sur un bout de polystyrene qui glisse au travers d'une barre j'arrive à détecter un niveau sans que le matériel se dégrade. Et ça coute pas cher. Il est possible de faire glisser le polystyrene autour du tube

Tes bacs sont disposés comment et ou ? tu as un plan ? Comment compte tu remettre l'eau à niveau ? Des pompes à eau éléctrique ? éléctrovanes (un peu plus cher mais plus pratique s'il en faut une par bac) ?

Si tes bacs sont bien disposés et si tu craints pas les débordements d'eau, tu peux les placer en escalier pour qu'ils s'alimentent les uns les autres (comme certaines fontaines) du coup, 1 seule vanne. Si un bac manque d'eau, il en auront tous, mais d'un coté, ça peut permettre de renouveller celle-ci (je ne sais pas si c'est important ou non)

Concernant l'évolution du nombre de bac, tu peux imaginer un arcuino pro mini par bac, qui communique en RF433 avec un arduino qui jouerait un rôle de centrale. Tu peux ainsi ajouter autant de modules que tu veux. Car c'est le programme qui gèrera le reste

lost31:
Bonjour à tous,
Bon nous y voilas, je vous préviens de suite je suis actuellement entrain d’apprendre un peut le fonctionnement de l'arduino ce qui veut dire que je suis une bille mon niveau est proche du zero :sob:

Donc voilas, je recherche un moyen pour comblé l’évaporation qui ce fait sur mes bacs à crevettes d'eau douce, et ca automatiquement.
Actuellement j'ai 9 bacs, et je risque d'agrandir ce nombres, il me faut donc un système évolutif, et un système qui puisse prendre comme référence la conductivité de l'eau.

Pensez vous qu'un tel projet soir réalisable, sachant que mes connaissance en la matière sont presque égale à zéro ?

bonjour
tu veux faire du complement de niveau , ou connaitre en permance la hauteur d'eau ?

vohu:
Pour tester le niveau de l'eau, j'utiliserais pas la conductivité, il y aurai éléctrolyse et tes capteurs se désagrègeraient tout doucement.

ça depend de ce qu te prend comme capteur et surtout comment tu t'en sert
si tu alimente tout le temps c'est sur que ça ne tiendra pas longtemps
mais si tu gere la mesure de conductivité par periode d'alimentation des capteurs tous les temps X , ça se passe plutot bien
par exemple une mesure toutes les 15 minutes en alimentant le capteurs inox pendant 20 ms , ça evacue pas mal de probleme

bonjour,
+1
sinon il y a
le système de flotteur fermant la boucle
le hc-sr04 mesurant la hauteur d'eau
la sonde d'humidité protégée pour éviter les éclaboussures

Merci déjà pour ses réponses si rapide, ça fait du bien après un long moment tout seul dans mon coin a cogité :wink:

En fait mon projet ou du moins l’idée que j’en ai est de compléter l’évaporation journalière voir tout les 2 jours en hivert des bacs.

Je suis obliger de rester dans une conductivité bien précise en fonction des espèce que je possède. La variation de conductivité est de 10uS, donc ça m’élimine tout ce qui est capteurs de niveau, car bien trop imprécis / disgracieux dans les bac et trop gros … ma seule valeur / constante sure dans les bacs est la conductivité, d’ou mon intérêt pour contrôler le complément (je parle bien de complément et non pas d’un remplissage)

pour ce qui est de la disposition des bacs ils sont dans le salon sur un meuble étagère (sur 3 étages), donc je veut pas une truc disgracieux sinon madame va me faire la peau, et le débordement est inenvisageable :grinning:

on avait tout faux depuis le début :slight_smile:
petite recherche sur le forum

http://jf.chene.free.fr/cond_real/cond_real.htm

infobarquee:
on avait tout faux depuis le début :slight_smile:

:grin:
ouai , en meme temps l’exposé initial est loin du concept :

“Ce qui se conçoit bien s’énonce clairement” :sunglasses:

" Et les mots pour le dire arrivent aisément" :grin:

Dessolé mais je pensais avoir était clair dans mon premier post, comblé une évaporation n'a rien a voir avec un remplissage, de plus si j'ai parler de conductivité comme référence, c'est que le niveau d'eau en lui même du bac je m'en fous un peut.

Pour vous donner un exemple concret , j'ai des bacs a 290uS, en fait avec l’évaporation ça monte a 300/310 donc je complète en eau osmosé pour redescendre à 290. en hiver ça pose pas trop de problème ça prend en général 48h pour varié de 10 ou 20uS , par contre en été c'est tout les jours qu'il faut complétée ....

Pour ce qui est des liens merci je les connaissez déjà, mais je suis pas sur q'il puisse vraiment m'aider vu que je suis en eau douce pas salé

si, le principe de base est le même pour la conductivité d'eau douce ou salée.
à toi de l'adapter à tes besoins.

lost31:
Dessolé mais je pensais avoir était clair dans mon premier post, comblé une évaporation n'a rien a voir avec un remplissage, de plus si j'ai parler de conductivité comme référence, c'est que le niveau d'eau en lui même du bac je m'en fous un peut.

Pour vous donner un exemple concret , j'ai des bacs a 290uS, en fait avec l’évaporation ça monte a 300/310 donc je complète en eau osmosé pour redescendre à 290. en hiver ça pose pas trop de problème ça prend en général 48h pour varié de 10 ou 20uS , par contre en été c'est tout les jours qu'il faut complétée ....

Pour ce qui est des liens merci je les connaissez déjà, mais je suis pas sur q'il puisse vraiment m'aider vu que je suis en eau douce pas salé

bonjour
pas grave le principal c'est que l'on finisse bien par parler de la meme chose :grin:
+1 avec la reponse d'IB

ce qui importe pour un conductimetre "precis" , c'est le respect des valeurs physiques
essentiellement "V d'excitation" et dimensions "du bloc couple d'electrodes"

A chaud , si je devais faire , je partirais surement pour le Vexc d'une reference de tension genre MCP15xx en TO92 (cout qq cents d'€ ) et pour le bloc electrode sur du feuillard inox immergé sur flotteur.

la relation physique decoulant vers le Siemens etant connue , le reste est "assez" simple
coté arduino :
aussi une ref MCP15xx

alimentation d'une des refs de tensions par un pin en output
lecture AD
interpretation

on peut encore ameliorer les choses en utilisant plutot que le convertisseur 10 bits de l'arduino, un ADC externe de resolution superieure , si vraiment ça je justifie.

ce qui importe surtout là , c'est de n'alimenter la/les sonde que le temps necessaire aux mesures.
il n'y a (surement) pas besoin de verifier S plus que toutes les 10 minutes .

:sob: :sob: plus je vous lis et plus je me m’aperçois que je suis vraiment pas au niveau...

Je vais revoir mes prétention à la baisse dans un premier temps, n'y connaissant vraiment rien.

avec des capteur de niveaux optique en tut ou rien, je pense que je peut avoir une assez bonne précision sur les différent niveau des bacs.

En plus ça me permettras d'apprendre au fur et a mesure

lost31:
:sob: :sob: plus je vous lis et plus je me m’aperçois que je suis vraiment pas au niveau...

Je vais revoir mes prétention à la baisse dans un premier temps, n'y connaissant vraiment rien.

avec des capteur de niveaux optique en tut ou rien, je pense que je peut avoir une assez bonne précision sur les différent niveau des bacs.

En plus ça me permettras d'apprendre au fur et a mesure

:grin:
des capteurs optiques ne peuvent pas renseigner sur la conductimetrie et pour verifier "une hauteur d'eau" ce n'est AMHA
pas du tout la meilleure solution

je sait bien qu'un capteur de niveau ne peut pas renseigné sur la conductivité, quoi que sur mes bac je suis capable de déterminé la conductivité du bac en fonction de sont niveau, ce n'est qu'une approximation mais assez juste ....

En fait la ce WE j'ai bien potasser le sujet et au final, il en ressort que j'ai absolument pas les compétence pour faire ce que j'ai imaginé , du moins au départ, donc je vais me rabattre sur des système moins complexe, tout aussi efficace si bien fait et qui a déjà fait ses preuves en récifal "l'osmolateur".

En regardant les carte arduino, je me suis poser une question, toute bête, mais pour un système comme ça qui va devoir géré 9 bacs dans un premier temps, surement des extension du style lumière, refroidissement par ventilo ... et qui sait peut être ajouts d'un écrans, quelle carte faut il ?

Je pencherais pour la Mega 2560 R3 a cause du nombre E/S assez impressionnantes ....

a votre avis , bonne ou mauvaise idée ?? :slight_smile:

Bonjour à tous,
Après avoir bien réfléchit, je me suis orienté sur un système de complément d’eau pour mes bacs. La conductivité de l’eau variant de 10uS environs par 5mm de hauteur d’eau dans mes bacs, cela me semble le plus simple à faire.

Donc j’ai fait un code pour 2 bacs, manière de tester, après une semaine de test il semble que ça tourne bien et qu’il y est pas de bug dans le programme. Le probleme c’est que je viens de voir que j’avais oublier un capteur et donc une condition pour le Niv trop Haut, et je suis bloquer …

En fait j’aimerais que cette condition soit tester avant chaque bac, et cette information déterminerais si il chek le bac ou si il passe au suivant et ainsi de suite, j’aimerais aussi que dans le cas ou le niveau est trop haut, un voyant s’allume et reste allumé eme quant le programe est passer au bac 2.

Je sait pas si je suis assez clair ::slight_smile:

voilas mon code complet pour ceux qui voudrais bien m’aider, soyer indulgent c’est mon premier code, j’apprends encore :wink:

int capteurNivBac1 = 1;       // Le capteur du bac 1 est brancher sur la sortie analogique A1
int lowPinBac1 = 8;           // La Led rouge du bac 1 est brancher sur la sortie D8
int okPinBac1 = 9;            // La Led verte du bac 1 est brancher sur la sortie D9
int electrovanneBac1 = 10;    // L’électrovanne est brancher sur la sortie D10
int niv_val_bac1;             // Variable stockant la valeur lue par le capteur de Niv en A1
int niveau_alert_bac1 = 14;   // Variable du seuil d'allerte à determiné apres test (ici 14)
int niveau_alert_haut_B1 = 14;

int capteurNivBac2 = 2;       // Le capteur du bac 2 est brancher sur la sortie analogique A2
int lowPinBac2 = 11;          // La Led rouge du bac 2 est brancher sur la sortie D11
int okPinBac2 = 12;           // La Led verte du bac 2 est brancher sur la sortie D12
int electrovanneBac2 = 13;    // L’électrovanne est brancher sur la sortie D13
int niv_val_bac2;             // Variable stockant la valeur lue par le capteur de Niv en A2
int niveau_alert_bac2 = 14;   // Variable du seuil d’alerte à déterminé après test (ici 14)
int niveau_alert_haut_B2 = 15;
int ref = 17;
    #include <LiquidCrystal.h>
    LiquidCrystal lcd(7, 6, 5, 4, 3, 2);


              void setup() 
              {
    // put your setup code here, to run once:
  pinMode(lowPinBac1, OUTPUT);                   // Déclaration de la pin lowPinBac1 comme sortie
  pinMode(okPinBac1, OUTPUT);                    // Déclaration de la pin okPinBac1 comme sortie
  pinMode(electrovanneBac1, OUTPUT);             // Déclaration de la pin electrovanneBac1 comme sortie
 
   
  pinMode(lowPinBac2, OUTPUT);                   // Déclaration de la pin lowPinBac1 comme sortie
  pinMode(okPinBac2, OUTPUT);                    // Déclaration de la pin okPinBac1 comme sortie
  pinMode(electrovanneBac2, OUTPUT);             // Déclaration de la pin electrovanneBac1 comme sortie
     Serial.begin(9600); //Ouvre le pot serie  
               lcd.begin(16, 2);
               lcd.setCursor(1, 0);      
               lcd.print("Capteur de Niv");
               lcd.setCursor(3, 1); 
               lcd.write("Test     ");
              }


              void loop() 
              {
 
    niv_val_bac1 = analogRead(capteurNivBac1);   // Lecture de la valeur du niveau d'eau du bac  1
    Serial.println( niv_val_bac1 );              // écrire sur le serial monitor la valeur lu par la sonde
  
    niv_val_bac2 = analogRead(capteurNivBac2);   // Lecture de la valeur du niveau d'eau du bac  1
    Serial.println( niv_val_bac2 );              // écrire sur le serial monitor la valeur lu par la sonde  
    
            if (niv_val_bac1 >= niveau_alert_bac1)   
    {
        digitalWrite(okPinBac1, HIGH);           // On allume la LED Verte
        digitalWrite(lowPinBac1, LOW);           // On éteins la LED Rouge
        digitalWrite(electrovanneBac1, LOW);     //On éteins l’électrovanne du bac  1 
          lcd.clear();
          lcd.setCursor(1, 0);                   //Positionnement curseur 1ere Colonne  ligne 0 soit 1ere ligne
          lcd.print("BAC 1: TEST");              // affichage 1ere ligne d'info (descriptif bac)
          lcd.setCursor(5, 1);                   //Positionnement curseur 5eme Colonne  ligne 1 soit 2eme ligne
          lcd.print("NIV OK");                   // Indication de l’état actuel du niveau d'eau
    }


           else
            
    {
        digitalWrite(okPinBac1, LOW);            // On éteins la LED Verte
        digitalWrite(lowPinBac1, HIGH);          // On allume la LED Rouge
        digitalWrite(electrovanneBac1, HIGH);    //On allume l’électrovanne du bac  1 
        lcd.clear();
        lcd.setCursor(1, 0);                     //Positionnement curseur 1ere Colonne  ligne 0 soit 1ere ligne
        lcd.print("BAC 1: TEST");                // affichage 1ere ligne d'info (descriptif bac)
        lcd.setCursor(1, 1);                     //Positionnement curseur 5eme Colonne  ligne 1 soit 2eme ligne
        lcd.print("NIV BAS, Rempl");             // Indication de l’état actuel du niveau d'eau

    }
{delay(2000);}


          if (niv_val_bac2 >= niveau_alert_bac2)   
    {
        digitalWrite(okPinBac2, HIGH);           // On allume la LED Verte
        digitalWrite(lowPinBac2, LOW);           // On éteins la LED Rouge
        digitalWrite(electrovanneBac2, LOW);     //On éteins l’électrovanne du bac  1 
          lcd.clear();
          lcd.setCursor(1, 0);                   //Positionnement curseur 1ere Colonne  ligne 0 soit 1ere ligne
          lcd.print("BAC 2: TEST");              // affichage 1ere ligne d'info (descriptif bac)
          lcd.setCursor(5, 1);                   //Positionnement curseur 5eme Colonne  ligne 1 soit 2eme ligne
          lcd.print("NIV OK");                   // Indication de l’état actuel du niveau d'eau
    }

         else 
    {
        digitalWrite(okPinBac2, LOW);            // On éteins la LED Verte
        digitalWrite(lowPinBac2, HIGH);          // On allume la LED Rouge
        digitalWrite(electrovanneBac2, HIGH);    //On allume l’électrovanne du bac  1 
       lcd.clear();
       lcd.setCursor(1, 0);                      //Positionnement curseur 1ere Colonne  ligne 0 soit 1ere ligne
       lcd.print("BAC 2: TEST");                 // affichage 1ere ligne d'info (descriptif bac)
       lcd.setCursor(1, 1);                      //Positionnement curseur 5eme Colonne  ligne 1 soit 2eme ligne
       lcd.print("NIV BAS, Rempl");              // Indication de l’état actuel du niveau d'eau
    }
{delay(2000);}

   if (niv_val_bac1 > ref && niv_val_bac2 > ref) 
        {
          lcd.clear();
          lcd.setCursor(1, 0);        // Positionnement curseur 1ere Colonne  ligne 0 soit 1ere ligne
          lcd.print("TOUT LES BACS"); // affichage 1ere ligne d'info (descriptif bac)
          lcd.setCursor(5, 1);        // Positionnement curseur 5eme Colonne  ligne 1 soit 2eme ligne
          lcd.print("SONT OK");       // Indication de l’état actuel du niveau d'eau
          delay(3600000);               // Délais avant de re tester les condition
        }
    


              }