Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Compteur d'eau à impulsion + Raspberry Pi GPIO

1,229 views
Skip to first unread message

Denis Sacchet

unread,
Mar 23, 2017, 1:38:44 PM3/23/17
to
Bonjour,

j'ai fait installer des compteurs d'eau sur lesquelles on peut brancher
des ampoules REED générant 1 impulsion pour 0.25L, le but étant d'avoir
un suivi de ma consommation d'eau. Il y a en tout 6 compteurs (eau
chaude, eau froide, eau de pluie, ...).

Le compteur est ce modèle :

http://www.planete-domotique.com/compteur-d-eau-avec-sortie-impulsion.html

Avec un oscilloscope, je constate en sortie du câble gris une tension de
1.6V d'une durée de 700ms pour chaque impulsion, autant que je puisse le
voir, le front semble bien franc.

Le Raspberry Pi comporte des entrées GPIO, du +3.3V, du +5V, de la masse.

Autant je maîtrise la partie informatique, autant la partie électronique
est beaucoup plus obscure pour moi :( Quel est à votre avis la meilleure
façon de brancher ces compteurs d'eau sur le raspberry, en sachant que
les compteurs ne sont pas tous au même endroit, et que je souhaiterais
dans la mesure du possible pouvoir ramener les signaux générés au
Raspberry via du cable RJ45 Grade 3S installé dans toute la maison.

De ce que j'ai pu voir, il est intéressant d'avoir un montage en pull-up
mais il semblerait que l'isolation du raspberry par rapport à un signal
parasite ou une surtension ne soit pas optimal.

Il y a une solution à base d'optocoupleur, mais sur ce sujet, impossible
pour moi de choisir le bon modèle en fonction de ce que j'ai mesuré en
sortie de l'oscilloscope. La clé étant le courant minimum pour allumer
la led. La durée de 700ms étant plutôt généreuse de ce côté.

Il faudrait potentiellement pouvoir éliminer aussi les parasites
(condensateurs ?) et quid de la longueur du cable par rapport à
l'attenuation du signal (il faut que je refasse une mesure en sortie de
RJ45).

Par avance merci aux personnes pouvant m'aider sur cette partie
électronique.

Bien cordialement

Denis Sacchet

Sylvain POURRE

unread,
Mar 23, 2017, 7:09:51 PM3/23/17
to
Denis Sacchet a écrit :
> Bonjour,
>

>
> Le compteur est ce modèle :
>
> http://www.planete-domotique.com/compteur-d-eau-avec-sortie-impulsion.html
>
> Avec un oscilloscope, je constate en sortie du câble gris une tension de
> 1.6V d'une durée de 700ms pour chaque impulsion, autant que je puisse le
> voir, le front semble bien franc.
>
> Le Raspberry Pi comporte des entrées GPIO, du +3.3V, du +5V, de la masse.
>
> en sachant que
> les compteurs ne sont pas tous au même endroit, et que je souhaiterais
> dans la mesure du possible pouvoir ramener les signaux générés au
> Raspberry via du cable RJ45 Grade 3S installé dans toute la maison.
>
> De ce que j'ai pu voir, il est intéressant d'avoir un montage en pull-up
> mais il semblerait que l'isolation du raspberry par rapport à un signal
> parasite ou une surtension ne soit pas optimal.
>
> Il y a une solution à base d'optocoupleur, mais sur ce sujet, impossible
> pour moi de choisir le bon modèle en fonction de ce que j'ai mesuré en
> sortie de l'oscilloscope. La clé étant le courant minimum pour allumer
> la led. La durée de 700ms étant plutôt généreuse de ce côté.
>
> Il faudrait potentiellement pouvoir éliminer aussi les parasites
> (condensateurs ?) et quid de la longueur du cable par rapport à
> l'attenuation du signal (il faut que je refasse une mesure en sortie de
> RJ45).
>
> Par avance merci aux personnes pouvant m'aider sur cette partie
> électronique.
>
> Bien cordialement
>
> Denis Sacchet

Bonsoir,

1) Une première remarque: Vous dites mesurer 1.6V en sortie du câble.
C'est surprenant car la notice technique de votre compteur (cf. votre
lien) précise qu'il s'agit d'un contact sec, une ampoule ILS, pouvant
supporter jusqu'à 30V/200mA. Si vous mesurez 1.6V au bout des 2 m de
câble, c'est que vous alimentez le circuit Avec quoi ?

