Capteur niveau cuve sans fil pour 5€

niveau eau rfJ’ai un nouveau mini projet à vous présenter aujourd’hui.

Vous vous souvenez peu être que l’année dernière j’ai bricolé un système qui permet d’arroser mon jardin automatiquement et surtout intelligemment et de façon totalement autonome (pas besoin de prise de courant ou de l’eau courante)

Je n’ai pas détaillé encore l’intégralité de ce montage mais un des principe de ce système est que je récupère l’eau de pluie dans une cuve et d’arroser le jardin avec. Pour commander le tout j’utilise un Arduino nano usb à 5€. Dans la version initiale j’avais un simple capteur de niveau bas qui permettait de signaler quand le niveau était bas dans la cuve et ainsi ne pas arroser si la cuve est vide pour ne pas endommager la pompe.

Matériel :

  • RF transmiter : 433Mhz WL RF Transmitter (1€)
  • ATTINY85-20PU Pour ATMEL DIP-8 Tiny85-20PU  (6€ les 5 soit 1.20€ pièce)
  • Boite De Connexion Raccordement Etanche Plastique Electronique 100x60x25mm (1.15€)
  • 8 Pin Socket Solder Prototype Circuit Adaptor PCB Attiny85 (2.20€ les 10, soit 0.22€/pièce)
  • Boîtier Bloc Support Coupleur Box pour 3 AA (1€)

Soit un total inférieur à de 5€ !

Version initiale du capteur :

La première version de ce capteur était calqué sur le montage que l’on trouve sur ce super site: bateaux.trucs.free.fr. Deux simples fils plongés au fond de la cuve permettent de signaler un niveau bas atteint. Le montage était simplissime avec deux fils qui partent de l’Arduino et qui arrivent au fond de ma cuve.

Un des problème de ce montage est le phénomène de l’électrolyse qui à pour effet un oxydation de l’anode (le +). Pour retarder cet effet une solution est de n’alimenter ce circuit qu’au moment ou l’un veux l’information.

Pour cela au lieu de relier un des fils au + de l’Arduino il suffit de le relier à une des sorties et de passer cette sortie à l’était haut (HIGH) au moment de la lecture et de la repasser à l’état bas à la fin de la lecture. Ainsi le reste du temps il n’y a pas de tension entre l’anode et la cathode, pas de courant circulant et donc par de phénomène électrolyse.

Nouvelle version du capteur « sans fil »  :

La première version de ce capteur ne me satisfait pas tout à fait. Un des principal inconvénient étant les fils entre l’arduino et la cuve que je souhaite supprimer. Ensuite j’aimerai savoir plus précisément le niveau d’eau de ma cuve.

Mon nouveau projet à donc pour but de créer non pas un capteur mais quatre capteurs de niveaux et ainsi pouvoir déterminer le niveau de ma cuve sur quatre position: 0/4 (vide) ; 1/4, 2/4, 3/4, 4/4, (pleine).

Au lieu d’envoyer l’information en filaire à l’arduino on « passera par les airs » avec un émetteur 433Mhz, le tout piloté par un Attiny85 qui en plus d’avoir 6 entrées / sorties et une très faible consommation électrique ce qui permettra de pouvoir l’alimenter avec 3 piles 1.5V et d’avoir un capteur totalement wireless (sans fils 🙂 ).

Mon système d’arrosage est commandé par mon serveur domoticz via un émetteur RFXCOM, je souhaites pouvoir afficher dans domoticz le niveau d’eau de ma cuve pour utiliser cette information pour déclencher ou non l’arrosage.

Toujours en me basant sur le montage du site bateaux.trucs.free.fr mais cette fois si sur le montage ne nécessitant pas de résistance [voir ici] (du coup c’est encore plus simple), je vais ajouter 3 capteurs supplémentaires. J’utilise ensuite la librairie x10rf  [voir les sources ici] pour transmettre la valeur de niveau a domoticz (0,1, 2, 3, 4).

Schémas des connexions :

niveau

Code  :

Le code est disponible ici :  tank_water_level_low_power.ino

Dans Domoticz :

Si tout fonctionne correctement vous devriez vous apparaître dans domoticz un nouveau dispositif de type RFXMeter :

Untitled

Ajoutez ce dispositif et déclarez le en compteur avec une unité « / 4 »

Untitled

 

Cela va apparaître ensuite dans domoticz comme cela :

Untitled

Voila votre niveau est affiché dans Domoticz !

 

