Surveillance de consommation électrique par GSM

Surveillance de consommation électrique par GSM

Il y a quelques années, nous vous avons expliqué pourquoi le Yocto-Watt est limité à 16A et donné quelques pistes pour mesurer des courants forts. Mais à l'époque, nous n'avions pas de solution simple à proposer pour l'application la plus courante: mesurer et transmettre les principaux paramètres de consommation d'un tableau de distribution électrique. Cette lacune est aujourd'hui comblée, et nous vous proposons une solution détaillée, facile à mettre en place et basée sur des composants du commerce.

Le compteur d'énergie


Pour mesurer précisément la tension, le courant, la puissance et la somme d'énergie consommée, nous avons cherché un compteur qui s'intègre facilement dans un tableau électrique. Il faut donc une fixation sur le rail DIN, et un boîtier dont la forme convient aux tableaux électriques standards. S'agissant d'un domaine fortement réglementé, nous préconisons l'utilisation d'un appareil certifié. Et bien sûr, pour pouvoir facilement retransmettre les mesures, il faut qu'il possède une interface supportée par l'un de nos modules d'interface.

Le meilleur rapport qualité/prix que nous ayons trouvé dans cette catégorie est le Femto D4 70A ECT RS485, fabriqué par Electrex. Pour environ 150 EUR, ce petit compteur fournit toutes les fonctionnalités requises, sur trois phases simultanément. Ajoutez-y trois petits anneaux transformateurs de courants (CT), vendus pour env. 20 EUR pièce, et vous aurez un système de mesure conforme qui ne prend pas plus de 7.2 cm linéaires dans votre tableau électrique, et qui inclut même un écran pour une lecture immédiate des valeurs.

Le compteur Femto D4 occupe le même volume que 4 disjoncteurs
Le compteur Femto D4 occupe le même volume que 4 disjoncteurs



Le raccordement est assez simple pour quelqu'un qui sait comment fonctionne un tableau électrique. En cas de doute, faites-vous aider par un électricien. Coupez l'électricité avant de commencer, et n'oubliez pas que vous n'avez qu'une vie à ce jeu-là. Les branchements consistent à:

  • Alimenter le compteur en 220V à l'aide d'une phase et d'un neutre.
  • Connecter chacune des 3 phases ainsi que le neutre en haut du compteur, pour les mesures de tension.
  • Passer le fil d'alimentation de chaque phase dans un anneau CT et raccorder les bobines en bas du compteur, pour les mesures de courant. Il faut utiliser le même ordre des phases que pour les mesures de tension, sinon la mesure de puissance sera fausse.
  • Connecter 3 fils sur les sorties RS485 en bas du compteur (A, B et terre), pour la transmission des mesures.

Schéma de branchement du compteur d'énergie
Schéma de branchement du compteur d'énergie



Lecture des mesures


La connection au compteur d'énergie se fait à l'aide d'un Yocto-RS485, qui peut communiquer avec le compteur Femto D4 en utilisant le protocole MODBUS RTU.

Schéma de transmission des mesures
Schéma de transmission des mesures


L'adresse du compteur et les paramètres de communication etc. peuvent être configurés à l'aide des boutons sur le compteur. Par défaut, le compteur utilise une communication à 38400 baud, 8 bits, sans parité, 2 stop bits. Voici donc comment configurer le Yocto-RS485:

Paramètres de communication pour communiquer avec le Femto D4
Paramètres de communication pour communiquer avec le Femto D4


Parmi les paramètres de communication du compteur d'énergie, il y en a un mal documenté intitulé "S.T.". Il correspond au délai avant d'envoyer la réponse aux requêtes MODBUS. La valeur par défaut de 100ms permet aux convertisseurs RS485/RS232 un peu lents de ne pas manquer la réponse. Avec le Yocto-RS485, on peut sans risque le ramener à 10ms pour accélérer l'échange de données.