2) Les ports du GPIO du Raspberry ne sont tolérant qu'à 3.3 V. Au
dessus, il y a risque de destruction, au mieux, du port GPIO, au pire,
du Raspberry.
AMHA, la solution la moins compliquée est effectivement d'utiliser un
optocoupleur. Côté des LED (vers les compteurs), vous prenez le 5V du
Raspberry (disponible sur le même connecteur que les GPIO).
Côté transistor (vers le GPIO), vous alimentez en 3.3 V (aussi dispo sur
connecteur).
L'atténuation du signal, à cette fréquence, ne sera pas sensible (vu les
différents débits d'eau à mesurer, avec 1 impulsion pour 25 cl, on reste
dans la très basse fréquence).
La perte ohmique peut se calculer en connaissant la gauge du fil et sa
longueur mais, même en 5V, il devrait rester de quoi allumer la LED de
l'optocoupleur.

Je vous recommande d'utiliser une paire du câble, non utilisée pour
l’Ethernet. Cela vous permettra d'utiliser la prise RJ pour un usage
normal (c'est le même principe pour le PoE).

L'optocoupleur protégera votre Raspberry, y compris des surtensions
induites. Par contre, avec une impulsion de 700 ms, vous n'aurez aucun
mal à filtrer les rebonds par logiciel, en mettant une temporisation.

Sylvain





Denis Sacchet

unread,
Mar 24, 2017, 3:14:30 AM3/24/17
to
Bonjour,

merci pour votre retour rapide

> 1) Une première remarque: Vous dites mesurer 1.6V en sortie du câble.
> C'est surprenant car la notice technique de votre compteur (cf. votre
> lien) précise qu'il s'agit d'un contact sec, une ampoule ILS, pouvant
> supporter jusqu'à 30V/200mA. Si vous mesurez 1.6V au bout des 2 m de
> câble, c'est que vous alimentez le circuit Avec quoi ?

Je pensais 'naïvement' que c'était le compteur qui générait
l'électricité avec le débit de l'eau. En relisant votre question, la
tension doit provenir de l'oscilloscope du coup (je l'ai branché en
direct sur la sortie de mon BS10)

> 2) Les ports du GPIO du Raspberry ne sont tolérant qu'à 3.3 V. Au
> dessus, il y a risque de destruction, au mieux, du port GPIO, au pire,
> du Raspberry.
> AMHA, la solution la moins compliquée est effectivement d'utiliser un
> optocoupleur. Côté des LED (vers les compteurs), vous prenez le 5V du
> Raspberry (disponible sur le même connecteur que les GPIO).
> Côté transistor (vers le GPIO), vous alimentez en 3.3 V (aussi dispo sur
> connecteur).
> L'atténuation du signal, à cette fréquence, ne sera pas sensible (vu les
> différents débits d'eau à mesurer, avec 1 impulsion pour 25 cl, on reste
> dans la très basse fréquence).
> La perte ohmique peut se calculer en connaissant la gauge du fil et sa
> longueur mais, même en 5V, il devrait rester de quoi allumer la LED de
> l'optocoupleur.

Quel optocoupleur dois-je prendre ? Un "simple" 4N25 suffirait ?

Est-ce que je dois mettre des résistances, et si oui de quelles
impédances et aux quels endroits, un petit schéma me serait d'une grande
utilité :)

