Le Système de Gestion de Base de Données MySQL

Télécharger le fichier pdf d’un mémoire de fin d’études

Moniteur d’énergie Open Source

OpenEnergyMonitor est un projet visant à développer des outils open-source de suivi énergétique. Ce projet open-source peut nous aiderà appréhender notre utilisation de l’énergie, nos systèmes énergétiques, et le défi de l’énergiesoutenable.
OpenEnergyMonitor est un projet modulaire, ce qui permet de n’en utiliser que des blocs, en les interfaçant avec les blocs d’autres projets. Le principe est d’avoir des éléments terminaux (nœuds) à coût réduit dispersés dans le b âtiment pour la mesure, qui communiquent en radio-fréquences (433 ou 868 MHz) avec une base dotée d’une connexion internet qui transmet les données recueillies à un serveur chargé de publier des courbes de suivi. Un module LCD connecté lui aussi en RF permet d’afficher certaines données localement.

Les grandeurs et puissances électrique en régime sinusoïdal

Avant d’entamer aux méthodes et démarches de la conception, il est primordial de rappeler les notions et les théories des grandeursélectriques et aussi les puissances et l’énergie électrique en régime sinusoïdal. Connaitre ces théories, permet à la suite de l’étude de les manipuler aisément et d’établir de bon algorithme de calcul et de trouver les bonnes solutions aux problématiques du projet .

La tension électrique

La tension s’appelle aussi différence de potentiel, se note généralement par « U » avec une unité de mesure en volt (symbole : V). La mesure de la tension se fait à l’aide d’un voltmètre branché entre deux bornes d’une portion de circuit. Et physiquement, cette grandeur est la force produisant le mouvement des charges électriques dans les circuits fermés. La compréhension de cette différence de potentiel repose parfois à l’analogie d’une hauteur de chute.
En régime sinusoïdal, caractériser un signal par une seule valeur n’est pas très pratique vu que le signal n’est pas constant. Alors, la grandeur est définie par sa valeur moyenne et sa valeur efficace.

Théorème de l’échantillonnage

Étant donné que le signal à étudier à l’entrée du convertisseur analogique numérique de l’Arduino est un signal sinusoïdal, il est nécessaire de passer à l’échantillonnage pour l’évaluer. Mais avant tous, il est aussi important de comprendre le théorème de l’échantillonnage ou théorème de Shannon.
L’échantillonnage consiste à prélever les valeurs ‘und signal à intervalle défini, en général régulier. Il produit une suite de valeursiscrètesd. Mathématiquement, l’échantillonnage consiste à représenter un signal en fonction du temps s(t) par ses valeurs s(nT) à des instants multiples entiers d’une durée T, appelée période d’échantillonnage.
Le théorème de l’échantillonnage exprime les condionst dans lesquelles la suite des échantillons d’un signal représente correctement ce signal. Un signal est supposé être correctement représenté par la suite de ses échantillons prélevés avec la périodicité T s’il est possible, à partir de cette suite de valeurs, de re stituer intégralement le signal d’origine. L’échantillonnage a introduit une périodicité du spectre dans l’espace des fréquences ; restituer le signal d’origine, c’est supprimer cette périodicité, c’est-à-dire éliminer les bandes d’images, opération qui peut être réalisée à l’aide d’unfiltre passe bas dont H( f ) la fonction de transfert qui vaut 1/fe jusqu’à la fréquence fe/2 et 0 aux fréquences supérieures.

Microcontrôleur Arduino

Arduino est un projet électroniqueopen source de prototypage basé sur une plateforme flexible, autant du côté matériel que logiciel. Leprojet Arduino est la mise en œuvre une petite carte électronique programmable et un logiciel multiplateforme, qui peut être à tout un chacun dans le but de créer facilement des systèmes électroniques.
Il est principalement destiné aux artistes, designers, amateurs, et tous ceux qui s’intéresse à la création d’objets et d’environnements interactifs. L’arduino peut sentir l’environnement en recevant l’apport de capteurs, e t interagir en contrôlant des circuits électroniques, des moteurs, des actionneurs, lumières et autres. En gros, c’est une carte disposant d’une large plage d’entrée sortie, avec un microcontrôleur au milieu.