Quelques photos :

 

Je vous conseille de recouvrir d’étain le bout des fils de cuivre qui seront plongés dans l’eau.

 

Cet article vous intéresse laissez un commentaire ça fait toujours plaisir 🙂

34 réflexions sur « Capteur niveau cuve sans fil pour 5€ »

  1. Ping : Capteur humidité du Sol pour moins de 5€ | Domotic and stupid geek stuff

    1. Manu Auteur de l’article

      Bonjour K,

      réponse un peu tardive de ma part désolé,
      l’ensembles des 4 fils sont maintenu ensemble dans la même gaine. La gaine est passé par un trou tout en haut de la cuve et lesté par un poids accroché un bout. Le tout tien bien droit le long de la cuve comme on peu le voir sur la photo ici :

      Répondre
  2. karlytau

    Bonjour
    j’ai effectué un montage que je développe au fil de l’eau sur mon site http://karlytau.raidghost.com.
    Moi c’est un problème de niveau de cuve de fuel.
    Plus proche de mon besoin mais le problème reste le même.
    Un module arduino avec son shield RJ45 pour supporter du CPL et une sonde à Ultrasons étanche « JSN-SR04T ».
    Le tout alimente un site web visible sur mon site avec à la base du Google charts amélioré.
    voila le tout est assez complexe mais on y arrive et c’est fiable.
    4 mesures par jour avec différentes températures relevées.
    Cordialement

    Répondre
    1. Manu Auteur de l’article

      Super le site ! Je vais regarder ça en détail !
      Pour le capteur c’est bien celui la ? https://goo.gl/zrkIYc

      Car ça m’intéresse !

      Le problème de mon montage est la conductivité de l’eau qui diminue fortement lorsqu’il pleut.. Du coup il me faut ajouter une pincé de sel et ca repart mais c’est pas terrible comme solution ! 🙂

      merci pour ton partage !

      Répondre
      1. karlytau

        bonjour
        oui c’est cela
        va sur mon site n’hesite pas a cliquer sur mes annonces et le cas échéant on communique par mail.
        il est etanche ne pas l’immerger pour autant.
        et j’ai sur mon site le sinfo de la cuve
        cdt

        Répondre
      2. pberghof

        Bonjour Manu, as-tu un email afin d’échanger sur ton article de blog ? Je souhaite installer une pompe à mon récupérateur d’eau de pluie pour ensuite automatiser l’arrosage de mon potager mais tu ne parles pas de pompe dans tes articles. Merci pour ton aide.

        Répondre
        1. Manu Auteur de l’article

          Super ! je n’utilise plus ce capteur a cause de la conductivité mais c’est une super idée à tester…

          Merci !

          Répondre
  3. Yo

    Bonjour,

    Déjà pour commencer chouette tuto merci à toi, hors je me retrouve bloqué. Lorsque je vérifie le code pour la compilation j’ai une erreur:

    Arduino : 1.8.2 (Windows Store 1.8.2.0) (Windows 10), Carte : « ATtiny25/45/85, ATtiny85, Internal 8 MHz »

    In file included from C:\Users\*******\Desktop\Arduino\sketch_apr01a\sketch_apr01a.ino:16:0:

    C:\Users\*******\Documents\Arduino\libraries\x10rf-master/x10rf.h:21:21: fatal error: Energia.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Erreur de compilation pour la carte ATtiny25/45/85

    As tu rencontré ce problème ? Ou est ce que quelqu’un peut m’éclairer 😡

    Merci, Yo.

    Répondre
  4. Fred

    Bonjour super idée, je prévois de monter avec communication avec Jeedom, je supposes que cela ne devrai pas poser de problème…

    a++

    Répondre
  5. Gaap

    Bonjour, tout d’abord merci pour ce(s) tuto(s) ,
    une question quelle fréquence doit t’on choisir lors de la programmation du ATTINY, 1Mhz, 8MHz?

    Merci de votre retour

    Répondre
  6. Dodutils

    Bonjour,

    et sinon pourquoi pas utiliser un petit ESP8266 qui fait wifi, couplé à la sonde ultrason JSN-SR04T citée précédemment, le tout monté sur une simple batterie 18650 pour l’autonomie et faire du deep sleep qui se réveille 4 fois par jour ?

    cdlt.

    Répondre
  7. Madelin

    Bonjour,
    Je voulais essayer votre projet qui me paraissait bien pratique, mais ma compilation s’arrête avec :

    /Users/Tkd/Documents/Arduino/tank_water_level_low_power/tank_water_level_low_power.ino:16:19: fatal error: x10rf.h: No such file or directory
    #include
    ^
    compilation terminated.
    exit status 1
    Erreur de compilation pour la carte Arduino/Genuino Uno

    J’avoue ne pas comprendre pourquoi (je débute) x10rf.h n’est pas reconnu, alors que les fichiers se trouvent dans le repertoire Arduino/tank_water_level_low_power/

    Si vous aviez 5 petites minutes pour m’éclairer,
    Cordialement,

    Répondre
  8. Madelin

    Résolu mon post-précédent : remplacer x10rf.h par X10RF.h dans le .ino (comme quoi).

    Par contre, nouvelle erreur: tank_water_level_low_power:138: error: ‘WDTCR’ was not declared in this scope
    WDTCR |= (1<<WDCE) | (1<<WDE);

    Des idées ?

    Répondre
  9. Franck

    Bonjour

    J’essaie de fairece capteur en suivant ton tuto.

    Je coince sur les librairies
    X10RF.h
    et surtout sur wiring.h
    je ne parviens pas a trouver les fichiers correspondants.

    Peux tu les mettre a disposition.

    Merci

    Répondre
  10. Feredie

    Bonjour
    Bravo pour votre tuto j’ai essayé de le reproduire et lors de la compilation du fichier ino il m’indique erreur incompatible avec ATtiny pourriez vous m’aider. Merci

    Répondre
  11. Ping : Capteur niveau de cuve sans fil – JSN-SR04T | Domotic and stupid geek stuff

    1. Dodutils

      Alors ça c’est marrant parce que je suis justement en train de poser le mien à l’instant même dans le puisard, je viens de terminer la découpe du support dans une chute de montant qui me restait quand j’ai fait l’ossature isolation et faire le trou dedans pour le capteur et déposer l’ESP et la batterie (qu’il faudra mettre dans une petite boite bien étanche à l’humidité -)

      Répondre
    1. Manu Auteur de l’article

      Oui je sais bien puisqu’on en avait parlé ici 🙂
      Je n’avais pas eu le temps ni l’énergie d’expliquer comment faire ni même partagé le code lua et ardruino pour tout transférer dans domoticz sans fil… Sauf erreur je pense que tu passe par un bord connecté sur ton réseau wifi ?
      J’ai encore quelques trucs que je souhaites partager ici comme comment calculer le bon niveau d’arrosage en fonction de la pluie a venir, passée, de la température max de la journée etc… (bon la ce sera pus du shell 🙂 …

      Répondre
  12. Ping : Capteur niveau de cuve sans fil par pression – Serie 26Y | Domotic and stupid geek stuff

  13. Ping : Arrosage Autonome et Automatique #1 Liste des courses | Domotic and stupid geek stuff

  14. Olivier-FR

    Bonjour et merci pour le tuto,
    Après avoir cherché sur le net des télécommandes DIY avec comme composants les mêmes que pour l’emetteur de cet article et sans avoir trouvé ce que je voulais, je suis en cours de réalisation de ce montage afin de faire un émetteur 4 canaux (BP à la place des 4 fils de niveaux et récepteur RFXCOM + DOMOTICZ qui fera des action différente suivant le BP choisi).
    J’ai téléchargé la librairie x10rf.zip et je l’ai importée dans l’IDE Arduino (1.8.13) avec croquis … inclure une bibli zip.
    J’ai téléchargé le .ino que j’ai placé dans un répertoire lambda (le .ino est le seul dans ce répertoire.
    Quand je clique sur l’icone vérif de l’IDE, j’ai tout un tas d’erreurs.
    La première étant :
    x10rf.h:25:19: error: expected ‘)’ before ‘tx_pin’
    x10rf(uint8_t tx_pin, uint8_t led_pin, uint8_t rf_repeats);

    puis beaucoup d’autre du genre ‘uint8_t’ pas déclarée :
    x10rf.h:27:19: error: ‘uint8_t’ has not been declared
    void RFXmeter(uint8_t rfxm_address, uint8_t rfxm_packet_type, long rfxm_value);

    ou même : x10rf.cpp:25:10: error: ‘_tx_pin’ was not declared in this scope

    Je débute avec l’arduino et le C et je ne suis pas capable d’analyser le pb tout seul, j’ai l’impression qu’il doit manquer un fichier quelque-part.

    Merci pour votre éclairage.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.