$sql = 'SELECT FLOOR( DATE_FORMAT( ts, "%y%m%d%H%i" ) /10 ) , COUNT( * ) as conso FROM cptelec WHERE ts BETWEEN "'.date_format($date_start, 'Y-m-d H:m:s').'" AND "'.date_format($date_end, 'Y-m-d H:m:s').'" GROUP BY 1';
jmatgou a écrit:Bonjour,
Voilà maintenant 18 mois que je travaille sur un projet de suivi de consommation énergétique.
Une première version stable est en fonctionnement dans ma maison http://conso.gourdet.net
Cette centrale calcule :
- La consommation d’électricité, avec le détail pour les gros consommateurs (chauffe-eau, chauffage et électroménager de la cuisine).
- La production de mes panneaux photovoltaïque.
- La consommation en eau avec détail eau froide / eau chaude.
- La température intérieur (rez de chaussé / étage) et extérieur.
Toutes ces données sont transféré à un serveur web et stocké dans une base de donnée.
Elles sont ensuite affichées sur des pages web sous forme de graphique.
Matériel utilisé :
Une carte Arduino Mega 2560 R3
Un shield Ethernet
Une carte électronique maison qui contient :
- Une partie horloge de type DS1307 pour horodater les relevés.
- Une partie Téléinfo pour les compteurs EDF (consommation et production).
- Une partie servant d'interface entre la cartes arduino et les autres capteurs.
Pour les sous-compteur électrique :
- 1 compteur pour le chauffe-eau (une seule phase)
- 1 compteur Tywatt 40 pour le chauffage (plusieurs phases)
- 1 compteur Tywatt 40 pour les prises de la cuisines et les gros électroménager type four, plaques de cuisson, lave vaisselle, ... (plusieurs phases)
Ces différents compteur émettent une impulsion pour chaque watt qui passent.
Pour les compteurs d'eau :
- Compteur eau froide (arrivée générale)
- Compteur eau chaude (en sortie de chauffe-eau)
Ces 2 compteurs émettent une impulsion tous les 0.25 litres d'eau qui passent.
Pour n'avoir que l'eau froide, il faut soustraire l'eau chaude de l'eau totale.
Compter les impulsions
Pour compter les impulsions générées par les compteurs électrique et les compteurs d'eau j'utilise des DS2423
Mesurer la température
J'utilise des sondes de type DS18B20
Fonctionnement :
Pour faire simple, toutes les 5 minutes la carte arduino :
- lit la téléinfo du compteur de production.
- lit la téléinfo du compteur de consommation.
- lit les compteurs DS2423, via une liaison one-wire, des sous-compteurs electrique.
- lit le compteur DS2423, via une liaison one-wire, des compteurs d'eau.
- fait un différentiel avec les anciennes valeurs pour connaitre la conso dans les 5 dernières minutes
- lit les sondes de température DS18B20 via une liaison one-wire.
- Génère une ligne CSV avec la date et l'heure ainsi que toutes les données collectées.
- Enregistre cette ligne dans un fichier stocké sur une carte SD (log)
- Envoi cette ligne CSV sur mon serveur web via le port ethernet
Un script PHP sur mon serveur récupère les infos transmises par la carte Arduino et les stock dans une base de données de type MySql.
Ensuite mon site http://conso.gourdet.net récupère les infos et les affiches sous forme de graphiques.
N'hésitez pas à me contacter pour plus d'informations.
Merci a vous.
Retourner vers Vos projets, vos idées
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités