Par ces chaudes journées d'été, nous vous proposons deux sujets classiques de surveillance à distance: le contrôle de niveau d'un réservoir, et la détection des fuites d'eau ou autre liquide. Pour ces deux applications, nous allons voir comment des capteurs existants peuvent être interfacés à l'aide de modules Yoctopuce.
Contrôle de niveau
Nous avions montré dans un précédent article comment réguler le niveau d'un réservoir à l'aide d'un Yocto-RangeFinder. Le principe consistait à mesurer la distance entre le sommet du réservoir et la surface du liquide. Le projet de test décrit dans l'article est d'ailleurs toujours en service, et fonctionne parfaitement: la solution qui consistait à mouler le télémètre dans la résine ultra-transparente s'est avérée fiable et a parfaitement supporté l'hiver à l'extérieur.
La solution que nous vous proposons aujourd'hui consiste à utiliser un capteur résistif dédié à cette tâche. Nous les avons trouvés sur le site d'Adafruit, mais ils sont en réalité fabriqués par la société Milone Technologies et sont en vente sur de nombreux sites. Ils sont disponibles en différentes tailles, de 13cm à 80cm.
L'élément sensible de ce capteur est une sorte de résistance, dont la valeur varie quasi-linéairement en fonction de la hauteur immergée. Une calibration à cinq points (vide, quart, mi-plein, trois-quart, plein) est toutefois recommandée si l'on travail directement sur la sortie résistive. On peut aussi acheter le capteur directement précalibré, et monté avec une électronique qui fournit un signal en tension (0-5V) ou un signal au standard 4-20mA.
Le capteur de niveau Milone eTape, en sortie 0-5V, branché à un Yocto-0-10V-Rx
Nous vous recommandons d'utiliser la version 4-20mA: c'est toujours la plus facile à utiliser. Il suffit de deux fils entre le capteur et un Yocto-4-20mA-Rx pour alimenter le capteur et transmettre une mesure fiable.
Si vous optez pour une version 0-5V, commencez par vous vérifier qu'il s'agit effectivement de cette version: Milone annonce actuellement une rupture de stock, et celui que nous avons acheté chez Adafruit comme une version 0-5V s'est avéré au final être une bête version avec diviseur de tension (simple sortie résistive):
Le module de sortie de notre capteur n'est pas celui qu'on attendait...
Ensuite, il faudra faire un petit bricolage car le module de sortie 0-5V du capteur eTape ne peut être alimenté qu'en 5V. Or la sortie d'alimentation du Yocto-0-10V-Rx fournit du 23V. Il faut donc prélever le 5V directement sur le bus USB, comme nous l'avions déjà fait dans un article précédent pour interfacer une sonde pitot:
Schéma de raccordement en prélevant le 5V du bus USB
Et si vous avez comme nous une version résistive, le plus simple est d'utiliser un module Yocto-MaxiThermistor ou Yocto-Thermistor-C, puisque ce capteur a un fonctionnement similaire à un thermistor. Cela permet d'utiliser le même mécanisme de table de conversion de résistance à température, mais pour convertir de résistance à hauteur de liquide. Vous pouvez ainsi entrer le nombre de points de calibration que vous désirez dans la table de configuration du module, et le module fera automatiquement l'interpolation entre les points fournis.
Le capteur de niveau Milone eTape, en sortie résistive, branché à un Yocto-Thermistor-C
Au final, à part ce problème de module de sortie incorrect, ces capteurs marchent plutôt bien. Le seul défaut de cette technique est la limitation de la profondeur possible, puisque les capteurs les plus longs font 80cm. Au delà, il y a une autre technique presque sans limite pour mesurer la hauteur de liquide: un capteur de pression au fond de la cuve. A ce jour, on ne peut vous proposer que d'utiliser un capteur de pression externe avec une sortie 4-20mA par exemple, mais il n'est pas exclus que nous puissions vous proposer un capteur natif Yoctopuce d'ici quelques temps...
Détection de fuites d'eau
On pourrait imaginer que la détection d'une fuite d'eau puisse se faire par une simple mesure résistive entre deux fils. Ça marche un peu, mais c'est pas très fiable comme méthode, donc en général pour les applications sérieuses on utilise plutôt un détecteur basé sur une technique optique.
Il existe des capteurs utilisant un papier de détection, très sensibles mais pour lesquels le papier doit en général être changé après chaque détection positive. Il existe aussi des capteurs sans papier, basés typiquement sur le même principe que notre détecteur de pluie. Nous avons fait nos tests avec un petit capteur optique de ce type, acheté chez DigiKey:
Notre détecteur de fuites d'eau, raccordé à un Yocto-0-10V-Rx
Ce genre de détecteur a une sortie binaire: fuite détectée, oui ou non. Les capteurs industriels avec des sorties binaire utilisent en général une sortie de type PNP ou NPN. Nous vous avions déjà montré dans un précédent article comment connecter des capteurs PNP et NPN à des modules Yoctopuce, mais nous vous proposons aujourd'hui une petite variante. En effet, ce capteur en particulier a besoin d'une alimentation entre 12 à 24V. Si on voulait l'utiliser avec un Yocto-IO, il faudrait donc utiliser une alimentation externe. Pour éviter cela, nous avons utilisé un Yocto-0-10V-Rx, qui dispose d'une sortie 23V produite à partir du bus USB, et ajouté un petit pont diviseur pour convertir notre sortie PNP en sortie 0-10V:
Schéma de raccordement du capteur PNP vers un Yocto-0-10V-Rx
Et voilà le résultat: la détection optique marche parfaitement, même pour des fines traces d'eau sur une surface de couleur irrégulière
Test de notre détecteur de fuite