RASPBERRY PI et IPX800- Comptabilisation Comptage EDF

Objet: Enregistrer heure par heure ma consommation électrique et archiver les mesures dans une base MYSQL. Les données pourront être exportées vers Excel à fin d’analyse.

L’installation qui existait avant que je bascule sur RASPBERRY utilisait un serveur NAS Synology (DS108J) pour archiver les mesures.
J’ai remplacé le NAS Synology par un RASPBERRY. Ceux qui partent de zéro pourront utiliser le port GPIO du RASPBERRY pour capter les impulsions, mais pour ma part je n’ai pas modifié la partie acquisition.

Récupération des impulsions
J’ai utilisé un compteur d’énergie  VELLEMAN EMDIN02 disponible pour moins de 40€ sur internet.
emdin02_thumb.jpg
Cet appareil doit être câblé conformément aux instructions décrites ICI.La sortie impulsionnelle est de type PNP à collecteur ouvert qui a les caractéristiques suivantes:
voltage : 12 to 27 V
courant : 27 mA
largeur d’impulsion 90 ms

Aucune précision n’étant fournie quant au câblage de la sortie PNP vous pouvez vous référer à la photo ci-dessous pour identifier l’ émetteur (à droite) et le collecteur (à gauche).
cablage sortie PNP Emdin02
On devra donc respecter la tension et le courant maxi. Pour ma part j’ai choisi de commander un relais REED car sa consommation est très faible. La résistance du modèle retenu  étant de 1000 ohms, le courant sous 12V sera de 12 mA. Le câblage sera le suivant:
cde-relais-reed_thumb.jpg
 
Le contact du relais attaquera chez moi une des 3 entrées digitales d’un IPX800 faisant compteur/totalisateur. (Caractéristriques détaillées de l’ IPX800 consultables ICI) .
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
 
L’ IPX800 met à jour en permanence un fichier nommé STATUS.XML dans lequel on va retrouver l’état des compteurs, celui des E/S digitales et analogiques.
On va donc utiliser le RASPBERRY pour lire ce fichier cycliquement, pour moi toutes les heures. Les données lues seront stockées dans une base MYSQL installée sur le RASPBERRY.
La visualisation des données pourra se faire depuis n’importe que navigateur.
lecture_ipx
Les consommations en watts sont rangées dans la dernière colonne. Il va de soit que l’ IPX800 et le RASPBERRY sont connectés sur votre réseau domestique.
Mise en oeuvre au niveau du RASPBERRY PI.
Il va falloir procéder de la manière suivante:

  • Installation d’ APACHE-PHP-MYSQL
  • Installation de PHPMYADMIN
  • Création d’une base MYSQL puis d’une table destinée à recevoir les données.
  • Création d’un script PHP pour la récupération des données
  • Création d’un script PHP pour visualiser les données de la base MYSQL dans un navigateur
  • Création d’une tache CRON afin d’exécuter le script PHP de récupération des données toutes les heures.

Concernant l’installation d’  APACHE-PHP-MYSQL et PHPMYADMIN il existe déjà assez de tutoriels présents sur le Web, je sauterai donc cette étape.
Même remarque pour la création de la base MYSQL et de la table destinée à recevoir les données.
On passe donc directement à la création des 2 scripts PHP. (Pour information la plupart du code a été repiqué sur le web, je me suis contenté d’apporter les modifications nécessaires pour mon application, inutile de réinventer l’eau chaude …)
Lecture du fichier XML de l’ IPX er écriture dans la table:

 
 Script PHP pour la lecture des données

Dernier point, il faudra récupérer le script  function.php. Je précise que je ne suis pas l’auteur de ce script.
Code ci-dessous: