Mesures électriques et IOT
Membres du groupe :
Joël BAVERA MVOU
Anas BOUHSSINE
Marouane MEHDAOUI
Tables des matières
1)Présentation du projet
2)Recherche d’une solution
3)Réalisation
1)Présentation du projet
a)Projet
Le projet mesure électrique et IOT consiste à calculer la puissance consommée par des appareils électriques branchés à un compteur, et d’envoyer ces données vers un serveur. Pour mener à bien ce projet il est nécessaire d’étudier le fonctionnement de chaque module (Raspberry pi, compteur…). Des notions du langage Python seront nécessaires pour la programmation de notre Raspberry pi.
b) cahier des charges
Définition du besoin :
Fonctions principales :
C) liste du matériel
Pour la réalisation de notre projet , nous avons utilisé principalement un compteur Velleman emdin 02 , une Raspberry pi 3 , une résistance et des câbles wire jumper.
Compteur Velleman EMDIN02
Raspberry pi 3
2) Recherche d’une solution
Les appareils dont nous voulons étudier la consommation seront branchés sur un compteur électrique. Nous devons donc trouver un moyen de connecter le compteur électrique et la Raspberry pi 3 afin de récupérer les impulsions, fondamentales pour la réalisation de notre projet.
Langage python : pour la partie informatique de notre projet nous avons utilisé le langage Python. Nous avons donc appris les bases de ce langage avons de débuter la réalisation de notre projet
Compteur électrique : le compteur Velleman emdin 02 est un compteur monophasé utilisé pour mesurer la consommation d’énergie active. Il dispose d’un indicateur LED qui clignote à chaque impulsion. Il libère en sortie 1000 impulsions par KWH consommé d’une tension entre 12 et 27 V.
Raspberry pi 3 : Le Raspberry Pi est un nano ordinateur de la taille d’une carte de crédit. Il fonctionne avec différentes versions du système d’exploitation Linux, en effet, la plus utilisée est Raspbian. Le Raspberry Pi 3 qui comporte 3 Ports USB et une prise Ethernet. On peut voir qu’il dispose également de ports GPIO qui peuvent être utilisés comme entrée/sortie. Il est également équipé d’une carte Wifi et du Bluetooth. Nous allons donc pouvoir récupérer les impulsions grâce aux ports GPIO.
Conversion d’Impulsion :
La figure illustre une sortie d’impulsion. La largeur d’impulsion T_high varie en fonction du compteur. Certains compteurs de sortie d’impulsions permettent de régler T_high. T_high reste constant pendant le fonctionnement. Pour notre compteur T_high est 90ms. Le temps entre les impulsions T_low est ce qui indique la puissance mesurée par le compteur.
3600 secondes par heure = 3600 J par impulsion, c’est-à-dire 1 Wh = 3600 J. D’où la puissance instantanée P = 3600 / T où T est le temps entre le front descendant de chaque impulsion. Plus le temps entre deux impulsions est court plus la puissance est grande.
3) Réalisation
A) Câblage du système
Le câblage de notre système se présente comme ci-dessus. Nous avons utilisé des câbles wire jumper et une résistance de 10 k Ω pour réduire la tension de sortie du compteur car elle est trop grande pour être supporter par la raspberry pi. Nous avons relié un câble a l’alimentation puis un autre la masse et enfin le dernier à un port GPIO (utilisé pour récupérer l’impulsion).
b) Prise en main informatique
Nous avons établis un code sur python qui nous permet de détecter des fronts descendants, le moment auquel ils sont détectés. Il nous fournit aussi la durée écoulée entre chaque front descendant et la puissance instantanée correspondante.
c)transmission de l’index
La transmission des données repose sur le protocole HTTP du Web. Dans la spécification du protocole HTTP, GET permet à un capteur (= client Web = objet connecté) de demander une page Web en lui transmettant des paramètres. Les paramètres sont :
- id : identifiant de l’objet connecté (client web) qui est OBLIGATOIRE (entier),
- dt : instant de mesure (datetime),
- nc : valeur de son compteur interne (entier),
- st : son status (entier),
- var1 à var20 : valeurs numériques à stocker (float).
Voici le script en python pour y envoyer des données
import urllib2
ff = urllib2.urlopen(‘PP’)
print ff.read()
PP étant le lien comportant les données à envoyer.
Voici un exemple : http://www.mmi.iutmulhouse.uha.fr/einsert.php?id=0007&dt=2017-10-16 19:28:26&nc=33&st=77&var1=145003&var2=10&var3=11 … &var18=77&var19=47&var20=747 C’est donc ce procédé que nous avons utilisé pour la transmission de nos données
d) affichage graphique
Pour l’affichage graphique nous avons utilisé la librairie Matplotlib.
Nous avons généré un graphique traduisant la puissance instantanée en fonction du temps.
En abscisse nous avons le temps et en ordonnées les puissances instantanées correspondantes.
e) sauvegarde
Nous avons mis en place un moyen de sauvegarder nos données (puissances instantanée et temps associés) dans un fichier csv à l’aide du langage python.
CONCLUSION
Nous avons acquis des connaissances très importantes dans le domaine de l’IOT. Ainsi nous maîtrisons à présent le langage python mais également le Raspberry Pi qui peut s’avérer très utile. C’est un projet qui nous a permis de travailler en équipe et de faire face à certains conflits .Nous n’y seront pas arrivé sans l’aide et le soutien de Mr. WIRA, Mr. CUDEL et MR BAZEILLE qui nous ont assistés et conseillés tout au long de notre projet.