Choix de la carte Arduino UNO

Plusieurs types d’Arduino existent sur le marché comme le MEGE 2560, ZERO, DUE, NANO, etc. Mais dans ce projet, l’Arduino UNO est le principal matériel. Ce choix est fait parce qu’UNO est la carte la plus robuste, le plus utilisé et documenté sur toute la famille de Arduino et Genuino. UNO offre déjà assez de pins analogiques et numériques pour couvrir le besoin du présent projet et compatible avec plusieurs modules sur le marché.
Le Uno est une carte microcontrôleur basée sur le ATmega328P. Il dispose de 14 broches numériques d’entrée / sortie (dont 6 peuvent être utilisées comme sorties PWM: Pulse Width Modulation), 6 entrées analogiques, un cristal de quartz 16 MHz, une connexion USB, une prise d’alimentation, d’une embase ICSP et un bouton de réinitialisation. Il contient tout le nécessaire pour soutenir le microcontrôleur ; simplement le connecter à un ordinateur avec un câble USB ou de la puissance avec un adaptateur AC- DC ou d’une batterie.

Le Wiznet 5100 ou W5100

L’Ethernet Shield est caractérisé principalement par la puce Wiznet 5100 (W5100) posée au-dessus de la carte, avec laquelle tout le traitement va être géré. Après configuration, la puce se charge de faire toute la communication et le Shield se chargera de les encapsuler dans des trames et de les transmettre à l’adresse souhaitée. Dans le cas d’une réception de données sur le réseau, W5100 les récupère et les transmettrà l’Arduino pour les exploitées.
Wiznet est reliée à des leds situés du le shield pour informer les activités sur le réseau, suivant sont les noms de ses leds avec ces rôles re spectifs.:
· PWR: indique que la carte est alimentée.
· LINK: indique que la carte est connectée à un réseau. Cette led clignote lors de l’émission/réception de données .
· FULLD: cette led est allumée dans le cas d’une connexion full-duplex (émission et réception simultanée) .
· 100M: allumée si le réseau peut aller à 100 Mb/s (vitesse max. du composant), éteinte dans le cas d’un réseau à 10 Mb/s .
· RX: clignote lors de la réception de données .
· TX: clignote lors de l’envoi de données .
· COLL: clignote si des collisions de données sont détectées.

Communication par sockets

Dans cette partie, nous allons aborder la notion de sockets car cet outil est un élément essentiel pour le projet. En effet, les sockets permettent l’établissement de la communication entre deux hôtes appelés Client / Serveur. Cette communication est possible à l’aide de l’adresse IP des deux entités et l’utilisation d’un port spécifique du réseau concerné. Afin d’assurer la communication et le partage entre le client et le serveur, les sockets permettent de gérer les flux entrant et sortant. Les flux peuvent être transmispar deux manières, premièrement via le protocole TCP/IP (Transmission Control Protocol / Internet Protocol) qui est le plus fiable et deuxièmement par le protocole UDP (User Datagram Protocol) qui est le plus rapide.
Un socket est un point de terminaison d’une communication bidirectionnelle, c’est-à-dire entre un client et un serveur en cours d’exécution sur un réseau donné. Un numéro de port TCP lie les deux entités pour que la couche puisseidentifier la demande de partage de données. Au point de vue fonctionnement, le serveur se met simplement à l’écoute d’un client, qui demande une connexion. Après l’acceptation du serveur par la demande du client, la connexion est établie et les sockets en possession. Par la suite, il est possible de récupérer le flux d’entrée et de sortie de la connexion TCP vers le serveur. Des méthodes des classes relatives au langage utilisé s’occupent de la récupération des flux.

Le Modèle TCP/IP

