Comment détecter les fuites d'un système d'arrosage

Comment détecter les fuites d'un système d'arrosage

Tiré de Wikimedia Commons, par SwirlyLand. License Creative Commons Attribution-Share Alike 3.0 UnportedLes systèmes d'irrigation automatique sont très pratiques pour éviter la corvée d'arrosage au jardin, mais ils peuvent parfois provoquer des catastrophes. Avec le temps et les changements de température, les tuyaux ont tendance à se détendre et parfois à se séparer à l'endroit des joints, causant des inondations locales qui peuvent être dévastatrices dans le potager par exemple. Voyons donc comment les détecter au plus vite...


Pour détecter les ruptures de liaison, on va utiliser le fait que pour distribuer l'eau jusqu'au bout des tuyaux d'arrosage, la pression d'eau est volontairement assez haute, et c'est les orifices et les gicleurs tout au long du tuyau qui limitent le débit. Par conséquent, lorsqu'une fuite d'eau se produit, on assiste à une importante hausse du débit d'eau à la source, car l'écoulement n'est plus limité. Il suffit donc de poser un débitmètre en amont du circuit, juste après la vanne de distribution d'eau.


Un débitmètre au pas G3/4, acheté pour 15$  Le même, avec des tubes d'extension
Débitmètre avec embouts G3/4



La plupart des débitmètres fonctionnent sur la base d'un capteur à effet Hall, et envoient une impulsion à chaque unité d'eau mesurée. Le meilleur module Yoctopuce pour interfacer un débitmètre est donc le Yocto-PWM-Rx. Il peut mesurer et enregistrer sur sa mémoire flash à tout moment la fréquence des impulsions, donc le débit d'eau. Ceci pourra être utilisé pour lancer une alarme en cas de dépassement du débit attendu. En prime, il est aussi capable de sommer le nombre d'impulsions reçues, donc d'estimer le volume total d'eau distribué sur le secteur.

Branchements


Le débitmètre que nous avons choisi fonctionne avec une tension dès 4.5V. Le plus simple est donc de l'alimenter directement en partant du de l'alimentation 5V du Yocto-PWM-Rx. Notez que comme le Yocto-PWM-Rx est un module isolé, on aurait tout aussi pu le brancher sur une alimentation externe sans risque, si nécessaire.

Connection du débitmètre au Yocto-PWM-Rx
Connection du débitmètre au Yocto-PWM-Rx



Si on veut lire le débitmètre par USB, il n'y a pas besoin de quoi que ce soit d'autre. Mais comme il n'est pas très commode d'utiliser de l'USB dans le jardin, nous avons choisi d'y ajouter la connectivité Wi-Fi, avec un YoctoHub-Wireless-g auquel nous connectons directement le Yocto-PWM-Rx:

Débitmètre connecté au réseau Wi-Fi
Débitmètre connecté au réseau Wi-Fi



Dernière petite difficulté: le YoctoHub-Wireless-g a besoin d'être alimenté en 5V. On pourrait mettre une petite alimentation USB et tirer un fil électrique jusqu'au YoctoHub, mais ça rajoute un peu de travail. La solution que nous vous proposons est d'alimenter le système directement depuis le 24VAC qui alimente la vanne concernée, juste à côté. En effet lorsque la vanne est fermée, il n'est pas très utile de mesurer le débit. Au passage nous en profiterons pour mettre un Yocto-LatchedRelay en série sur l'alimentation de la vanne, de sorte à pouvoir la couper dans le cas où une fuite est détectée:

Schéma de l'installation complète
Schéma de l'installation complète



Convertisseur 24VAC vers 5VDC


Nous n'avons pas trouvé chez nos fournisseurs habituels de solution compacte prête à l'emploi pour convertir le 24VAC en 5VDC. Nous vous proposons donc une solution maison, simple et efficace, faite en utilisant seulement quatre composants bons marchés que vous pourrez acheter facilement sur internet et souder ensemble:

Notez que tous les composants en entrée doivent être prévus pour supporter 40V, car 24VAC RMS correspond à 34V crête-à-crête, et il faut encore prévoir 10% de marge. Voici le schéma de connection, et une façon de le réaliser ce convertisseur à la portée de chacun:

Convertisseur 24VAC vers 5VDC
Convertisseur 24VAC vers 5VDC


Convertisseur 24VAC vers 5VDC, vu de dessous  Convertisseur 24VAC vers 5VDC, vu de dessus
Réalisation du convertisseur 24VAC vers 5VDC sans circuit imprimé



Exemple de réalisation


Une fois que vous avez toutes les pièces, il ne reste plus qu'à les mettre ensemble dans une boîte protectrice. Les installations d'arrosage offrent souvent des petites douches surprises, donc nous avons préféré mettre le tout dans une boîte étanche. Nous utilisons en général des boîtes métalliques, non pour la solidité mais pour l'avantage qu'elles ont de dissiper naturellement la chaleur par leurs parois. Voici donc le résultat:

