Aujourd’hui je vais vous présenter la mise en place d’un capteur de niveau pour relever le niveau de ma cuve d’eau enterrée. Nous verrons uniquement l’aspect matériel, toute la partie code et mise en place dans Domogik fera l’objet d’un prochain article.
Contexte

Ma cuve est située en façade de ma maison. J’ai une trappe d’accès en béton armé (façon puisard) pour y accéder.
J’avais déjà une gaine vide (trait bleu) allant de mon tableau électrique jusqu’au niveau de mes compteurs (qui correspondent en postion à un des angles du parking). La boîte au lettre est située au niveau des compteurs. De même, le compteur d’eau est tout proche.
L’existence de la gaine me permettait d’emmener à la fois du courant et un cable réseau afin d’alimenter un montage. Toutefois emmener à l’extérieur un cable réseau connecté au LAN local présente un risque d’intrusion non négligeable.
Il n’existe aucune gaine avec une sortie proche de la cuve. Donc soit je profitais de la gaine bleue, soit je prolongeais la gaine bleue afin d’ammener le montage final au niveau de la cuve (gaine jaune).
A ce jour je voulais en priorité surveiller le niveau d’eau de ma cuve. Toutefois, j’envisage de compléter le montage avec de futures fonctionnalités : relévé de la température extérieure, détecteur de présence, détection du passage du facteur, relevé de la luminosité, relevé du compteur d’eau, etc… Tous ces points m’ont incité à installer mon montage au niveau des compteurs. Pour réaliser tout ceci, un Arduno était le candidat idéal.
Restait la problématique de l’envoi des données. Plusieurs solutions s’offraient à moi :
- Le shield ethernet : il implique le problème de sécurité éviqué plus haut.
- L’envoi par onde radio sur la bande des 433MHz (comme les technologies gérées par le Rfxcom). Cette solution est peu chère mais ne me plaisait pas : ayant déjà un Rfxcom, il m’aurait fallu soit bidouiller en simulant un device de type connu par le Rfxcom, soit me créer un récepteur approprié, sans compter un plugin pour écouter ce récepteur et émettre en xPL sur le LAN
- Le Xbee. Les puces de série 1 permettent une communication en mode série (il est même possible d’avoir plusieurs montages émettant en même temps et chaque puce reçoit les messages des autres puces. Un plugin pour faire passerelle xPL série=>UDP avait déjà été initié (mais jamais testé/fini), c’était donc l’occasion de finir ce point. D’un point de vue coût, le Xbee peut coûter cher si on prend toutes les options (nous détaillerons plus tard) mais ce choix reste quand même intéressant.
Pour finir, j’ai choisi de relever le niveau de l’eau avec un capteur à ultra sons.
Le matériel
Nous allons avoir besoin du côté du serveur :
- Un Xbee explorer (23€)
- Une puce Xbee série 1 (20€)
Cet ensemble pourra être utilisé quelque soit le nombre de capteur Xbee que vous réaliserez, le prix reste donc intéressant.
Du côté du capteur, j’ai pris :
- Un Arduino Uno (24€)
- Un shield Xbee (17€)
- Une puce Xbee série 1 (20€)
- Un capteur à ultra sons HC-SR04 (8€ à HK). J’ai choisi cette référence car il est simple à mettre en oeuvre.
On a donc un coût de 69€ pour le capteur (sans compter les connectiques). Celà semble cher au premier abord! Toutefois, il ne faut pas perdre de vue que je grefferais d’autres capteurs dessus par la suite, ce qui réduira le coût par fonctionnalité, que les prix que j’indique sont ceux d’un magasin d’électronique grand public français (il est possible de trouver bien moins cher sur ebay) et que j’ai choisi l’option « luxe » : le shield Xbee n’est pas indispensable et avec un fer à souder, un régulateur de tension ou un pont diviseur et quelques composants, on peut se passer du shield Xbee.
Côté alimentation, j’ai réutilisé l’alimentation Rail DIN 12V/4A que j’avais achetée pour un montage précédant. Elle est plus que suffisante pour alimenter plusieurs montages dont un gérant un ruban de leds. Une alimentation de ce type coûte assez cher (entre 30 et 60€) mais permet une intégration propre dans un tableau électrique. Il est toutefois possible de recycler une ancienne alimentation pour peu qu’elle respecte les tensions en ampérage supportés par l’arduino.
En connectique, j’ai choisi d’alimenter l’arduino via un cable réseau. De la même manière le capteur à ultra sons présent dans la cuve est relié à l’arduino via un second cable réseau. Ces 2 cables ne sont en aucune manière connectés au LAN : ils servent juste à transporter du courant (arduino) et des niveaux logiques (capteur).
J’ai donc eu besoin de
- Un cable réseau d’environ 14 mètres entre l’arduino et le capteur à ultra sons.
- Un cable réseau d’environ 12 mètres entre le tableau électrique et l’arduino.
- Quatre prises RJ45 femelles pour réaliser les adaptateurs
- Une prise mâle d’alimentation de 2.1mm
En divers :
- Un tableau électrique pour commencer mon tableau électrique dédié à la domotique.
- Un boitier étanche de taille moyenne pour héberger l’arduino à l’extérieur.
- Un petit boitier étanche pour y mettre le capteur à ultra sons.
- Un disjoncteur 16A pour pouvoir couper le tableau domotique (tableau qui est indirectement déjà lié à un différentiel).
- Quelques borniers, fils et une plaque de circuit imprimé pour faire un adaptateur 8 borniersRJ45 femelle.
Les adaptateurs
8 borniersRJ45 femelle
Cet adaptateur servira à envoyer le courant sortant de l’alimentation 12V dans un cable RJ45. Les images parlent pour elles mêmes :

RJ45 femellefiche mâle d’alimentation pour arduino
Cet adaptateur connecte 2 fils du cable RJ45 au jack d’alimentation :

Adaptateur 4 brochesRJ45 femelle
Ici j’ai simplement branché les cables 4 broches fournis avec les capteurs ultra sons (ayant acheté 4 capteurs, j’avais 4 cables et j’ai donc pu en vampiriser 2). Du côté du capteur ultra sons, il suffira de le brancher directement sur un cable 4 broches et du côté de l’arduino, il suffit avec des straps de relier le cable 4 broches aux pins de l’arduino (Vcc, Gnd et 2 entrées/sorties numériques).
En haut la version scotchée, en bas la version nue :

Le tableau électrique
Un fois le tableau électrique monté et cablé j’obtiens ceci :

Notez l’adaptateur 8 borniersRJ45 qui est à ce jour fixé sur une plaque en bois en attendant que j’ai un boitier rail din pour l’intégrer plus proprement.
Mise en place du capteur à ultra sons
La mise en place du capteur à ultra sons a été le point le plus délicat et c’est celui qui m’inquiète le plus pour l’avenir : problématiques de corrosion, etc. Seul l’avenir me dire ce qu’il en est.
Tout d’abord, j’ai fait 2 trous à la dimension des « yeux » du capteur dans le couvercle d’un petit boitier étanche. Le diamètre des trous était juste en dessous du diamètre des yeux : ceci a permis d’assurer l’étanchéité autour des yeux via forçage.

La vue depuis l’intérieur :


Ensuite, j’ai fixé le fond du boitier étanche au couvercle en béton armé de la cuve :

On passe le cable réseau :

On connecte au capteur :

Et on ferme :

L’Arduino et le Xbee
L’arduino avec son shield Xbee et la puce Xbee ont été mis dans un boîtier étanche de taille moyenne. Come le montre la photo, j’ai déjà anticipé des futurs tests de capteurs en collant une mini breadboard au fond du boitier.

Attention à un point : évitez de faire passer le cable d’alimentation trop près de l’antenne, j’ai remarqué que ça pouvait bloquer la transmission (ce qui est logique).
Notez les 2 boîtes de kinder posées au fond du boîtier…
Et l’humidité dans tout ça ?
Mon inquiétude principale à ce jour concerne le veillissement de l’installation : l’arduino a beau être dehors dans un boîtier étanche, je ne sais pas exactement comment tout ceci va vieillir avec l’éventuelle condensation, les différences de température, le gel…
Afin d’absorbé l’humidité, j’ai fait des trous dans 2 boîtes de kinder que j’ai remplies de Riz (basmati s’il vous plaît!).

Si vous avez des astuces, je suis preneur
Critiques vis à vis de mon montage
* Le choix d’une puce Xbee avec la petite antenne souple n’a pas été le meilleur dans mon cas : le cable d’alimentation à l’intérieur du boîtier de l’arduino peut provoquer des interférences. L’utilisation d’une vrai antenne est donc à recommander, surtout si comme chez moi les ondes ont plusieurs murs de parpaing à traverser
* Les cables RJ45 que j’ai utilisé sont « seulement » du cable FTP : c’est loin d’être le meilleur type de câbles d’un point de vue blindage. Par souci d’économie, j’ai pris ce que j’avais déjà sous la main. Je vous conseille d’utiliser du cable de catégorie 5. Notez toutefois que le choix d’utiliser des cables RJ45 et de faire des adaptateurs propres a ses avantages ici : je peux très facilement remplacer les cables au besoin
.
Et le code, et l’intégration dans Domogik ?
Une autre fois