L’interconnexion des matériels et la transmission de données de l’acquisition de données se reposent sur le modèle TCP/IP. Le TCP/IPest une architecture réseau en quatre couches caractérisées particulièrement par les deuxprotocoles qui jouent un rôle prédominant, le TCP (Transmission Control Protocol) un protocole de transport et le IP (Internet Protocol) un protocole réseau.
Les objectifs de la modélisation sont principalement les suivants :
· Relier des réseaux hétérogènes de façon transparent(réseau d’entreprise, réseaux locaux, ligne téléphonique, etc).
· Garantir les connexions quel que soit l’état des lignes de transmission (commutation de paquets),
· Assurer le fonctionnement d’applications très différentes (transfert de fichier, mail, multimédia, etc).
Par rapport à TCP/IP, le modèle OSI est né de la normalisation et n’a jamais réussi à s’imposer, mais expérimentalement TCP/IP s’est implémenté et suivit de la normalisation. Le modèle s’est imposé progressivement comme modèle deréférence en lieu et en place du modèle OSI.

Langages de programmation

Le choix des langages de programmation se pose sur la disponibilité des documentations, la performance du langage, l’évolution du langage par rapport à la technologie et la maintenabilité. Ces langages sont les suivant :
– Langage C pour le programme de la carte Arduino .
– HTML (ou Hypertext Markup Language) pour la structuration du contenu des pages web en utilisant des balises. Le HTML5 est la dernière révision majeure d’HTML avec laquelle les pages web allaient être intégrées.
– CSS ou ‘’ Cascading Style Sheets’’ qui peut se traduire par « feuilles de style en cascade ». Ce langage se charge de la mise en forme de la page HTML et gère le design de la page via une feuille de style CSS. CSS3 est la version récente du langage, offrant la facilité et beaucoup de possibilités sur la mise en forme .
– JavaScript, un langage côté client, lu et exécuté arp le navigateur pour créer une page dynamique. Ce langage permet de créer des réactionsou animation en fonction des événements (comme le clic, survole, scrolle sur unélément) et des actions de l’utilisateur.
– SQL (Structured Query Language ou langage structuré de requêtes) qui est le langage utilisé dans un système de gestion de base de donnéesou SGBD. SQL a pour rôle de s’interroger, alimenter ou mettre à jour les bases de données. Ainsi, dans le cas d’un site Web, le langage PHP va établir la connexion à la base de données, puis envoyer les requêtes SQL nécessaires aux opérations sur la base de données.
– PHP, un langage côté serveur dans lequel la page HTML se trouve avant l’affichage au navigateur. PHP se charge des traitements de données via les formulaires ou URL,
l’envoie des données à la base de données avec lesrequêtes SQL. Bref, c’est PHP qui rend une application web dynamique.

Les Framework

Un Framework qui se traduit en français par « cadre de travail » est une plateforme de développement d’un logiciel comprenant les bibliothèques et les fonctions nécessaire pour un projet. Son objectif est généralement de simplifier, d’accélérer, de bien structurer le travail des développeurs informatiques. La plateforme offre unearchitecture prête à l’emploi et qui évite de repartir de zéro à chaque nouveau projet. Dans la réalisation de l’application web, trois Framework sont utilisés :
– Bootstrap est un Framework HTML, CSS et JavaScript populaire créé chez Twitter en 2011. Bootstrap permet de développer des sites responsives compatibles pour différents types d’écran et rend le développement Web frontal (client) plus rapide et plus facile. Le Framework est un projet open-source sur GitHub.
– JQuery est une bibliothèque JavaScript libre et multiplateforme. Il est riche en fonctionnalité, rapide et petit. En effet il facilite l’écriture de scripts côté client dans le code HTML. Il fait des choses comme la manipulation facilement les documents HTML, la gestion des événements, les animations etrend plus simple l’utilisation de l’Ajax. JQuery permet aux fonctions et méthodes JavaScript de fonctionner à travers une multitude de navigateurs pour la compatibilité.
– Symfony2 est un Framework PHP pour développer des applications Web qui font du traitement de données. C’est typiquement le cas d’un site qui utilise des formulaires et interagit avec une base de données. Ainsi, le projet Symfony s’intéresser profondément au fonctionnement du Web, depuis l’envoi d’une requ ête par l’utilisateur jusqu’à l’affichage d’une réponse, en passant par la consultation d’une base de données et d’éventuels traitements de ces données avant affichage.
Symfony2 est un Framework MVC (Modèle-Vue-Contrôleur) open-source, donnant un cadre au développement et permettant d’accélérer le travail du développeur et de travailler en équipe. Il est très facile pourun développeur Symfony de s’y retrouver dans le code d’un autre développeur Symfony car les fichiers sont rangés de la même manière. Le code est toujours bien structuré.
Le Framework permet de réutiliser du code. Plutôt que de réinventer la roue à chaque nouveau projet. Les développeurs ont depuislongtemps pris l’habitude d’utiliser des bibliothèques de code déjà développé (bundles).
Autres avantages à utiliser un Framework : le respe ct du patron Modèle-Vue-Contrôleur qui permet aux différents métiers du Web (développeurs, designers, intégrateurs) de travailler en bonne intelligence,la promotion des bonnes pratiques qui est un gage de qualité et de sécurité, la maintenance et l’évolutivité, etc.