Le compteur d'énergie calcule une soixantaine de valeurs, mais toutes ne nous intéressent pas. Il faut en sélectionner neuf au plus que le Yocto-RS485 lira périodiquement, à l'aide de la commande MODBUS adéquate. Par exemple, vous pouvez choisir parmi:

  • la tension sur chaque phase
  • le courant sur chaque phase
  • la puissance sur chaque phase
  • la puissance active totale
  • le facteur de phase global (cos phi)
  • la somme d'énergie totale

Chaque valeur est codée sous forme de nombres à virgule flottante sur 32 bits (IEEE754), en big-endian, à cheval sur deux registres MODBUS 16 bit. Heureusement, le dernier firmware du Yocto-RS485 est capable de décoder cela pour nous de manière transparente. Il suffit donc de configurer une tâche d'interrogation périodique en spécifiant le type correspondant, et en indiquant le numéro du registre où commence la valeur, tel qu'indiqué dans la documentation fournie par Electrex. L'adresse par défaut du compteur est 27, mais si vous utilisez plusieurs compteurs, vous pouvez bien sûr la changer.

Lecture d'une mesure en virgule flottante
Lecture d'une mesure en virgule flottante



Il ne reste qu'à activer le job ainsi créé pour qu'il soit lancé automatiquement au démarrage du module, et le tour est joué: vous avez une interrogation autonome du compteur Femto D4, que vous pouvez désormais lire comme n'importe quel autre capteur Yoctopuce, par USB ou par le réseau. Vous pouvez aussi activer le datalogger intégré du Yocto-RS485 pour stocker jusqu'à 500'000 mesures.

Transmission des mesures


Pour transmettre les mesures vers un système d'enregistrement distant, nous vous proposons d'utiliser l'un de nos YoctoHubs. Nous partons ici de l'idée que vous ne disposez pas d'un accès réseau à proximité du tableau électrique, et utiliserons donc un YoctoHub-GSM-3G-EU mais, si vous avez un réseau local, vous pouvez utiliser exactement de la même manière un YoctoHub-Ethernet ou un YoctoHub-Wireless-g.

Pour raccorder le Yocto-RS485 au YoctoHub, vous pouvez utiliser le petit câble USB-OTG-MicroB-MicroB-20, mais il est possible de faire encore plus compact en le montant directement sur le YoctoHub-GSM-3G-EU à l'aide d'un Fix-2.5mm et d'un connecteur Board2Board-127 à souder. Du coup, les deux tiennent ensemble dans un boîtier haut de type YoctoBox-HubEth-Transp, dont on peut modifier une façade pour y fixer l'antenne GSM.

Connexion via un Yocto-RS485 monté sur un YoctoHub-GSM-3G-EU
Connexion via un Yocto-RS485 monté sur un YoctoHub-GSM-3G-EU



Pour la configuration du YoctoHub-GSM-3G-EU, vous utiliserez un câble USB-A-MicroB-30 car les câbles USB longs font parfois des soucis avec les hubs GSM en raison des pointes de consommation. Par contre, une fois en production, vous pouvez supprimer le câble USB et alimenter votre hub par exemple au moyen d'une alimentation 5V sur rail DIN TracoPower TBL-015-105, qui s'intégrera mieux à votre installation qu'un simple chargeur USB. Pour le raccordement au YoctoHub, vous pouvez vous servir d'un connecteur 1.27-1.27-11, en prenant soin de vérifier deux fois les polarités. Voici une photo de l'installation complète:

Un tableau électrique avec compteur d'énergie connecté par GSM
Un tableau électrique avec compteur d'énergie connecté par GSM



Le YoctoHub peut transmettre les mesures vers votre propre serveur, mais aussi vers divers services de Cloud existants. Comme le but de cet article est de fournir un exemple prêt à l'emploi, nous utiliserons pour cet article le service de Valarm. Pour commencer, il faut se connecter à tools.valarm.net et paramétrer le YoctoHub comme décrit dans l'article sur ce sujet. Lorsque vous arriverez au stade de configuration des mesures, vous constaterez que les mesures de tension sont listées (voltage1, ...), mais pas les mesures de courant ni de puissance. C'est probablement parce que peu de clients Valarm en ont eu besoin jusqu'à maintenant. Utilisez donc simplement les libellés user1 pour ces mesures-là.

