Domotic and stupid geek stuff

Capteur niveau de cuve via capteur de pression – Serie 26Y

Pour continuer dans mes recherches et l’amélioration de la mesure du niveau d’eau dans ma cuve d’arrosage j’ai décidé de tester le capteur de pression serie 26Y de Keller.

J’ai trouvé ce capteur par hasard sur ebay et comme il était à un prix raisonnable (moins de 10€ sans les frais de port) je me suis lancé…

Pour commencer voici un résumé de mes tests précédents :

Test 1 : Capteur niveau cuve sans fil pour 5€ : capteur a plusieurs niveaux utilisant la conductivité de l’eau. Fonctionne bien mais au bout de quelques pluies la conductivité de l’eau baisse dans la cuve et les capteurs ne renvoient plus la bonne valeur. Ajoutez une pincé de sel et c’est repartis mais c’est quand même pas fiable…

Test 2: Capteur niveau de cuve sans fil jsn-sr04t : Ce capteur étanche fonctionne par ultrasons et mesure la distance entre le haut de la cuve et le niveau d’eau. Je n’ai pas réussis à déterminer si ça venait de la surface de l’eau qui ne renvoyait pas correctement l’echo ou si c’est lié à l’angle d’utilisation du capteur qui fait que le signal rebondissait sur la parois mais le résultat obtenus était trop variable, et on passait de plusieurs dizaines de Litres en plus ou en moins entre deux mesures sans que le niveau réel n’ai changé.

Ce qui me conduis donc aujourd’hui à ce nouveau test avec un capteur de pression.

Capteur Serie 26Y :

Keller serie 20Y

C’est un capteur de pression très simple qui fourni un signal analogique de tension proportionnel à la pression exercée sur une membrane. il suffit donc de le plonger au fond d’une cuve pour connaitre la pression et donc la hauteur de la colonne d’eau.

Il peut être posé simplement au fond, je n’ai pas vu de différences en fonction de la position du capteur. Le capteur est étanche et fournis avec un cable de 2m ainsi que la notice technique du constructeur. Attention tout de même le capteur mesure une pression absolue, il font donc en tenir compte dans vos calculs. Par exemple à l’ai libre (ce qui équivaut à une cuve vide) la tension de sortie est d’environ 1.5V pour une alimentation du capteur en 5v, ce qui correspond à la pression atmosphérique (~1Bars).

Par contre je pense que la plage annoncée (0-10 bars) ne fonctionne qu’avec une alimentation de 10V vue la tension de sortie à 1bars…

Vous trouverez les détails de ce capteur ici sur le site du constructeur : Série 26Y

Matériel :

Schémas de Branchement :

Schémas de Branchement du capteur de pression sur Ardruino Uno

Code .ino arduino

La sonde de pression 26Y fournie un signal analogique en volt en fonction de la pression absolue. Les mesures peuvent théoriquement aller jusqu’à 10Bars. Donc si on considére la pression atmosphérique sur terre autour de 1 bars ce capteur offre une mesure allant de 0 à 9m de profondeur. Pour obtenir le volume il suffit de connaitre la forme de la cuve et de faire un peu de math.

La lecture du signal se fera sur l’entrée analogique A3 qui est à relier au cable rose. J’ai choisis d’envoyer le signal à mon RFXCOM et domoticz via un signal de sonde de température Oregon. J’utilise souvent ce signal car je trouve qu’il est plus stable et plus précis que les signaux de type x10rf.

Vous trouverez le code initial Oregon sur ce blog qui ma beaucoup aidé : Protocoles Oregon Scientific et Arduino

J’ai ajusté le code pour en faire une fonction et l’isoler dans un fichier source .ino à part, vous trouverez mon code ajusté ici : Fonction SendOregon.

La tension de sortie du capteur est donc convertie par l’ardruino en valeur numérique. La valeur numérique est envoyée à domoticz via le signal 433Mhz et reconnue comme un capteur de température :

A noter que je divise par 10 la valeur numérique avant de l’envoyer car domoticz (ou le code Oregon) n’accepte pas une valeur de 400°C.

Le code est disponible ici : tank_water_leve_26Y.ino

Vous devez créer le répertoire tank_water_leve_26Y sur votre PC et y déposer les deux fichiers .ino. ensuite ouvrez simplement le fichier tank_water_leve_26Y.ino.

Script LUA domoticz pour afficher le niveau de la cuve :

Nous avons maintenant un capteur de température mis à jour régulièrement dans domoticz. Nous allons créer un script LUA pour alimenter un capteur dans domotics qui représentera le volume d’eau disponible.

Je commence par créer 2 capteurs virtuels, un de type pourcentage et un de type Custom Sensor / Compteur d’eau :

Ensuite vous trouverez le script ici LUA ici script_time_tank_water.lua

C’est le même principe que ce décrit dans l’article précédent sur le jsn-sr04t : Il y a une partie réservé à la configuration de la cuve :

	-- debut configuration de la cuve à addapter à votre cuve
	valMAX=455;	-- valeur reçu pour cuve pleine (lecture analogique cuve pleine) 
	valMin=340;	-- valeur reçu pour cuve vide	(lecture analogique cuve vide  
	volMAX=220; -- volume pour cuve pleine en L
	-- fin configuration de la cuve à addapter à votre cuve

Vous devez ensuite ajuster les devices ID et ça roule tout seul normalement…

Avis / résultat au bout de quelques heures :

A ce stade, je vois que les lectures sont dans l’ensemble stables en tout cas je n’ai pas comme avec le capteur de distance des grandes variations.

Je vois par contre de petites variations, pour une cuve pleine ça bouge de quelques points entre deux mesures. Cela ne représente pas beaucoup et la tendance est quand même juste mais ça représente environ 8L de variation parasite.

Valeur de remplissage de la cuve. Les grandes variations correspondent au moment ou j’ai plongé ou retiré le capteur.
Valeur « température » correspondant au signal analogique du capteur.
Zoom capteur « temperature »
Zoom Capteur volume en litre.

On voit bien sur le zoom que les valeur numériques converties par Ardruino varies de 430 à 435 sans que le volume réel de la cuve ne soit changé. En volt ça ne doit pas être énorme mais en litre selon la configuration de votre cuve ça peu être important.

Pour le moment l’alimentation de l’ardruino se fiat via le port USB de mon (nouveau) régulateur de charge de batterie, il est possible que le tension ne soit pas 100% stable et perturbe la lecture.

Je vous ferai un retour dans quelques jours quand j’aurai puisé un peu d’eau….

Quitter la version mobile