Réalisation débitmètre sans fil alimenté en 24VAC
Réalisation débitmètre sans fil alimenté en 24VAC



Configuration et premiers tests


Avant de brancher votre YoctoHub-Wireless-g à son alimentation 24VAC autonome, prenez-soin de le brancher par USB sur un PC et d'utiliser le VirtualHub pour configurer le réseau sans fil. Prenez note de son adresse IP. Vérifiez aussi que le Yocto-PWM-Rx est bien vu par votre YoctoHub. Vous devriez ensuite pouvoir vous connecter avec un navigateur web directement sur le YoctoHub-Wireless-g, et de là configurer le Yocto-PWM-Rx pour que la valeur principale signalée soit la fréquence des impulsions.

Une fois raccordé au circuit d'eau, la manière la plus simple de tester l'installation est d'utiliser l'application Yocto-Visualization: si vous ajoutez l'adresse IP de votre YoctoHub dans la configuration réseau, vous pourrez rapidement afficher dans un graphique la fréquence moyenne et maximale observées des impulsions émises par le débitmètre. Voici par exemple ce qu'on obtient dans un premier temps quand tout va bien, puis lorsqu'une fuite est créée en faisant volontairement sauter un bouchon en fin de tuyau:

Débit normal, puis après rupture d'un bouchon
Débit normal, puis après rupture d'un bouchon


Cet outil est pratique pour les tests, mais vous pourrez aussi continuer à l'utiliser sur le long terme: même si le programme est arrêté, le module Yoctopuce continuera d'enregistrer les mesures dans sa mémoire flash interne, et vous pourrez donc les visualiser avec l'application dès qu'il est sous tension.

Programmation de l'arrêt automatique de la vanne


Dernière étape, nous allons raccorder le système à un petit programme qui pourra nous avertir par e-mail et/ou couper la vanne en cas de problème. Une des possibilités très flexible consiste à configurer dans le YoctoHub un callback Websocket vers un serveur node.js qui contrôlera l'installation. Le serveur pourra surveiller constamment le débit dès que le système sera sous tension, et piloter le relais si nécessaire. Il pourra aussi récupérer les mesures de débit pour pouvoir les consulter hors ligne.

Nous allons prendre comme base l'exemple de serveur WebSocket présenté il y a quelques semaines sur ce blog. Vous y trouverez les explications détaillées, mais en gros ce serveur offre un point d'entrée WebSocket pour permettre la connection du YoctoHub, et un point d'entrée HTTP standard pour que l'utilisateur puisse contrôler l'installation à l'aide d'un simple navigateur Web.

A la connexion du YoctoHub, on va rechercher directement le compteur d'impulsions et le relais qui bloque la vanne par un nom logique qu'on leur a attribué avec le VirtualHub. Comme cela, on peut faire un traitement différencié par vanne, si l'on a besoin de gérer plusieurs circuits d'arrosage:

await yctx.UpdateDeviceList(errmsg);
flow1 = YPwmInput.FindPwmInputInContext(yctx, 'flow1');
flow1.vane = YRelay.FindRelayInContext(yctx, 'relay1');
await flow1.set_reportFrequency("30/m");
await flow1.registerTimedReportCallback(flowCallback);


Toutes les deux secondes, une nouvelle valeur est transmise à la fonction flowCallback. On y enregistre la mesure et on ferme la vanne en cas de valeurs hors limite:

async function flowCallback(flowSensor, measure)
{
    // enregistre la dernière mesure en mémoire
    let utcTime = await measure.get_endTimeUTC();
    let freqAvg = await measure.get_averageValue();
    let freqMax = await measure.get_maxValue();
    Data.push({ "time": utcTime, "avg" : freqAvg, "max": freqMax });
    // vide périodiquement les mesures les plus anciennes
    if(Data.size > 10000) {
        Data = Data.slice(1000);
    }
    // ferme la vanne en cas de dépassement
    if(freqAvg > 30.0) {
        flowSensor.vane.set_state(YRelay.STATE_B);
    }
}


Pour la visualisation avec l'interface HTTP, nous avons choisi d'utiliser la librairie HighStock, qui est très pratique et efficace. Le code complet de l'interface HTML est un peu touffu, nous ne le publierons donc pas dans cet article, mais vous pourrez trouver le programme complet sur GitHub. Voici le résultat final:

Interface web de contrôle de l'arrosage
Interface web de contrôle de l'arrosage


Conclusion


Il y a bien sûr mille variantes possible de ce projet en fonction des jardins, des préférences de programmations et des envies. Vous pourriez par exemple aussi mettre un capteur d'humidité dans le sol et couper la vanne aussi lorsque qu'une irrigation n'est pas nécessaire... Et on fond, avez-vous vraiment encore besoin de ce vieux programmateur d'arrosage qui n'a même pas de prise réseau?

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.