Quand j’ai voulu domotiser mon compteur électrique (d’abord le modèle Actaris, puis le Linky), ça a été relativement simple, puisqu’on trouve des informations sur le site d’enedis et pas mal de tuto sur le net. Pour le compteur de gaz (Gazpar), malgré la simplicité de récupération des impulsions, trouver de la doc a été un peu moins simple.
Pour ma prochaine victime, le compteur d’eau, ça semble encore plus compliqué. On ne voit pas de sortie impulsion, lisible par exemple avec un interrupteur reed. Il n’ y a pas non plus de connecteur à collecteur ouvert ou de simili port série… Les seuls éléments visibles sont l’index avec les chiffres qui tournent et une sorte de demi rondelle métallique qui tourne au gré de l’eau qui passe. Elle n’est pas magnétique.
Au fil de mes recherche, je suis tombé sur un projet très aboutit qui utilise un capteur optique en jouant sur l’effet miroir du disque pour capter les rotations : https://www.openhardware.io/view/15/Itron-Aquadis-watermeter-sensor#google_vignette
Étant donné que je n’ai pas l’électricité au niveau du compteur d’eau, j’ai continué à cherche une autre solution car la led IR du TCRT5000 tire un peu trop de courant pour pouvoir utiliser un accu lithium avec une autonomie d’au moins un an.
Une version avec des capteurs optiques plus adaptées à certains compteur avec une cyble « miroir » est disponible dans un autre article : Capteur optique sans fil pour compteur d’eau
La Cyble
D’après une documentation trouvée sur le site du fabriquant du compteur d’eau, ils appellent cette roue « cyble ». Dans les explications du principe de fonctionnement, il est dit :
Par effet de “courants de Foucault”, il y a variation du signal envoyé dans la bobine en regard de la cible et donc détection du passage de celle-ci.
Variation du signal dans la bobine
La forme de la courbe me rappelle de lointains cours où on parlait de circuit RLC en régime libre et de signaux pseudo périodiques amortis. Elle m’a aussi rappelé un circuit réalisé il y a quelques années pour mesurer la valeur soit d’une inductance, soit d’un condensateur avec un arduino (en connaissant la valeur de l’autre) puis en mesurant la fréquence du signal résultant. La fréquence de résonance est donnée par la formule suivante, avec L en Henry et C en Farad :
Connaissant la fréquence, L ou C, on peut retrouver la valeur inconnue.
Pour un projet, j’ai eu besoin d’un module buck basé sur un LM2596 dans le but d’abaisser une tension en provenance d’une batterie/panneau solaire pour alimenter une pompe d’une fontaine décorative afin d’ajuster le débit à l’effet visuel voulu. Ça marchait très bien, mais pour ajuster la tension de sortie, il fallait actionner le potentiomètre multi-tours au tournevis.
J’aurais voulu pouvoir l’ajuster via une interface facilement entre 8 et 12V environ.
Lors de l’appairage, on a utilisé un module d’éclairage avec un EEP de D2-01-12 de la famille des « Electronic Switches and Dimmers with Local Control ». Dans la famille, ils se ressemblent tous un peu. Il y en a qui ont un seul canal, d’autres 2, voir 4 ou 8. Certain peuvent également faire gradateur, d’autres ont un timer. Il y en a qui peuvent mesurer la consommation de la charge connectée dessus, mais dans l’ensemble ils se pilotent de la même manière.
Maintenant que nous savons réceptionner des données, on va voir comment en envoyer. Pour un premier test, on va utiliser ce que j’ai dans mon plafonnier. Ce sont des boitiers DCL avec un contrôleur 2x5A portant un EEP D2-01-12.
Le premier truc à savoir, c’est qu’il faut que ce récepteur soit appairé avec l’émetteur. Il a besoin de connaitre la liste des émetteurs qui vont être autorisés à lui envoyer des ordres. Sinon, je pourrai allumer la lumière chez mon voisin…
Dans le cas de ce module, pour lancer un appairage il faut appuyer 3 fois sur le poussoir entouré en rouge. Si on désire le commander avec un interrupteur la méthode est assez simple : une fois le récepteur en mode appairage, il suffit d’appuyer sur le bouton de l’émetteur qui allumera la lumière. Le bouton opposé deviendra celui qui éteint la lumière. Le récepteur sort du mode appairage une fois qu’il a rencontré son nouvel émetteur. Il en sort automatiquement au bout de quelques secondes si rien ne s’est produit.
Cette action est à réaliser rapidement. En effet, en appartement, si un voisin allume sa lumière quand votre module est en mode appairage (pour peu qu’il soit à porté radio), désormais c’est son interrupteur qui pilotera votre module. En maison isolée, le risque est très limité.
C’est le cœur de la passerelle. Le module fourni d’un côté l’interface radio EnOcean bidirectionnelle, et de l’autre côté une interface série bidirectionnelle également. Il existe le TCM310 tout court qui fonctionne sur la fréquence de 868.300MHz et le TCM310U qui lui fonctionne sur la fréquence 902.875MHz.
La tension d’alimentation doit être comprise entre 2.6 et 3.6V, donc 3.3V est l’idéal et facile à trouver. Il en est de même pour RX et TX, des niveaux logiques hauts à 3.3V conviendront très bien. Attention donc d’utiliser un décaleur de niveau 5V <> 3.3V si vous le branchez sur une arduino fonctionnant sous 5V, contrairement au très populaire nrf24, il n’est pas tolérant 5V sur les GPIO.
L’UART fonctionne à 58 823 bit/s, mais la documentation dit que ça fonctionne très bien à 57 600 bit/s ce qui est nettement plus courant. La configuration de l’UART est 8N1, c’est à dire 8 bits de données, pas de parité (None) et 1 bit de stop.
Il y a quelques temps, j’ai emménagé dans un nouvel appartement dans lequel était déjà pré-installé des volets roulants électriques et des éclairages commandés par des interrupteurs radio sans fils et sans pile. C’est plutôt cool vu que ça permet de mettre l’interrupteur là où on le désire très facilement. Ça fonctionne pas mal à condition de ne pas appuyer trop mollement sur le bouton afin que le système piezzo puisse générer assez d’énergie pour envoyer la trame radio.
Il y avait également dans l’armoire électrique une genre de passerelle avec une antenne et connectée en ethernet pour pouvoir piloter tout ça à distance, ça avait l’air cool… enfin ça avait l’air.
Pour l’utiliser, il fallait utiliser une application qui s’appelle Flexom, lente, très lente, utilisable que via le net donc pas en direct sur le réseau local, avec obligation de créer un compte en fournissant quelques données personnelles au passage sans parler du fait d’avoir le fil à la patte avec une société qui peut faire faillite du jour au lendemain et de se retrouver avec une apli qui ne fonctionne plus… bref le truc trop nul. Il suffit d’ailleurs de voir les commentaires sur les app store Android ou Apple.
Je m’attendais à avoir une genre d’API REST où c’est open-bar (avec néanmoins une authentification, c’est pas la fête non plus), pour ensuite pouvoir faire des scénarios avec mes différents objets connectés maison à base de nrf24.
Beaucoup des projets présentés sur ce blog utilisent un module nrf24l01+ pour la transmission des données sans fil… c’est bien, encore faut-il avoir quelque chose à l’autre bout pour les recevoir. Le but du billet d’aujourd’hui est de construire une passerelle faisant la liaison dans les deux sens entre un réseau Ethernet et des modules nrf24l01+. Le paquet transmis par un capteur pourra ainsi être envoyé vers une API hébergée sur un NAS ou sur un serveur internet via une box connectée au réseau. A l’inverse, une page web pourra appeler l’API de la passerelle pour envoyer un paquet à un capteur.
Gazpar est le nom du nouveau compteur de gaz communiquant déployé en France par GRDF depuis maintenant quelques années. Ils émettent deux fois par jour la consommation vers un concentrateur situé à quelques km maximum sur une fréquence de 169MHz, puis les données du quartier sont transférées chez GRDF via le réseau 2G/3G. En tant que particulier nous n’avons pas accès à ces données directement, on ne peut que récupérer sa conso et son historique via le site de GRDF.
Néanmoins, ce compteur dispose d’une sortie impulsion que nous allons utiliser pour récupérer et transmettre en temps réel la consommation.