Fabrication d’un Capteur de niveau d’eau, limnigraphe avec transmission sms et internet
Je vous propose un article un peu particulier. Il s’éloigne de la thématique de mon site internet, mais j’avais envie de partager avec vous mes expériences en bricolage. Nous allons tenter de concevoir un limnigraphe électronique autonome qui permet de transmettre à heure fixe, sur le réseau internet, la hauteur d’eau d’une rivière . Bien que j’ai initialement bricolé ce dispositif pour suivre le remplissage d’une cuve dans le cadre d’une serre agricole, je l’ai ensuite testé durant plusieurs mois dans le canyon des Anelles et cela fonctionne merveilleusement bien ! Il serait intéressant d’installer de tels dispositifs dans les canyons de notre département, et notamment au Llech. Mais la maintenance, le cout et l’entretien à long terme, ne m’enchantent pas vraiment.
Les contraintes du dispositif
Les rivières et canyons se situent la plupart du temps sur des zones reculées et en montagne. Il n’y a pas de prise électrique à disposition ou encore de réseau 3g/4g. Le milieu est humide et l’électronique n’apprécie pas la condensation. Les rivières connaissent aussi des crues périodiques qui déracinent les arbres et les projettent. Des roches peuvent être propulsées sur tout le lit de la rivière arrachant tout sur leur passage. De plus je m’autorise une limite de budget de 300 Euros. Notre appareil devra par conséquent s’adapter à toutes ces contraintes.
Les possibilités techniques.
Tout d’abord il nous faut un capteur de niveau d’eau ou bien un dispositif capable de nous indiquer sous forme numérique la hauteur de l’eau. C’est la pièce maîtresse de la machine ! Nous devrons raccorder le capteur à un boitier de contrôle et de transmission de l’information.
Ce boitier pourrait alors fonctionner de 2 façons :
- - Soit il attend une demande, puis effectue une mesure et répond à la demande.
- - Soit il fonctionne en autonomie totale. Le dispositif envoie de lui-même les hauteurs d’eau à intervals réguliers.
La première solution est intéressante. Mais aussi la plus lourde. Elle sous-entend la création d’un serveur embarqué de type Raspberry allumé 24h/24 avec une problématique énergétique et de stabilité du réseau non négligeable.
La deuxième solution, c’est celle que j’ai choisi : Le dispositif est par défaut éteint. Il s’allume à intervals réguliers. Il reste allumé quelques dizaines de secondes, juste le temps de prendre une mesure puis de la transmettre sur internet, pour de nouveau s’éteindre.
Choix du matériel
Mesure de la hauteur d’eau
Il n’y a que 3 possibilités :
- - Bricoler un flotteur à l’intérieur d’un tube métallique percé et fixé dans le courant. Le flotteur vient actionner des boutons on/off.
- - Placer un capteur de pression d’eau afin de mesurer la pression d’eau entre le fond et la surface.
- - Fixer un capteur de distance au-dessus de la surface et mesurer la distance entre ce dernier et l’eau.
Les 3 possibilités sont faisables, mais la première ne résiste pas aux chocs mécaniques. Les deux suivantes sont des systèmes ayant fait leur preuve en milieu naturel. En effet, ils sont utilisés pour la mesure des cuves industrielles, des barrages, des retenues d’eau, des forages, des nappes phréatiques et aussi par vigicrues. Parfait, ces capteurs professionnels existent déjà ! le seul hic : c’est le prix. Environ 1 000E par pièce. C’est hors budget pour la plupart d’entre nous !
Pour les capteurs de distance, on en trouve à tous les prix : de 2 euros à plusieurs milliers d’euros. Nous disposons de 3 types de capteurs : infrarouge, laser et ultrason. La technologie laser est la plus précise. Mais n’oubliez pas que la lumière traverse l’eau. Vous devrez donc mesurer la vitesse de déplacement de la lumière dans l’eau. Cette solution me semble compliquée; de plus, la nature de l’eau peut varier (limpide, sale, boueuse).
Pour l’ultrason il y a aussi un souci : les champs électromagnétiques se déplacent dans l’air à une vitesse différente en fonction de la fluctuation de la pression atmosphérique, de l’humidité et surtout de la température ambiante, ce qui fausse totalement les mesures dès qu’on dépasse la distance de 1 mètre. On ne peut donc pas choisir n’importe quel capteur. Ceux qui sont capables d’autoréguler leurs données en fonction de la température et de l’humidité coutent généralement plus de 1000 E. Vous pouvez aussi acheter un capteur ultrason bon marché et réguler vous-même les mesures avec un capteur de températures.
Personnellement je pense avoir trouvé l’un des rares fabriquants de capteurs ultrason sur le marché mondial qui propose des produits combinant tous les avantages à bas couts (étanchéité, régulation de la température, précision, portée importante). Le MB7389 du fabriquant américain maxbotix semble convenir à toutes mes exigences. Voici ces principales caractéristiques :
- - Etanche
- - Porté 5 mètres
- - Précision 1mm
- - Autorégulation des mesures en fonction de la température
- - Traitement électronique supprimant le bruit et renvoyant uniquement la surface la plus importante. En d’autre terme s’il y a un rocher ou des parois dans le champ du capteur : ils ne seront pas pris en compte.
Leur prix est de 96$ pour le moment, mais cela risque de grimper dans les prochaines années.
La suite de mon tuto, se basera sur le MB7389. Mais rien ne vous empêche d’en choisir un autre. Maxbotix propose 2/3 capteurs similaires avec des portées plus grandes mais avec un traitement électronique moins bon. Il vous incombe de choisir celui qui est le plus adapté à vos besoins. De plus ce système nous impose de fixer le capteur au-dessus de l’eau (par exemple sur des parois rocheuses). Vous serez donc peut-être contraint d’utiliser un capteur de pression d’eau pour des raisons logistiques ou par discrétion, afin de rendre entièrement invisible votre appareil.
Cerveau et contrôle électronique
Notre appareil a besoin de réaliser une tache extrêmement simple : il n’est donc pas question d’utiliser un micro-ordinateur de type Raspberry qui serait trop gourmand en énergie. Nous partirons donc sur un microcontrôleur de type Arduino et choisirons le modèle de prototypage le plus célèbre des écoles de robotique: Le Uno. Pour ceux qui ne le savent pas, les Arduino comme pour presque tous les microcontrôleurs se pilotent avec le langage C++. C’est un langage de programmation dit de « bas niveau ». On l’utilise en trading, dans les jeux vidéo et autres programmes exigeants pour sa rapidité exceptionnelle mais aussi en électronique embarqué pour économiser au maximum les faibles ressources disponibles, notamment en mémoires vives. Il est vrai que c’est l’un des langages les plus difficiles à appréhender, mais ne vous inquiétez pas, quelques tutos sur youtube, vous permettront de vous débrouiller convenablement.
Transmission internet
L’absence de 3g et la contrainte budgétaire ne nous permettant pas de passer par satellite, nous sommes contraints d’utiliser le réseau GSM. Notre arduino devra donc envoyer un texto. Ce dernier sera récupéré à l’aide d’un prestataire de service ou encore grâce à un téléphone qui, combiné avec une application comme « sms gateway », vous permettra de transmettre le contenu de votre sms sur internet, via email ou encore protocole http, ftp. Il existe des dizaines de cartes électroniques / shild plus ou moins prêt à l’emploi qui permettent d’insérer et prendre en charge les cartes sim. Vous pouvez utiliser le child sms officiel de Arduino mais il y aura un cout dépassant les 100e. Pour mon tuto j’ai fait confiance à un discret fabriquant chinois Tinysine et sa carte exclusivement destinée aux Uno : « Arduino GSM/GPRS Shield » a 24$. (Attention de ne pas vous faire avoir par la douane pour vos importations)
Alimentation électrique
Nous alimenterons notre système avec une batterie classique. La batterie sera reliée à un minuteur qui permettra de mettre en tension l’arduino à un interval régulier. Les batteries de type lithium semblent mieux résister à l’autodécharge que les alcalines. C’ est important pour l’utilisation que nous allons en faire. Le Uno fonctionne avec un courant compris entre 6 et 20v. Une batterie en 20 v est élévée et pourrait détériorer prématurément les condensateurs du Uno. A contrario, avec une alimentation de 6v : votre Uno s’arrêtera de fonctionner à la moindre faiblesse. Soyez donc bien réfléchi sur le voltage ! Pour mon tuto je ne mets pas de panneau solaire. Mais c’est une option fort intéressante, si votre balise est destinée à être placée dans une zone ensoleillée.
Boite et protection
Il vous faut une boite étanche normée ip66. N’oubliez pas que plus votre boite et grande, plus vous allez favoriser la condensation. Vous pouvez absorber l’humidité contenue dans la boite à l’aide de sachets de silice. Vous pouvez appliquer un vernis de protection sur l’électronique avec un aérosol spécial. Il y a aussi la méthode radicale qui consiste à couler de la résine dans votre boite garantissant une étanchéité à toute épreuve (les fabricants de luminaires pour piscines le font bien !).
Montage et assemblage du boitier
Câblage et utilisation du capteur
Le câblage du MB7389 est remarquablement simple (Attention, il y aura peut-être besoin d’une résistance de tirage pour d’autres modèles de chez Maxbotix). Le capteur est en technologie 4 fils (alimentation positif, alimentation négatif, fils de demande, et fils de réception de la mesure). Pour plus de fiabilité je vous conseille de souder les fils sur un shield fait maison. Le positif se branche sur le 5v, le négatif sur le gnd, les 2 fils de datas sur n’importe lequel des ports numériques. Il faudra préciser les numéros des ports choisis dans 2 constantes au sein de votre code.
Utilisation du module GSM
Le module s’enfiche directement sur la Uno. La carte sim se clips à l’arrière du shild.
Améliorations possibles de notre balise
Nous pourrions miniaturiser la balise. Pour cela nous pourrions troquer notre Uno pour une micro. Utiliser une puce gsm de 2cm sur 2. Utiliser une antenne de smartphone (30*5*1mm). Prendre une batterie de la taille d’une pile de 9v. Pourquoi ne pas diminuer drastiquement la consommation et le cout du prototype en construisant notre circuit électronique sur mesure en partant juste d’un processeur et d’une puce GSM. Nous voilà avec une boite de 6*6 cm qui ne consomme rien. Il manque juste un petit ecran LCD pour les réglages, une cellule photovoltaïque de 6 cm et c’est commercialisable !
Et, cet article arrive à son terme. Mon tuto ne se veut pas complet. Il vous donne juste des idées afin de construire les vôtres. J’aurais pu vous fournir plus de précisions et un code source final. Mais il est certain que vos besoins ne sont pas les même que les miens. Il est aussi possible que la technologie ou que le matériel que je vous montre ai changé, soit obsolète ou n’existe plus. Bon courage pour vos projets de robotique !!