> Je vous recommande d'utiliser une paire du câble, non utilisée pour
> l’Ethernet. Cela vous permettra d'utiliser la prise RJ pour un usage
> normal (c'est le même principe pour le PoE).

En fait, je dois faire passer 6 compteurs + 2 signaux modbus, j'ai
installé deux câbles RJ45 dédiés à cette partie => j'utiliserai les 8
paires disponibles.

> L'optocoupleur protégera votre Raspberry, y compris des surtensions
> induites. Par contre, avec une impulsion de 700 ms, vous n'aurez aucun
> mal à filtrer les rebonds par logiciel, en mettant une temporisation.

Ce qui signifie que je n'ai pas besoin de mettre de condensateur ou de
filtre passe-haut / passe-bas ?

Encore merci de votre réponse rapide.

Bien cordialement

Denis Sacchet

Sylvain POURRE

unread,
Mar 24, 2017, 6:51:51 AM3/24/17
to

Désolé, suite à erreur de manip, j'ai répondu en direct.
Je reposte ici pour la cohérence de la discussion.


Denis Sacchet a écrit :

> .
..

> Je pensais 'naïvement' que c'était le compteur qui générait
> l'électricité avec le débit de l'eau. En relisant votre question, la
> tension doit provenir de l'oscilloscope du coup (je l'ai branché en
> direct sur la sortie de mon BS10)
>
...
>
> Quel optocoupleur dois-je prendre ? Un "simple" 4N25 suffirait ?
>
> Est-ce que je dois mettre des résistances, et si oui de quelles
> impédances et aux quels endroits, un petit schéma me serait d'une grande
> utilité
>
...
>
> En fait, je dois faire passer 6 compteurs + 2 signaux modbus, j'ai
> installé deux câbles RJ45 dédiés à cette partie => j'utiliserai les 8
> paires disponibles.
>

>
> Ce qui signifie que je n'ai pas besoin de mettre de condensateur ou de
> filtre passe-haut / passe-bas ?
>

Normalement, pour faire le test sur l'entrée "continu" de votre scope,
il faut mettre une alimentation en série dans le circuit (une simple pile).
Je suis tout de même surpris de la durée de l'impulsion.Il faudrait
vérifier si c'est l'état haut de l'impulsion. De toute manière, vous
pourrez choisir de déclencher sur le front montant ou descendant.

D'après sa data sheet, le 4N25 me semble bien adapté, surtout si vous en
avez sous la main. Sinon, n'importe quel petit optocoupleur fera
l'affaire, il n'y a pas de contrainte ni d'isolation (pas de secteur),
ni de fréquence.
Vu le peu de composant, vous pourrez monter tout cela sur une plaque à
pastilles.
Sinon, il vous reste la solution d'acheter une carte dédiée au Raspberry
comme
celle-ci:http://www.framboise314.fr/opto-pi-une-carte-pour-isoler-optiquement-le-gpio-du-raspberry-pi-sur-kickstarter/

Ce site est un forum français, dédié principalement au Raspberry, avec
de nompbreuses rubriques (domotique, interfaces, programmation ...).
Il est composé d'un web forum, adossé à un Blog. Le tout de très bonne
tenue:
http://www.framboise314.fr/
Je vous conseille de vous y inscrire, vous aurez plus de réponses
pertinentes qu'ici.


En général, on met une résistance en série pour limiter le courant dans
la diode. Le calcul est assez simple:
(Ualim - Uled) / Iled

Vous avez tous les éléments en main. Il vous suffit de mesurer la
résistance ohmique (pas la peine de parler d'impédance dans ce cas) de
votre câble et de déduire cette résistance de la résistance calculéee
ci-dessus (on n'est pas à 10%).

Le port du GPIO peut être (ou non) tiré vers la masse ou vers Vdd par
une résistance interne. Ceci se paramètre assez facilement avec une
bibliothèque bien documentée, la libwiringPi. Vous pourrez programmer en
C ou en Python et même en shell !.

Le schéma est tellement simple qu'il n'y a pas de schéma
Vous pouvez même faire les premiers essais sur une breadboard.

Encore une fois, vu la "vitesse" des signaux à traiter, le Raspberry
aura tout le temps pour filtrer les rebonds de manière logicielle . Le
principe est simple, on stocke l'état du GPIO, on temporise une poignée
de milliseconde, on relit le port.

Si vous êtes très inquiet pour votre optocoupleur, côté ligne +
compteur, vous pouvez mettre 2 Zener d'au moins 5.6 V tête-bêche (il y
a peut-être d'autres composants qui ont le même comportement).
Si vous n'avez que des Zener 5V dans votre boîte, mettez une diode en
série avec la Zener (genre 1N4004).

--
Sylvain



Benoit-Pierre DEMAINE

unread,
Mar 24, 2017, 9:28:46 AM3/24/17
to
Ce sujet a été abordé des dizaines de fois dans les forums de domotique
francophones; cherchez "rpi compteur eau", ou "arduino compteur eau", avec
quelques variantes selon l'idée du moment.

Et des centaines de fois dans des blogs.

Vous y trouverez des centaines de solutions techniques, sur des pages
abordant à la fois les aspects hard et soft.

Attention au nombre d'impulsions, il y a 1 ou 4 par littre.

Franchement, avant de venir creuser dans le présent forum, passez une
journée dans Google. Rien qu'en internet francophone il y a de la lecture
pour une semaine. Sur les sites en question, vous trouverez de 10 à 200
commentaires de gens ayant réfléchit spécifiquement sur le sujet, et en
espérant que les meilleurs aient activé la notification d'email, vous
aurez des réponses sous 2j.

Idem pour le compteur EDF, chrchez "rpi TIC". Contactez moi directement en
privé pour les détails.

Dans le présent forum Usenet, vous trouverez au mieux 2 ou 3 personnes
réellement expérimentées sur ce sujet pointu, alors que dans n'importe
quel blog ou forum dédié, vous en trouverez plusieurs dizaines.

En particulier, votre compteur est très chère; avec un peu de
débrouillardise, on s'en sors à moins de 20e par compteur, sonde incluse.
Moi aussi j'ai entre 8 et 10 compteurs à poser, et il est hors de question
de j'y dépense 500e.

> Il y a une solution à base d'optocoupleur, mais sur ce sujet, impossible
> pour moi de choisir le bon modèle en fonction de ce que j'ai mesuré en
> sortie de l'oscilloscope. La clé étant le courant minimum pour allumer la
> led. La durée de 700ms étant plutôt généreuse de ce côté.

L'impulsion normalisée fait de mémoire dans les 60ms (peut être 50). En
partant de 700, je vous certifie un fonçage dans le mur. Flemme
d'expliquer pourquoi vous avez 700; je ne dis pas que ce relevé est faux;
je dis que se baser sur cette mesure vous fera élaborer des solutions
bancales à long terme.

> Il faudrait potentiellement pouvoir éliminer aussi les parasites
> (condensateurs ?) et quid de la longueur du cable par rapport à
> l'attenuation du signal (il faut que je refasse une mesure en sortie de
> RJ45).

Pour quelqu'un qui vient de dire maitriser la partie informatique ... le
rebond de la sonde est normalisé, et figure dans la norme du sujet, ainsi
que dans la doc du compteur. Le rPi inclut un premier filtre (lié à la
fréquence d'échantillonnage du port), puis un second (dans le driver), et
vous pouvez en implémenter un 3e dans votre code (lire les specs de la
sonde pour vérifier les durées minimales des états haut et bas, j'ai
survolé la chose de très haut).

> Par avance merci aux personnes pouvant m'aider sur cette partie électronique.

Toutes les réponses à ces questions figurent dans les 5 premières réponses
de google. C'est un sujet étonnement facile à trouver dans google, en
dépit de la petite taille de la communauté qui la traite. Et je vous
promet que vous y trouverez des réponses infiniment plus pertinentes que
ce que vous diront les habitués du présent forum.

Ainsi que des adresses de fournisseurs, diverses propositions de montage,
avec les correctifs spécifiques à chaque modèle de compteur, des photo
reportages ...

--
>o_/ DEMAINE Benoît-Pierre (aka DoubleHP) http://benoit.demaine.info/
If computing were an exact science, IT engineers would'nt have work \_o<

"So all that's left, Is the proof that love's not only blind but deaf."
(FAKE TALES OF SAN FRANCISCO, Arctic Monkeys)

Denis Sacchet

unread,
Mar 24, 2017, 4:54:28 PM3/24/17
to
Bonsoir,

> Normalement, pour faire le test sur l'entrée "continu" de votre scope,
> il faut mettre une alimentation en série dans le circuit (une simple pile).
> Je suis tout de même surpris de la durée de l'impulsion.Il faudrait
> vérifier si c'est l'état haut de l'impulsion. De toute manière, vous
> pourrez choisir de déclencher sur le front montant ou descendant.

Je n'arrive pas bien à me servir de l'oscilloscope (modèle bitscope
BS10), du coup j'ai mis un ohmmètre directement à la sortie du compteur
en détection de continuité. En faisant couler l'eau relativement
doucement, les bips durent plus d'une seconde et les silences pareils,
en arrêtant l'eau, je peux également me retrouver avec l'ampoule REED
qui reste en position fermée ou position ouverte. Il semblerait
également que à débit constant, les durées du silence et du bip sont
égales.

J'en déduis que ce n'est pas vraiment une impulsion, mais plutot un
demi disque aimanté dont une rotation complète correspond à un quart de
litre et qu'il ferme l'ampoule reed la moitié de la rotation, et
l'ouvre l'autre moitié.

Je vais essayer de récupérer la datasheet complète du compteur auprès
du vendeur ou du fabricant.

> D'après sa data sheet, le 4N25 me semble bien adapté, surtout si vous en
> avez sous la main. Sinon, n'importe quel petit optocoupleur fera
> l'affaire, il n'y a pas de contrainte ni d'isolation (pas de secteur),
> ni de fréquence.
> Vu le peu de composant, vous pourrez monter tout cela sur une plaque à
> pastilles.
> Sinon, il vous reste la solution d'acheter une carte dédiée au Raspberry
> comme
> celle-ci:http://www.framboise314.fr/opto-pi-une-carte-pour-isoler-optiquement-le-gpio-du-raspberry-pi-sur-kickstarter/
>
>
> Ce site est un forum français, dédié principalement au Raspberry, avec
> de nompbreuses rubriques (domotique, interfaces, programmation ...).
> Il est composé d'un web forum, adossé à un Blog. Le tout de très bonne
> tenue:
> http://www.framboise314.fr/
> Je vous conseille de vous y inscrire, vous aurez plus de réponses
> pertinentes qu'ici.

Merci du conseil.

> En général, on met une résistance en série pour limiter le courant dans
> la diode. Le calcul est assez simple:
> (Ualim - Uled) / Iled
>
> Vous avez tous les éléments en main. Il vous suffit de mesurer la
> résistance ohmique (pas la peine de parler d'impédance dans ce cas) de
> votre câble et de déduire cette résistance de la résistance calculéee
> ci-dessus (on n'est pas à 10%).
>
> Le port du GPIO peut être (ou non) tiré vers la masse ou vers Vdd par
> une résistance interne. Ceci se paramètre assez facilement avec une
> bibliothèque bien documentée, la libwiringPi. Vous pourrez programmer en
> C ou en Python et même en shell !.
>
> Le schéma est tellement simple qu'il n'y a pas de schéma
> Vous pouvez même faire les premiers essais sur une breadboard.
>
> Encore une fois, vu la "vitesse" des signaux à traiter, le Raspberry
> aura tout le temps pour filtrer les rebonds de manière logicielle . Le
> principe est simple, on stocke l'état du GPIO, on temporise une poignée
> de milliseconde, on relit le port.
>
> Si vous êtes très inquiet pour votre optocoupleur, côté ligne +
> compteur, vous pouvez mettre 2 Zener d'au moins 5.6 V tête-bêche (il y
> a peut-être d'autres composants qui ont le même comportement).
> Si vous n'avez que des Zener 5V dans votre boîte, mettez une diode en
> série avec la Zener (genre 1N4004).

Pour cette partie, je n'en suis pas encore là du coup, mais je note les
conseils. J'ai déjà fait plusieurs montage sur breadboard, j'ai aussi
pas mal échangé sur le forum officiel raspberry :

https://www.raspberrypi.org/forums/viewtopic.php?f=65&t=123344

Je pensais avoir quelque chose de fonctionnel, mais au final les
valeurs relevées n'étaient pas fiables, d'où mes questions et le fait
que je reprenne tout à zéro.

Encore merci pour votre patience et vos explications.

Bien cordialement

Denis Sacchet

Sylvain POURRE

unread,
Mar 25, 2017, 7:45:18 AM3/25/17
to
Denis Sacchet a écrit :

> Je n'arrive pas bien à me servir de l'oscilloscope (modèle bitscope
> BS10), du coup j'ai mis un ohmmètre directement à la sortie du compteur
> en détection de continuité. En faisant couler l'eau relativement
> doucement, les bips durent plus d'une seconde et les silences pareils,
> en arrêtant l'eau, je peux également me retrouver avec l'ampoule REED
> qui reste en position fermée ou position ouverte. Il semblerait
> également que à débit constant, les durées du silence et du bip sont
> égales.
>
> J'en déduis que ce n'est pas vraiment une impulsion, mais plutot un
> demi disque aimanté dont une rotation complète correspond à un quart de
> litre et qu'il ferme l'ampoule reed la moitié de la rotation, et
> l'ouvre l'autre moitié.
>
> Je vais essayer de récupérer la datasheet complète du compteur auprès
> du vendeur ou du fabricant.
>

>> Je vous conseille de vous y inscrire, vous aurez plus de réponses
>> pertinentes qu'ici.
>
> Merci du conseil.
>
>>
>
> Je pensais avoir quelque chose de fonctionnel, mais au final les
> valeurs relevées n'étaient pas fiables, d'où mes questions et le fait
> que je reprenne tout à zéro.
>
> Encore merci pour votre patience et vos explications.
>
> Bien cordialement

Bonjour Denis,

En attendant de vous retrouver sur le forum, je vous invite à vous
pencher sur les caractéristiques de cette "impulsion", en particulier
sur le temps de monté (et de descente).

S'il est trop mauvais, il faudra envisager une remise en forme par un
trigger, genre bascule de
Schmitt:https://fr.wikipedia.org/wiki/Bascule_de_Schmitt qui pourra
aussi "nettoyer" les rebonds car, d'après la doc, le contact est un ILS.

Pour le bit scope, désolé de ne pouvoir vous aider mais je n'ai été
formé qu'à l'emploi de la bite et du couteau ;-))

A+ sur le forum, rubriques domotique ou interfacs, après un court
passage en "présentation".

A+

--
Sylvain


Denis Sacchet

unread,
Mar 28, 2017, 9:24:46 AM3/28/17
to
Bonjour,

> En attendant de vous retrouver sur le forum, je vous invite à vous
> pencher sur les caractéristiques de cette "impulsion", en particulier
> sur le temps de monté (et de descente).
>
> S'il est trop mauvais, il faudra envisager une remise en forme par un
> trigger, genre bascule de
> Schmitt:https://fr.wikipedia.org/wiki/Bascule_de_Schmitt qui pourra
> aussi "nettoyer" les rebonds car, d'après la doc, le contact est un ILS.

J'ai effectivement eu le même conseil sur le forum "Easydomoticz" :

http://easydomoticz.com/forum/viewtopic.php?f=17&t=1737&start=60

Je vais partir sur le montage proposé, il faut juste que j'arrive à
acheter les bons composants. Je vous ferai un retour dès réception et test.

> Pour le bit scope, désolé de ne pouvoir vous aider mais je n'ai été
> formé qu'à l'emploi de la bite et du couteau ;-))

