Interfacer un compteur d'eau

Interfacer un compteur d'eau

Récemment, le support Yoctopuce a reçu plusieurs emails émanant de clients différents demandant notre avis sur la meilleure manière d'interfacer un compteur d'eau avec des modules Yoctopuce. Cette semaine on profite donc de l'occasion pour vous expliquer tout ça en détail. Suivez le guide...



Fonctionnement d'un compteur d'eau

Quasiment tous les compteurs d'eau destinés à un usage domestique fonctionnent de la même manière: en passant à travers le compteur, l'eau entraîne une petite turbine qui à son tour entraîne les engrenages du compteur. Certains de ces compteurs sont aussi capables de générer une impulsion à chaque fois qu'une certaine quantité d'eau les a traversé.

Un compteur d'eau à impulsions et l'ILS livré avec
Un compteur d'eau à impulsions et l'ILS livré avec


Ces impulsions sont générées l'aide d'un petit aimant, solidaire d'un des engrenages, qui tourne à proximité un interrupteur à lame souple (ILS). A chaque fois que l'aimant s'approche de l'interrupteur, ce dernier se ferme. Il se rouvre dès que l'aimant s'éloigne.

L'ILS est installé, on distingue l'aimant attaché l'aiguille des décilitres, qui fait un tour par litre.
L'ILS est installé, on distingue l'aimant attaché l'aiguille des décilitres, qui fait un tour par litre.


On peut donc mesurer la quantité d'eau qui traverse le compteur en comptant ces impulsions.

Interfaçage

Le meilleur moyen de compter des impulsions est probablement d'utiliser un Yocto-PWM-Rx. Il suffit de connecter l'ILS directement à une entrée du module, sans oublier d'utiliser le pull-up intégré du Yocto-PWM-Rx. En effet, l'ILS ne fait que fermer un contact alors que l'entrée impulsions du Yocto-PWM-Rx est conçue pour détecter des changements de tension. Le rôle du pull-up est de tirer la tension de la boucle vers 3.3V à travers une résistance intégrée au Yocto-PWM-Rx.

Connexion d'un ILS au Yocto-PWM-Rx
Connexion d'un ILS au Yocto-PWM-Rx


La même chose en vrai
La même chose en vrai


Lorsque l'interrupteur se ferme, l'entrée se retrouve directement connectée à la masse et la tension tombe alors à zéro, lorsque l'interrupteur se rouvre, la tension remonte à 3.3V.

Signaux générés par l'ILS grâce au Pull-up
Signaux générés par l'ILS grâce au Pull-up


A propos des contacts électro-mécaniques

Les interrupteurs à lames souple sont des contacts électro-mécaniques, et comme tous les interrupteur mécaniques, ils ont une vilaine tendance à rebondir lorsqu'ils se ferment. Si on regarde de très près ces impulsions l'aide d'un oscilloscope, on peut facilement observer ces rebonds.

Attention, les interrupteurs électro-mécaniques rebondissent lorsqu'ils se ferment
Attention, les interrupteurs électro-mécaniques rebondissent lorsqu'ils se ferment


Il se trouve que le Yocto-PWM-Rx est suffisamment rapide pour détecter ces rebonds et les compter comme des impulsions supplémentaires. Heureusement, il dispose d'une fonction anti-rebond (debouncing) qui permet d'ignorer toutes les impulsions qui suivent la première impulsion détectée, et ce pendant un temps donné. Une valeur typique de debouncing est de 25ms.

Conversion impulsions ⇨ volume total

Afin de calculer le volume d'eau qui traverse le compteur, il est possible de configurer le Yocto-PWM-Rx pour que sa valeur principale soit le compteur d'impulsions. Avec le dernier firmware (32442), il est même possible de lui faire appliquer une simple conversion linéaire pour changer d'unité et on peut même définir sa propre unité.

Par exemple, sachant notre compteur génère une impulsion par litre, si on veut que le Yocto-PWM-Rx donne des valeurs en mètres cube, il suffit de:

  1. Mettre le capteur en mode compteur d'impulsions (pulsecount)
  2. Définir la conversion de valeur comme [0..2000000]⇨[0..2000]
  3. Définir l'unité à "m3"
  4. Ne pas oublier de configurer le debouncing à 25ms

Configuration en mode 'compteur de m3'
Configuration en mode 'compteur de m3'


Notez que les compteurs du Yocto-PWM-Rx sont remis à zéro à chaque démarrage du module. Il est donc important que l'application qui gère le Yocto-PWM-Rx relève les compteurs régulièrement.

Conversion impulsions ⇨ débit

Autre exemple, imaginons que l'on souhaite connaître la quantité d'eau par période de temps qui traverse le compteur en m³/heure. Sachant que dans le cas de notre compteur, un signal à 1Hz =1 l/sec = 3.6 m³/h, il faut:

  1. Mettre le capteur en mode fréquence (frequency)
  2. Définir la conversion de valeur comme [0..10000] ⇨[0..36000]
  3. Définir l'unité à "m3/h"
  4. Ne pas oublier de configurer le debouncing à 25ms

Configuration en mode m3/h
Configuration en mode m3/h


A propos des conversions

Les conversions de valeurs sont effectuées par le Yocto-PWM-Rx grâce au système de calibration intégré, présent sur tous les capteurs Yoctopuce et décrit au chapitre "Programmation avancée" de la documentation de chaque capteur. C'est pourquoi, il faut absolument que l'intervalle des valeurs de départ couvre toutes les valeurs mesurées possibles. Mais il faut aussi que les deux intervalles soient inclus dans le range [-2×10ᵉ6..+2×10ᵉ6]. Vous pouvez utiliser des nombres à virgule, mais seules les 3 premières décimales seront prises en compte.

Une dernière astuce

Le Yocto-PWM-Rx dispose de deux canaux, rien de vous empêche d'utiliser les deux pour avoir par exemple un totalisateur en m³ et une mesure de débit m³/h. Pour cela, il suffit de connecter les deux entrées au même ILS et de configurer les deux fonctions PwnInput du module de la manière adéquate. Vous n'avez pas besoin de connecter la masse et le pull-up de la deuxième entrée: les deux entrées sont en masse commune et un seul pull-up suffit amplement, en mettre un deuxième serait même contre-productif.

Connexion d'un ILS aux deux entrées Yocto-PWM-Rx
Connexion d'un ILS aux deux entrées Yocto-PWM-Rx


Pour conclure, voici une petite vidéo qui montre notre compteur d'eau, interfacé avec un Yocto-PWM-Rx, en fonctionnement. L'affichage est réalisé au moyen l'application Yocto-Visualization.

  

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.