Capteur sans fil pour compteur de gaz Gazpar
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.
La sortie impulsion
Ce qui va nous intéresser ici c’est la prise située sur le côté du compteur, il s’agit d’une sortie impulsion. C’est une sortie à collecteur ouvert si c’est un transistor bipolaire ou à drain ouvert si c’est un mos sur laquel on va venir capter l’impulsion émise.
Je ne sais pas si c’est le cas sur tous les modèles de compteur mais le miens émet une impulsion tous les daL, donc tous les 10L de gaz, soit 100 impulsions par m3.
Capter les impulsions
Pour capter l’impulsion, on va d’abord utiliser une résistance de tirage car quand le transistor interne au compteur n’est pas passant, c’est à dire la plupart du temps, le collecteur est « en l’air » et donc sa tension est indéterminée.
Avec ce schéma, en effectuant une mesure à l’oscilloscope, on obtient la courbe suivante où l’impulsion à durée environ 300ms. À noter que l’impulsion se déclenche lors du passage sur l’unité de litre 6. Au début je pensais que ça ne fonctionnait pas car je m’attendais à avoir l’impulsion au changement de dizaine quand les unités passent de 9 à 0.
Schéma du capteur
Le circuit s’articule autour d’un Atmega328p comme dans la plupart des circuits présentés sur ce blog. C’est le même que celui présent sur l’Arduino Uno. La partie sans fil est assurée par un module Nrf24l01+. Il est alimenté en 3.3V, avec un accu LiFePO4 par exemple, qui, vu la faible consommation, peut tenir plusieurs mois. Le connecteur relié à Rx, Tx et Reset avec C8 et R9 est facultatif, il sert à pouvoir programmer directement comme un arduino et à utiliser le débogage serie.
Branchement sur le compteur
Normalement il existe une prise spéciale fabriquée par JAE pour se brancher sur le compteur, elle est en vente en ligne sur divers sites pour très cher. Ça peut être intéressant de l’utiliser si votre compteur est dans un endroit très humide et sujet aux intempéries. Néanmoins, la plupart des connecteurs au pas de 2.54mm, ou même des connecteurs dupont fonctionnent très bien. Pour ma part, ça sera un connecteur molex kk que j’avais en stock et qui fait parfaitement l’affaire.
La masse est en haut, et l’impulsion en bas.
Le programme
Le fonctionnement est assez simple : Lors d’une impulsion générée par le compteur, une interruption incrémente un compteur qui est sauvegardé dans l’eeprom. Toutes les 5min, la valeur de ce compteur est transmise par radio. L’eeprom de l’atmega est donnée pour 100 000 cycles d’écriture, ce qui finalement est assez peu. En théorie la zone mémoire sur laquelle on écrit sera probablement morte au bout de 1000m3 de gaz consommés. Pour prolonger la durée de vie on peut modifier le programme pour déplacer la zone dans l’eeprom selon la valeur de l’index.
A la première programmation, il sera aussi nécessaire de mettre en mémoire l’index actuel du compteur de gaz.
Librairies utilisées :
La consommation est stockée dans une base de donnée, et il est possible de générer un graph en temps réel de la consommation. Si le compteur envoyait la consommation aussi souvent à GRDF, ils seraient en mesure de savoir à quelle heure vous avez pris votre douche… contrairement au linky qui n’a pas trop de soucis à se faire niveau alimentation électrique, le gazpar fonctionne sur une pile lithium, le nombre de relevé n’est pas illimité.