Pas de souci.

> A+ sur le forum, rubriques domotique ou interfacs, après un court
> passage en "présentation".

Vous parlez de Framboise314 ?

Bien cordialement

Denis Sacchet

Sylvain POURRE

unread,
Mar 31, 2017, 1:21:54 PM3/31/17
to
Denis Sacchet a écrit :

>
> J'ai effectivement eu le même conseil sur le forum "Easydomoticz" :
>
> http://easydomoticz.com/forum/viewtopic.php?f=17&t=1737&start=60
>
> Je vais partir sur le montage proposé, il faut juste que j'arrive à
> acheter les bons composants. Je vous ferai un retour dès réception et test.
>

>
>> A+ sur le forum, rubriques domotique ou interfacs, après un court
>> passage en "présentation".
>
> Vous parlez de Framboise314 ?
>
> Bien cordialement

Comme déjà signalé, le trigger a une double fonction:
- Nettoyer le signal,des éventuels rebonds qui pourraient fausser la
lecture.
-) remettre le signal original en forme, car il ne semble pas très raide
et pourrait, tel que, provoquer des problèmes de niveau logique indéterminé.
Vu la fréquence des signaux (facile à calculer en connaissant le débit
max de vos installations à raison d'une impulsion pour 1/4 de l ), ceci
ne devrait pas poser de problème pour trouver la bonne constante de
temps (RC).

Le fait que ma réponse recoupe celle donnée par un autre interlocuteur,
même sans constituer une preuve absolue, montre que l'analyse du
problème n'est pas trop "déconnante".

Oui, c'est bien à ce forum que je pense. Vous y trouveriez certainement
plus de réponses qu'ici.

--
Sylvain

0 new messages