Suivi de consommation électrique (Arduino + Raspberry PI)

Le but est d’effectuer un relevé de consommation électrique toutes les heures et de stocker ces données dans une base MYSQL pour consultation ultérieure.

compteur arduino
Pour mener à bien ce projet j’ai opté pour:
Un arduino uno avec Shield Ethernet, qui fera l’acquisition de données collectées par un compteur électrique EMDIN02.
La base MYSQL sera hébergée sur un RASPBERRY PI (Pour ma part j’ai choisi un PI 2 équipé de 1Go de ram avec processeur 4 coeurs, mais un modèle B fera aussi l’affaire).
Le coût total de cette petite installation ne devrait pas excéder les 100€.
 

Arduino Uno (Provenance RPC, commandé chez Amazon)           8.00€ €
Shield Ethernet (Provenance RPC, commandé chez DealExtreme)           7.00 €
EDMIN02           40.00 €
Raspberry PI2           40.00 €
 Total           95.00 €

Schéma de principe:
schema de principe
 Code à injecter dans l’arduino:

A ce stade vous devez pouvoir via votre navigateur vous connecter sur l’arduino:
web_arduino
Le compteur CPT affiche ici 43.
Intéressons nous maintenant au Raspberry PI
c’est lui qui via une tâche CRON va toutes les heures exécuter un script PHP chargé de lire le contenu du compteur CPT puis les enregistrer dans une table de la base MYSQL.
Il va falloir dans un 1er temps installer APACHE/MYSQL et PHP, tous les détails ICI.
Comme précisé plus haut j’ai opté pour un Raspberry PI 2 car l’interface de PHPMYADMIN est vraiment fluide par rapport au PI B.
Le serveur WEB créé on va créer une base de données puis la table destinée à recevoir les données via PHPMYADMIN.
Je vous conseille au préalable :
-D’activer SSH sur le Raspberry
-D’installer XRDP afin d’effectuer toutes les manips dans un environnement convivial depuis votre PC
-D installer le serveur FTP sur le Raspberry pour pouvoir transférer vos scripts PHP dans le dossier WWW
-D’installer WEBMIN, ceci vous facilitera la création de la tâche CRON.
-Créez ensuite la base de données (bd_releves dans mon cas) puis la table (releves_edf dans mon cas).
A noter que j’ai rajouté un champ date_heure qui prend par défaut la date et l’heure courante (CURRENT_TIMESTAMP) afin d’horodater les données enregistrées:
releves_edf
Ces étapes franchies nous allons transférer le script PHP de lecture dans le Raspberry:

 
Lancez ensuite Webmin pour créer la tâche CRON:
cron_job
 
Voilà, vos relevés sont enregistrés toutes les heures dans la base MYSQL.