Domotic and stupid geek stuff

Capteur niveau de cuve sans fil – JSN-SR04T

Aujourd’hui je veux vous présenter l’evolution du mon système de Capteur niveau cuve sans fil pour 5€.

Pour plusieurs raisons je ne suis pas content de mon ancien système à 4 niveaux. Comme je l’ai dit dans les commentaires du fait que l’eau de pluie soit peut chargée en ion (enfin je crois), de temps en temps, et en particulier après de fortes pluies, les données remontées n’étaient plus bonnes. Il suffisait de rajouter une pincée de sel et paff ça revenait comme avant. Bref, cette solution n’a été utilisé qu’une année. J’ai ensuite opté pour une solution de mesure de distance avec un capteur JSN-SR04T.

Comment installer un capteur de niveau d’eau dans une cuve ? 

Comme sur d’autres montages j’utilise un ATtiny85 et un simple émetteur RF 433Mhz. Si vous souhaitez coupler à avec un petit panneau photovoltaïque plus accus c’est possible mais attention le capteur JSN-SR04T à besoin de 5V pour fonctionner correctement, si vous avez une tension inférieure (par exemple avec les accus 3.7V il vous faut vous tourner vers le JSN-SR04T-02 qui tolère mieux les tension faibles.

Edit 19/04/2020 : Pour alimenter mon capteur j’ai finalement choisi un simple panneau solaire 5V 0.25W (2 à 3€). Les données ne sont remontées que lorsqu’il fait beau temps (et jour) mais c’est largement suffisant pour mon installation. J’ai simplement ajusté le code lua, pour que lorsque la tension est trop faible les compteur dans domoticz ne soit pas mis a jour. En effet si la tension est trop faible ATtiny85 va fonctionner mais comme le capteur JSN-SR04T à besoin des 5v pour bien fonctionner les données envoyées seront erronée (mesure d’environ 0.5cm visiblement).

Matériel :

  • ATtiny85 + 8 pin DIP Socket – 1 à 2€
  • 433Mhz RF Transmitter – 2€ 
  • JSN-SR04T ou JSN-SR04T-02 – 1 à 2€
  • Panneau solaire 5V 0.25W – 2 à 3€

Schémas de Branchement :

Code .ino arduino / ATtiny85

Le code pour le ATtiny85 est plutôt simple vous le trouverez ici c est le code que vous trouverez partout auquel j’ai ajouté les fonctionnalités de sauvegarde de la batterie.

Pour programmer un ATtiny85 vous pouvez simplement utiliser un Ardruino Uno, vous trouverez sur cces deux site des explications pour téléverser le programe dans votre ATtiny85 :

J’utilise la librairie x10rf pour envoyer la mesure de distance à mon RFXCOM et domoticz sous forme d’un capteur de température (c’est le plus précis et le plus simple) :

// Calcul de distance
distance= duration*0.034/2;
// Envoyer la distance sous forme de température
myx10.RFXsensor(4,'t','T',distance); //RFXSensor ID 004

Dans domoticz mon capteur se nomme « Niveau eau temp » et c’est un capteur de température (ici 27.5°C = 27.5cm mesuré par le capteur)

Plus tard dans domoticz vous pourrez l’ajouter dans la liste des « Hidden devices » pour éviter qu’il vienne polluer votre tableau de bord.

Pour finir, pour transformer cette mesure de distance en Litre ou en pourcentage de remplissage de cuve j’utilise un script lua qui va à chaque fois que le capteur « Niveau eau temp » est mis à jour, mettre à jour un capteur virtuel de type % que je nomme « Niveau d’eau » et un capteur « Custom » que j’ai nommé Cuve:

Script LUA domoticz niveau de cuve :

Le script lua est un script de type time, vous pouvez le retrouver ici.

Il faut adapter aux dimensions de votre cuve dans cette partie. Pour mon besoin le calcul ne traite que les cuves de forme simple avec une largeur et profondeur identique sur toute la hauteur. Pour ma part il s’agit d’un fut de 220L qui faut 86cm de hauteur. En plus le capteur étanche rentre pile dans le petit emplacement si dessous :

Partie du script à modifier pour votre cuve :

-- debut configuration de la cuve à adapter à votre cuve
hMax=86; -- hauteur totale
vTotal=220; -- volume total
-- fin configuration de la cuve à adapter à votre cuve

Ensuite il faut aussi addater l’ID du capteur à mettre à jour :

-- mise a jour du capteur 'Niveau Eau' qui a pour idx 5780 pour moi
commandArray['UpdateDevice']='5780|0|'..prtagePein;

Une fois terminé vous obtiendrez de belles courbes vous indiquant le pourcentage de remplissage de votre cuve :

 

Pour la suite vous pourrez utiliser cette information pour calculer si oui ou non votre arrosage automatique « intelligent » peut démarrer ou non… (à venir dans un prochain article)

Quitter la version mobile