Le Plugin JavaScript CanvasJS

Il est toujours préférable de lire et comparer desdonnées sur un graphique (courbe) plutôt que lire un tableau. L’objectif de l’applica tion web est de présenter certaines données de la base sous forme de courbe sur un repère à deux axes. Il est très difficile et peut prendre beaucoup de temps de développer une telle fonctionnalité partant de zéro. Mais la communauté du web propose des plugins JavaScript de présentation graphique et l’un d’eux est le CanvasJS.
CanvasJS sont des plugins graphiques JavaScript, comportant une interface de programmation applicative simple ou API (Application Programming Interface) et peuvent rendre à travers différents dispositifs comme iPhone, iPad, Android, Windows Phone, PC, etc. Ils permettent de créer des tableaux de bord richesqui fonctionnent à travers les dispositifs sans compromettre la maintenabilité ou la fonctionnalitéde l’application web. Ils sont dix fois plus rapides que les bibliothèques classiques et proposent plusieurs thèmes pour l’affichage des données par exemple le digramme circulaire, en bâton, en champ coloré, etc. Les graphiques sont à base de Flash au format SVG (Scalable Vector Graphics) qui est un format d’images vectorielles, résultantes un tableau de bord léger,beau et sensible.

Technologie AJAX

La technologie AJAX (ou Asynchronous JavaScript And XML) permet de communiquer de manière asynchrone avec un serveur. En fonction de l’action de l’utilisateur, AJAX charge une partie de la page web sans recharge l’intégralité ce qui économise beaucoup la bande passante. L’utilisation de cette technique accroît la souplesse, l’interactivité, l’ergonomie et le confort d’utilisation des applications.
La technologie utilise spécialement des requêtes dites asynchrones au serveur HTTP pour récupérer uniquement les données nécessairesSon. exploitation requiert l’utilisation du langage JavaScript et des langages PHP. Avec le langage PHP, son rôle dans le projet est la récupération des données électrique et énergétiquedela base de données, paramétrer l’objet CanvasJS avec ces derniers avant de le passer en HTML pour l’affichage du diagramme.
JQuery utilise particulièrement la fonction $.ajax() pour les appels Ajax. Ci-dessous un exemple d’un requête AJAX avec la fonction $.ajax()de JQuery :
La fonction $.ajax() est exécutée lorsque l’élémentde la page avec la class bouton1 est cliqué. Chaque paramètre de $.ajax() prend son propre rôle :
– ‘url’ définie le fichier php ciblé qui va récupérerles données. Dans l’exemple c’est ‘recuperer_donnee.php’.
– ‘type’ définie le type de la requête HTTP, exemples: GET, POST, HEAD, etc.
– ‘data’ utilisé pour passer des paramètres à la ressource ciblée de l’url.
– ‘dataType’ définie le type de donnée à recevoir, exemples : html, json, etc.
– ‘success’ sera exécuté QUE si l’appel AJAX a abouti.Et dans l’exemple, le code_html contient le HTML renvoyé.
– ‘error’ est exécuté si l’appel AJAX a échoué.
– ‘complete’ va s’exécuter une fois l’appel AJAX effectué.

Le Système de Gestion de Base de Données MySQL