Une fois la configuration terminée, vous devriez voir les mesures arriver sur la console Valarm lorsque vous pressez sur le bouton Refresh Data:

Données enregistrées sur la console Valarm
Données enregistrées sur la console Valarm


Et en cliquant sur le bouton Graph All Sensors et en sélectionnant les mesures désirées, vous pouvez afficher le graphique des consommations:

Graphique des mesures sur la console Valarm
Graphique des mesures sur la console Valarm


Et voilà, vous pouvez maintenant surveiller la consommation d'énergie de ce tableau électrique depuis l'autre bout du monde.

Conclusion


Pour conclure, notez que nous vous aurions volontiers montré dans cet article comment utiliser le service gratuit EmonCMS pour cette application, mais la nouvelle version actuellement sur le site était trop boguée pour nous permettre d'y parvenir. Il va falloir que nous trouvions une alternative gratuite plus fiable pour les petits projets qui ne peuvent pas se permettre un cloud commercial...

Notez aussi que Electrex propose aussi sa propre solution pour connecter en réseau ses compteurs, dont une porte d'ailleurs le nom Yocto Net, bien qu'il n'y ait aucun lien entre ce produit et les nôtres. Il s'agit de solutions plus élaborées et plus onéreuses que la solution simple présentée dans cet article. Elles requièrent par ailleurs l'utilisation de logiciels propriétaires, eux aussi payants.

Commenter 5 commentaires Retour au blog



1 - bsg75 Samedi 10 septembre 2016 10H02

Cet article tombe à pic, merci. J'ai déjà un compteur TRI (Delta Dore) de ce type mais un peu idiot puisqu'il ne sait pas communiquer. Je vais me pencher sur son remplacement

2 - laupas Mercredi 21 septembre 2016 21H24

Cet article a suscité ma curiosité, nous avons un compteur générant des impulsions (interface S0) (http://www.contact-evolution.ch/index.php/lanotattachments/download/file/id/99/store/1/26-491_fr_5.pdf). Quel capteur serait adapté pour ce compteur?

3 - mvuilleu (Yocto-Team)Jeudi 22 septembre 2016 8H06

@laupas: Nous n'avons pas de compteur S0 pour le vérifier, mais sauf erreur il s'agit d'un format assez primitif envoyant des impulsions (environ 27V) par unité de consommation (par exemple 1 impulsion par Wh). Donc a priori un Yocto-PWM-Rx devrait suffire à les lire. Vérifiez toutefois la tension générée par votre compteur, car vous n'avez pas droit à plus de 30V. Et cela ne fonctionnera que si le signal redescend en dessous de 0.7V entre les impulsions.

4 - laupas Jeudi 22 septembre 2016 21H36

@mvuilleu: merci pour les précisions, selon votre article "compter des impulsions", vous indiquez qu'un yocto-knob est également adapté. Ayant encore une entrée libre sur mon yocto-knob, est-il possible de l'utiliser? (selon les specs du compteur il faut fournir une alimentation de 5-30V, on pourrait prendre le 5v depuis l'usb)

5 - mvuilleu (Yocto-Team)Vendredi 23 septembre 2016 5H41

@laupas: Un Yocto-Knob peut compter des impulsions, mais seulement des impulsions crées par un contact qui se ferme. Or je crois que le système S0 utilise des impulsions de tension, et non des impulsions de contact fermé. Deuxième problème: le Yocto-Knob n'est pas isolé, donc vous mettrez la terre de votre signal S0 en commun avec la terre d'USB (ou du Yocto-Hub). Vous pouvez probablement régler ces deux problèmes d'un coup en mettant un optocoupleur entre le signal S0 et votre Yocto-Knob: le signal S0 fermera ainsi le contact du YoctoKnob à chaque impulsion, et le tout sera isolé.

Yoctopuce, get your stuff connected.