Je partage mon travail (et celui de certains de mes collègues qui m'ont aidé) car je pense que cela peut vous servir de base pour domotiser votre compteur d'eau.
Au menu :
1- récupérer les informations du compteur d'eau
2- traiter électroniquement les informations du compteur (sans PiFace, sans Arduino...uniquement avec le Raspberry)
3- préparer les informations pour Domoticz (Python)
4- utilisation dans Domoticz
5 : détecter une fuite d'eau
1- récupérer les informations du compteur d'eau
Il existe plusieurs solutions sur Internet : capteur reed, capteur optique ou achat d'un compteur à impulsion.
En fonction de votre compteur, à vous de choisir la meilleure solution. Si votre compteur est sous terre loin de votre Raspberry, il est possible d'en installer un deuxième en série dans votre logement.
Si vous avez un compteur avec une demi-lune métallique, je vous présente ma solution. Sinon, vous pouvez passer au point 2.
mon compteur : La demi-lune fait un tour par litre. J'ai utilisé un capteur CNY70 pour la lecture optique.
Voici une vidéo montrant la lecture optique du compteur Sappel :
http://youtu.be/mvqfSW-843Y
Si vous avez la chance d’accéder à une imprimante 3D, je vous propose une solution esthétique : un capot sur mesure réalisé par un collègue (merci Xavier) : Il a été fait avec OpenSCAD (OpenSource) et c'est suffisamment simple pour l'adapter à votre compteur. Voici le code :
Code : Tout sélectionner
$fn = 64;
ray=44;//rayon interne
ha=28;//hauteur
ep=2;//epaisseur
dis=30;//distance de la découpe
// fenetre compteur
laf=50;//largeur (x)
haf=18;//hauteur (y)
fx=0;// pos x
fy=11;//pos y
// fenetre capteur
lac=8;//largeur (x)
hac=8;//hauteur (y)
cx=-12;// pos x
cy=0;//pos y
hfc=5;//hauteur fixation capteur/ x=0
difference (){
translate ([0,0,ha/2])cylinder(h=ha, r=ray+ep, center=true);
translate ([0,0,ha/2+ep])cylinder(h=ha, r=ray, center=true);
//découpe superieure capot
translate ([-ray-ep,dis,0])cube([2*ray+2*ep,ray+ep,ha],center=false);
//decoupe fenetre
translate ([fx,fy,ep/2])cube([laf,haf,2*ep],center=true);
translate ([9.1,0,ep/2])cylinder(10,16,16,center=true);
//decoupe capteur
translate ([cx,cy,ep/2])cube([lac,hac,2*ep],center=true);
}
//fixation capteur
difference (){
translate ([cx,cy,hfc/2])cube([lac+3*ep,hac+3*ep,hfc],center=true);
translate ([cx,cy,hfc/2])cube([lac,hac,hfc],center=true);
//fente
//translate ([cx,cy,hfc/2+ep])cube([lac+2*ep,(hac+2*ep)/5,hfc],center=true);
}
//clips de fixation
translate ([0,-ray,ha-ep/2])rotate([45,0,00])cube([4,ep,ep],center=true);
rotate([0,0,120])translate ([0,-ray,ha-ep/2])rotate([45,0,00])cube([4,ep,ep],center=true);
rotate([0,0,-120])translate ([0,-ray,ha-ep/2])rotate([45,0,00])cube([4,ep,ep],center=true);
//remplissage droite capteur
translate ([-25,1,0])cube([6,6,5],center=false);