Un Système de Gestion de Base de Données ou SGBD est un ensemble de programmes qui permettent l’accès à une base de données. C’est un logiciel qui prend en charge la structuration d’une base de données et destiné à stocker, partager des informations, mettre à jour et maintenir cette base. L’utilisation d’un SGBD ga rantit la qualité, la pérennité et la confidentialité des informations, tout en cachant la complexité des opérations. Il représente l’interface entre les informaticiens et les donnéesdans la phase de développement, ainsi qu’entre les utilisateurs et les données pour la consultation et mise à jour.
Plusieurs SGBD existent dans le monde de l’informatique comme Oracle, MySQL, PosgreSQL et Access. Mais ce projet utilise systématiquement MySQL pour la raison simple de la disponibilité de documentation et aussi l’intégration de ce SGBD dans le WampServer pour un projet local sur Windows.

Logiciels utilisés pour la réalisation

Logiciel de gestion de base de données SQLyog

SQLyog est un outil de gestion et d’administration MySQL. Le logiciel est un outil graphique facile à utiliser, compact et très rapide pour gérer les bases de données. Il offre la possibilité de contrôle de SQL manuscrite ou d’un environnement visuel et fournit des outils pour améliorer l’expérience en MySQL. Et il fonctionne sur toutes les versions de Windows à partir de 98SE à Vista et aussi sur Linux avec WINE .

L’environnement de développement PhpStorm

PhpStorm est un environnement de développement conçu pour PHP, développé par la société JetBrains depuis 2009. Écrit en Java, il permet d’éditer du code en PHP mais aussi l’ensemble du langage du web (HTML, CSS, JS et SQL) . Son avantage par rapport à Eclipse et Netbeans est qu’il est léger et n’est pas encombrant en mémoire.
Pour répondre au besoin très varié, l’IDE doit intégrer de nombreuse fonctionnalité. En édition de code, il offre les fonctionnalités courantes de coloration syntaxique, d’auto-complétion, d’indentation automatique, de masquagede portions de code, ou encore d’affichage de la documentation des méthodes et fonctions. La fonction d’auto-complétion permet également de compléter automatiquement les classesCSS ou encore les chemins vers des fichiers. Le logiciel propose un certain nombre de Template pour générer automatiquement les portions de code répétitives (squelettes de classes, de méthodes, de boucles, etc.).
À partir de la version 3.0, le logiciel donne la po ssibilité de générer des diagrammes des classes PHP. Le diagramme présente d’autres options de refactoring, comme l’ajout ou la suppression de méthodes ou variables, la modification de l’héritage.

WampServer

Le WampServer prend une place très importante pendant la conception et les éventuels testent dans le projet. Il est le serveur local pour héberger provisoirement la base de données et l’application Symfony pendant la phase de développement. C’est une plate-forme de développement Web sous Windows qui intègre un serveur Apache2, du langage de scripts PHP et d’une base de données MySQL. WampServer propose PHPMyAdmin qui est son propre outil de gestion de base de données.

Objectifs et vue globale de l’appareil

L’objectif de cette section est de concevoir un module électrique responsable de la mesure instantanée de la tension et du courant efficace, des puissances, de l’énergie électrique et de la température pour ensuite les envoyés à labase de données. Techniquement, le système devrait être équipé de quelques capteurs qui convertissent les grandeurs du monde physique en données électriques. Ces données vont ensuite êtraitées par le microcontrôleur de Arduino et l’Ethernet Shield prend le relai en les envoyant sur le réseau. Il devrait être équipé aussi d’un module relai recevant la commande de fermer ou d’ouvrir le circuit à distance. Les mesures, le traitement et la transmission des données doivent prendre garde la précision et les pertes d’information.
Vit-à-vit de l’utilisateur, la conception doit teni r compte de :
· La sécurité à la manipulation .
· La facilité de l’installation .
· La place réservée par l’appareil .
· La facilité de l’utilisation (information intuitive et compréhensible).
Sans entrer dans les détails techniques, le schémasuivant est proposé pour répondre à ces attentes.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

INTRODUCTION
GENERALITES SUR LE SUIVI ENERGETIQUE
I.1. Description du suivi énergétique
I.2. Domaine d’application
I.3. Performance énergétique
I.4. Efficacité énergétique
I.5. Quelques exemples d’application
I.5.1. Eco Compteur de Legrand
I.5.2. Eco-Devices de GCE Electronics
I.5.3. Wiser de Schneider Electric
I.5.4. Le système ConsoSpy
I.6. Moniteur d’énergie Open Source
MATERIELS ET METHODES
II.1. Description du projet
II.2. Les grandeurs et puissances électrique en régime sinusoïdal
II.2.1. La tension électrique
II.2.2. Intensité du courant électrique
II.2.3. Les puissances en régime sinusoïdale
II.2.3.1. Puissance en régime périodique
II.2.3.2. Puissance instantanée en régime sinusoïdal
II.2.3.3. Puissances moyennes
II.2.4. Energie électrique consommée
II.4. Outils et logiciels utilisés
II.4.1. Microcontrôleur Arduino
II.4.1.1. Choix de la carte Arduino UNO
II.4.1.2. Programmation de l’Arduino
II.4.2. Module Ethernet Shield
II.4.2.1. Ethernet et Arduino
II.4.2.2. Le Wiznet 5100 ou W5100
II.4.2.3. Architecture Client/Serveur
II.4.3. Protocole HTTP
II.4.3.1. Les requêtes client
II.4.3.2. Les réponses de la requête
II.4.4. Communication par sockets
II.4.5. Le Modèle TCP/IP
II.4.6. Langages de programmation
II.4.7. Les Framework
II.4.8. Le Plugin JavaScript CanvasJS
II.4.9. Technologie AJAX
II.4.10. Le Système de Gestion de Base de Données MySQL
II.4.11. Logiciels utilisés pour la réalisation
II.4.11.1. Logiciel de gestion de base de données SQLyog
II.4.11.2. L’environnement de développement PhpStorm
II.4.11.3. WampServer
II.5. Conception du SmartMeter
II.5.1. Objectifs et vue globale de l’appareil
II.5.2. Conception de l’alimentation
II.5.3. Capteur de tension
II.5.3.1. Schéma électronique proposé
II.5.3.2. Première méthode
II.5.3.3. Seconde méthode
II.5.4. Capteur courant
II.5.4.1. Module courant avec ACS712
II.5.4.2. Schéma électronique pour la mesure du courant
II.5.4.3. Première méthode
II.5.4.4. Seconde méthode
II.5.5. Calcul de la puissance active ou puissance réelle
II.5.6. Calcul de la puissance apparente
II.5.7. Facteur de puissance cosφ
II.5.8. Bibliothèque EmonLib de OpenEnergyMonitor
II.5.9. Capteur de température avec LM35
II.5.10. Commande du module relai
II.5.11. Affichage des informations sur l’écran TFT ILI9341
II.5.12. Envoi de données par requête HTTP
II.5.13. Envoi de données via sockets
II.5.14. Conception de la carte interface
II.6. Conception de la base de données
II.6.1. Création avec commande SQL
II.6.1.1. Schéma UML de la base de données
II.6.1.2. Création des tables et définition des colonnes
II.6.2. Base de données et doctrine de Symfony2
II.7. Conception de l’application web
II.7.1. Objectifs de l’application
II.7.2. Structure de l’interface de l’application
II.7.3. Page d’accès utilisateur
II.7.4. Visualisation des données en temps réel
II.7.5. Page des consommations électriques
II.7.6. Page de commande
II.7.7. Page historique
RESULTATS
III.1. Résultats sur conception du SmartMeter
III.1.1. Carte d’interface
III.1.2. Assemblage du SmartMeter
III.1.3. Affichage à l’écran TFT
III.1.4. Résultats et précision de mesure
III.2. Résultat sur la conception de la base de données
III.2.1. Tables créées en base de données
III.2.2. Réception de donnée via HTTP et Sockets
III.3. Résultat sur la conception de l’application web
III.3.1. Page de connexion
III.3.2. Structure générale des pages
III.3.3. Visualisation en temps réel
III.3.4. Choix de date avec le plugin Datetimepicker
III.3.5. Affichage des consommations électriques avec le CanvasJs
III.3.6. Pages commandes à distance
III.3.7. Page historique pour la consultation des données
DISCUSSIONS
IV.1. Concernant le SmartMeter
IV.2. Concernant la base de données et la réception des données
IV.3. Concernant l’application Web
IV.4. Améliorations et suggestions
CONCLUSION
BIBLIOGRAPHIE ET WEBOGRAPHIE

Télécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *