IOT : Goodie Et Mesure d’énergie

IOT: Goodie et Mesure d’énergie

 


Table des matières

  • Introduction
  • Goodie

-Présentation du projet

-Matériel à disposition

-Cahier des charges

-Développement du Projet

1-Imagination du Schéma

2-KICAD

3-Programmation de l’ESP01

4-Esthétique du Goodie

-Budget détaillé

-Problèmes rencontrés

 

 

  • Mesure d’énergie

-Présentation du projet

-Matériel à disposition et budget

-Cahier des charges

-Développement du Projet

1-Câblage électrique

2-Programmation de la carte Arduino

3-Node-Red

4-MQTT

-Problème rencontré

  • Conclusion
  • Remerciements

 


 

Introduction

Cette année, dans le cadre de notre cursus scolaire en GEII à l’IUT de Mulhouse, nous avions à réaliser un projet traitant, dans notre cas, des objets connectés (IOT, Internet of Things, traduit « Internet des objets »). Constitué de 4 personnes, notre groupe avait 2 types de projets à réaliser :

-Les Goodies (VAITOOTAI Gwenäel et PAAL Julien)

GJ

-Mesure d’Energie (LITZLER Cédric et WURCKER Vincent)

Image13

 

Le premier consiste à relever la température et la luminosité d’une pièce, puis de pouvoir accéder , grâce à votre smartphone, aux relevés de température et de luminosité.

Le second a  lui  pour but de relever la puissance électrique consommée par n’importe quelle charge électrique depuis une interface accessible sur internet.

 


 

Goodies

 

Présentation du projet

Le projet consiste à créer un petit objet connecté appelé « Goodie » estampillé « IUT de Mulhouse », cet objet connecté tourne autour d’un circuit ESP01, qui est un petit module capable de relever des données grâce à différents capteurs connectés à ses pattes, comme dans notre cas un capteur de température et un capteur de luminosité, et capable également de transmettre ses informations a un serveur. En effet l’ESP01 a la particularité d’avoir un module WiFi, c’est pour cela que nous avons choisis de travailler avec lui, il pourra donc créer une liaison WiFi avec un serveur MQTT pour lui envoyé les données récoltées, cependant nous rentrerons dans les détailles dans la partie « Programmation de l’ESP01 ». Voici donc en quoi consiste notre projet.


 

Matériel à disposition

Pour ce projet nous avons eu la chance d’avoir tous ce que l’on avait besoins a disposition ;

-Une salle avec des ordinateurs

-Un laboratoire avec des perceuses et plusieurs machines essentiel à l’élaboration de circuit imprimé comme une insoleuse ou encore une laveuse

-Des composants tel qu’un condensateur, des résistances, photorésistances, capteur de température, ESP01, régulateur de tension, entrée USB..

-Des logiciels comme Kicad, Arduino ou encore CORELDRAW, qui nous ont tous aidé dans chaque partie de notre projet (Réalisation et programmation).

-L’IUT LAB est également a notre disposition, c’est une salle regroupant des ordinateurs, avec des logiciels tel que CORELDRAW, et des imprimantes 3D, cette salle nous permets donc de créer des objets que l’on a imaginé.


 

Cahier des charges

-Notre projet doit être « joli » et « fun », il doit être également estampillé « IUT de Mulhouse »

-Le « Goodie » doit être Auto-alimenté par une batterie type USB

-Le « Goodie » doit pouvoir se connecter sur un nouveau réseau wifi

-L’ESP01 doit être alimenté en 3,3V

-Gestion de projet :

Bête à cornes

Pieuvre

Diagramme de GANTT

GANTT1

GANTT2

GANTT3

Voici donc l’outil qui nous a aidé à gérer au mieux notre temps pendant toute la durée du projet. Ceci est un diagramme de GANTT disponible sur le logiciel MINDVIEW, nous avons donc étudié ce logiciel en classe qui nous permet de planifier facilement chaque étape de notre projet, grâce a cela nous étions au courant du travail restant a accomplir ce qui nous permet de bien programmer notre avancement.


Développement du projet

Pour ce projet nous avons réparti le travail en deux. Gwenaël c’est occupé de la partie programmation du projet avec la prise en main du logiciel Arduino, et moi je me suis occupé de la partie réalisation du projet en grande partie grâce au logiciel KICAD. Pour finir nous nous sommes mis d’accord pour faire la partie esthétique du Goodie ensemble, car nous devons créer un petit cache.

1-Imagination du Schéma

Pour commencer ce projet nous devions nous poser les bonnes questions, en effet nous devons créer un circuit imprimé avec une alimentation de type USB, cependant une alimentation de type USB n’alimente qu’en 5V alors que l’ESP01 doit impérativement être alimenté en 3,3V, c’est pourquoi j’ai choisi de commander un régulateur de tension qui va transformer la tension 5V en 3,3V. Puis je voulais avoir une tension stable donc j’ai fais appel a un condensateur. Ensuite il me fallait réfléchir aux capteurs, tout d’abord pour le capteur de luminosité, j’ai opté pour une photorésistance classique : Le principe est très simple,a un niveau de luminosité élevé la photorésistance laissera passer pleinement le courant car sa résistance sera au plus faible voici donc les caractéristiques d’une photorésistance ;

variations-photoresistance_med

Comme on peut le voir sur le graphique de la résistance en fonction de l’éclairement en lux, la courbe décroit de façon exponentielle. Voici donc en quoi la photorésistance nous sera utile.

Enfin pour le capteur de température nous avons commander un DS18B20 :

Le capteur DS18B20 est un capteur de température numérique intégrant tout le nécessaire requis pour faire la mesure : capteur analogique, convertisseur analogique / numérique, électronique de communication et alimentation. Il communique via un bus 1-Wire et possède une résolution numérique de 12 bits avec une plage de mesure de -55°C à +125°C. La précision analogique du capteur est de 0,5°C entre -10°C et +85°C, ce qui rend ce capteur très intéressant pour une utilisation « normale ». Comme tout périphérique 1-Wire, le DS18B20 contient un « scratchpad » qui est une sorte de mémoire tampon sécurisée ou l’on peut venir lire et / ou écrire des données. C’est dans cette mémoire qu’on vient lire les données de mesures et écrire les informations de configuration du capteur. Le scratchpad du capteur DS18B20 est divisé en quatre parties :

-Le résultat de la dernière mesure de température (deux octets),

-Deux octets à usages divers (le capteur dispose d’un mode « alarme », mais cela ne sera pas traité dans ce tutoriel),

-Le registre de configuration du capteur,

-Une somme de contrôle.

Ce qui nous intéresse, ce sont les deux premiers octets qui contiennent le résultat de la mesure de température. Le reste ne nous intéresse pas. Voici donc a quoi ressemble notre capteur de température ;

DS18B20

De plus il me fallait réfléchir au moyen de transmission des données envoyé par les capteurs a l’ESP01, j’ai donc étudié l’ESP01 :

ESP01

On constate donc que deux pins sont utilisablent, la pin GPIO0 et GPIO2, je vais donc devoir relier mes deux capteurs a ces deux pins.

2-KICAD

Une fois la partie imagination du schéma terminé, je pouvais commencer alors le concret avec le logiciel KICAD, où j’ai commencé par faire un schéma classique :

kicadpremier

Cependant certains composants n’existant pas dans la base de données du logiciel, j’ai dû les créer moi même, comme par exemple l’entrée USB, le régulateur de tension LD1117V33, le capteur de température DS18B20 ou encore l’ESP01

Après avoir finis la partie schéma de KICAD, j’ai du associer mes composants schématiques à leur structure réel, en générant une netlist :

netlist

 

Mais comme certains composants n’existent pas dans la base de donnée de KICAD j’ai également du créer leur véritable structure pour les associés a leur structure schématique : Composantsnetlist

Une fois la netlist générée, je pouvais commencer à placer mes composants sur mon circuit imprimé, cependant je devais faire attention à ce que l’ESP01 ne recouvre pas mes capteurs sinon ils ne pourraient marcher. voici donc le circuit imprimé finis :

kicadpcbfinal

il ne me restait plus qu’à imprimé le circuit et a le créer a l’aide du matériel mis a notre disposition. Voici donc le résultat final :

CIfinal

3-Programmation de l’ESP01

Tout d’abord l’ESP01 est une version de l’ESP8266. L’ESP8266 est un circuit intégré à un microcontrôleur, c’est a dire que ce circuit rassemble les éléments essentiels d’un ordinateur comme un processeur, de la mémoire, des unités périphériques et des interfaces d’entrées-sorties. Cependant nous avons choisis de travailler avec la version ESP01 pour une particularité, en effet cette version possède un module WiFi, ce qui nous permettra de créer une liaison entre un serveur MQTT et l’ESP01 afin de transmettre au serveur MQTT les données reçu par l’ESP01. De plus l’ESP01 peut ce programmer en JavaScript, MicroPython ou encore en C. Nous avons donc choisi de le programmer en C car c’est le langage que nous maîtrisions le plus. Pour le programmer en C nous avons donc du nous faire au logiciel Arduino. Voici donc a quoi ressemble l’ESP01 :

esp01

Nous allons donc envoyé les données récoltées par l’ESP01, via une liaison WiFi, a un serveur MQTT. MQTT est un service de messagerie TCP/IP simple et extrêmement léger dans le sens où des messages de toutes sortes peuvent être transmis. Les messages sont envoyés par des publieurs, ici le publieur sera l’ESP01, sur un canal appelé Topic. Puis via « MyMQTT », qui est une application pour smartphone, nous nous sommes abonnés a ce Topic, une fois abonnée a ce Topic nous recevrons donc sur notre smartphone les données publié sur le serveur MQTT par l’ESP01.

La programmation de l’ESP01 a donc été effectué par Gwenaël VAITOOTAI, il devait donc programmer un moyen de communication par wifi entre le serveur MQTT et l’ESP01 pour que l’ESP01 puisse envoyé les données relevé :

Programmewifi

Il devait également programmer un moyen pour relever les données envoyé par les capteurs :

moniteursérie

4-Esthétique du Goodie

L’Esthétique du Goodie est pour nous la dernière étape du projet. Tout d’abord pour commencer à créer notre cache il fallait qu’on la schématise et qu’on identifie les problèmes potentiels. On a donc pensé à faire deux trous sur notre cache pour laisser sortir nos capteurs, on a également penser à laisser une ouverture par le dessus pour retirer l’ESP01  sans trop de problèmes. Après avoir pris les dimensions de notre cache, nous sommes allés la créer à l’IUT LAB à l’aide, tout d’abord du site internet MakerCAse, puis une fois la modélisation terminer, nous l’avons imprimé à l’aide du logiciel CORELDRAW en retouchant quelques détails pour ensuite l’envoyer sur l’imprimante laser.

Résultat final :

boitier


 

Budget détaillé

Pour ce projet nous avons eu besoins de commander plusieurs composants pour notre circuit imprimée. Ayant un budget limité nous avons dû mesurer nos dépenses ;

-Régulateur de tension : 0.50 centimes

-Entrée USB : 2€ et 30 centimes

-Capteur de Température :  2€

Voilà les composants que nous avons dû commander, cependant beaucoup de composants comme les résistances, le condensateur ou encore un adaptateur  pour l’ESP01 nous ont été mis à disposition par l’IUT. Le coût du « Goodie » s’élève alors à 4€ et 80 centimes.


 

Problèmes rencontrés

Pendant ce projet nous avons rencontré beaucoup de problèmes, que ce soit dans la partie conception et réalisation ou encore dans la partie programmation.

Pour commencer nous avons eu un léger retard sur la commande des composants, puis après avoir créé notre circuit imprimé, les trous de perçages n’étaient pas assez précis et j’ai constater également que l’adaptateur pour l’ESP01 était trop proche des capteurs, ce qui pouvait causer une gène.

Nous avons également connu divers problèmes dans la partie programmation du projet, pour commencer nous avons connu un problème de connexion wifi, puis nous avons également connu des problèmes de communication avec le serveur MQTT

Enfin pour terminer le problème que nous avons connu dans la partie Esthétique du projet, a été CREO3, en effet nous ne maîtrisions pas vraiment le logiciel, nous avons donc trouvé une solution alternative grâce au site internet MAKERCASE et au logiciel CORELDRAW.

 


Mesure d’énergie

 

-Présentation du projet

Ce second projet consiste à relever la puissance électrique consommeé par n’importe quelle charge reliée à un compteur électrique, et tout cela depuis une interface accessible sur internet.

Le fonctionnement est le suivant:

Après avoir réalisé notre maquette et notre câblage électrique, nous avons du programmer une carte Arduino Ethernet. Les informations sont transmises sous forme d’impulsion du compteur à l’Arduino, et le programme permet de traduire le nombre d’impulsion reçu en une certaine puissance en Watt.

Nous utiliserons ensuite Node-Red, notre serveur Web qui permet de visualiser les valeurs reçue, en liaison wifi avec un Raspberry pi 3 qui est un hébergeur web, commun à d’autres projets que mes camarades ont réalisés.

Cette interface permet alors de visualiser la consommation de manière instantanée, depuis n’importe ou!

 


-Matériel à disposition et budget

Pour notre projet, nous avions eu beaucoup de matériel à notre disposition, tant pour les outils de travail, grâce notamment à l’IUT LAB, situé juste à côté de notre salle, que du matériel nécessaire à la réalisation du projet. Nous n’avons cependant pas eu besoin d’acheter d’autres objets ou matériels. La liste suivante montre les matériaux utilisés:

-Arduino Ethernet (~40€)

-Compteur électrique Velleman (~35€)

-Compteur énergie (~35€)

-Divers outils de l’Iut LAB


-Cahier des charges

Bête à cornes

image1

 

Pieuvre

 

Diagramme de Gantt

image2

Image4

Le diagramme de Gantt est un outil utilisé en gestion de projet permettant de visualiser dans le temps les diverses tâches composant un projet. Dans les captures d’écran présentes ci-dessus, nous pouvons voir la trame et les points importants qui nous ont servis de base de travail pour notre projet.

 


-Développement du projet

1-Câblage électrique

Image12

La première étape du projet était de trouver un support ainsi que de réaliser tout le câblage électrique. Nous avons réalisé tout cela comme vous pouvez le voir sur les images ci-dessus. Le câblage des prises électrique étant endommagés et défectueux, nous avons du le refaire intégralement, dénuder, remplacer et remettre tous les fils. Nous avons ensuite du rechercher de la documentation sur les compteurs électriques Velleman, pour savoir comment il fallait brancher tous les fils électriques etc… Pour finir, nous avons du rechercher comment il fallait câbler la carte Arduino. Une résistance était nécessaire dans le montage, chose que nous ne savions pas au départ, et qui s’avérait être essentielle pour le bon fonctionnement du montage!

Le câblage parait assez simple une fois réalisé, mais lorsque cela ne fonctionne pas comme nous le souhaitons, cela s’avère être un vrai casse tête, notamment lorsque nous ne savions pas qu’il fallait rajouter une résistance!

 

2-Programmation de la carte Arduino

image6image5Image7

 

La programmation de la carte Arduino Ethernet est l’une des étapes les plus importantes et les plus conséquentes de notre projet. La difficulté aura été de trouver, d’adapter et comprendre les bouts de code que l’on a pu trouver sur internet en rapport avec notre compteur électrique Velleman. De plus, il était difficile de comprendre comment transmettre les informations au Raspberry pi3 qui communique les informations au serveur web de Node-Red et MQTT. L’image à droite des captures d’écran montre a quoi cette carte ressemble. Nous voyons le câble noir d’alimentation de la carte en haut à gauche, et le câble ethernet est lui situé en haut à droite. Il permet de transmettre les informations reçues par le compteur qui est branché par l’intermédiaire de deux petits fils, ici blanc et bleu et qui ont nécessité d’une petite résistance pour dans le montage. Pour finir, nous apercevons en bas à droite un petit module qui se branche directement sur la carte Arduino: elle permet grâce à son port mini USB, de connecter le tout sur le port USB de l’ordinateur et ainsi téléverser le programme sur la carte.

 

3-Node-Red

Node-Red qui est un projet Open Source gratuit est un serveur Web qui est en liaison wifi avec un serveur Raspberry pi 3 et qui permet de réaliser l’objectif ultime de notre projet: relever la puissance électrique consommée par une charge via un site internet, et cela, de n’importe où! Ce langage de programmation graphique permet de connecter plusieurs objets connectés entre eux. Nous utilisons Node-Red de façon à récupérer  les valeurs du compteur contenu dans le serveur MQTT, pour ensuite les afficher sur différents compteurs présentés ci-dessous de manière graphique. Cela est réalisé par l’intermédiaire de node et blocs de fonctions que vous pouvez voir à l’écran ci-dessous dans les 2 rectangles de gauche. A droite, nous trouvons la console de debug qui renvoi les messages d’erreurs lorsqu’il y en a, le bouton de déploiement permettant l’exécution du programme graphique(première flèche) et l’autre symbole permettant de se connecter pour aller sur l’interface avec les jauges etc… Pour réaliser cette tâche, nous avons du nous informer sur beaucoup de site internet, notamment sur « projetsdiy.fr » qui regroupe pleins de  tutoriel dédié à la programmation et à la configuration de Node-Red et MQTT. La configuration de notre page Web se présente de la manière suivante:

Pour commencer, nous avons utilisé un bloc fonction générant des valeurs aléatoires (rectangle en haut à gauche) pour « alimenter » les différents blocs d’affichage étant donné que nous n’arrivions pas à récupérer la valeurs des impulsions des compteurs au début.

Le grand rectangle représente la partie principale de l’interface que nous verrons juste après. Celle-ci comporte une jauge affichant la puissance instantanée, une courbe permettant de visualiser cette puissance au fil du temps ainsi qu’une petite notification en haut de l’écran à droite. Nous voyons également que ces différentes fonctionnalités sont reliés à un autre bloc qui lui se charge de se connecter au serveur Mqtt pour récupérer les valeurs.

Nous avons ensuite réalisé une phase de test pour finir, ou nous avons branché une lampe allogène sur le compteur de consommation en haut à gauche. En parallèle, nous regardions sur se site web la puissance qu’indiquait la jauge de Node-RED. Nous constatons que la puissance est identique à 3 Watts près, ce qui nous prouve donc que nos mesures à l’aide de l’Arduino et du compteur sont bien fiables!

4-MQTT

MQTT permet aux appareils d’envoyer des informations sur un sujet donné à un serveur qui fonctionne comme un broker de messages. Le broker achemine les informations vers les clients qui se sont abonnés au topic en question. Placé sur le Raspberry pi3, le serveur MQTT (Message Queuing Telemetry Transport) est un protocole de messagerie qui fonctionne sur le principe de souscription et publication, développé dans le but de simplifier la communication entre les machines et objets connectés. Il sert d’interface entre l’utilisateur et le compteur. De plus, nous nous sommes servit de l’application mobile MyMQTT disponible sur Android (d’autres applications similaire disponible sur android et IOS existent) pour configurer le serveur.

Afin que le MQTT soit opérationnel, il a fallu coder dans le programme arduino les différentes fonctions d’envoie et de réception des données du compteur ainsi que son adresse IP.

 


-Problème rencontré

Les problèmes ont été nombreux dans notre projet mais nous sommes heureusement arrivés à tous les résoudre! Nous avons décidé de montrer les problèmes les plus complexes:

-La première aura été dans le branchement arduino-compteur, car la sortie du compteur est en NPN d’où la nécessité de brancher l’alimentation et la masse en plus de l’entrée digitale sur l’arduino pour recevoir l’impulsion délivré; ainsi que de placer une résistance entre la sortie du transistor et la masse

-Nous avons eu des soucis dans le choix de la carte Arduino.  Nous sommes passé d’une carte Arduino Uno avec un Shield Arduino TéléInfo (uniquement prévu pour les compteurs vendu par EDF) à une Arduino Yun (problème avec le port série et difficulté à trouver la syntaxe de code qui nous permettait de l’utiliser),  à la carte Arduino Ethernet

-Problème de compréhension et d’assemblage de code pour le programme Arduino

-Initialement nous devions utiliser le module USB Téléinfo 2 compteurs, un petit boîtier prêt à brancher avec son logiciel à télécharger; que notre professeur nous avait prêté, mais il se trouve que ça ne fonctionne qu’avec les compteurs d’EDF.


Conclusion

Goodies

Pour conclure sur notre projet Goodies, en effet ce projet a été bénéfique dans plusieurs domaines, tout d’abord grâce à ce projet nous avons découvert de nouveau logiciel tel que CREO3 ou encore Arduino, puis nous avons pu également revoir des choses que l’on avait déjà vu comme la programmation mais également la conception d’un circuit imprimé, ce projet nous a donc aidé à nous perfectionner dans certains domaines, mais il nous a également permis d’en découvrir d’autre. Ce projet nous aura permis de mieux découvrir l’IUT LAB en utilisant les logiciels et imprimantes 3D.

Cependant ce projet ne c’est pas limité a un approfondissement de nos connaissances scolaire, en effet il nous a permis de découvrir le vrai travail d’équipe, avec une planification et un budget a respecter..La cohésion de groupe a été primordiale, c’est ce qui nous a permis de mener a bien ce projet.

Pour finir ce projet a été composé de haut et de bas, cependant il fut très intéressant, il nous aura permis de découvrir de nouvelles choses que ce soient dans le domaine scolaire ou non.

Mesure d’énergie

Pour la partie sur la Mesure d’énergie, nous avons appris beaucoup de choses dans différents domaines. Nous avons du dans un premier temps apprendre à bien s’organiser dans son temps de travail de façon à respecter les délais que nous nous étions fixés. Nous avons du revoir les notions d’électricité en câblant les prises électriques et la carte arduino. Nous avons ensuite du prendre connaissance de toutes les cartes Arduino qui existaient de façon à choisir celle qui était le plus adaptés pour nous et apprendre à programmer l’arduino en C++. Ensuite nous avons appris quelques notions sur les objets connectés et appris à se servir de Node-RED, qui nous a permis de réaliser le but ultime de notre projet!

Ce projet était donc très intéressant et utile puisque voir la consommation électrique consommée permet de se rendre compte de toute l’énergie utilisé et ainsi d’essayer de l’optimiser de façon peut-être à trouver des méthodes pour l’économiser!

 


Remerciements

 

Nous souhaitons remercier Patrice Wira, Christophe Cudel et Sophie Kohler de nous avoir aider et accompagner durant toute la durée du projet et sans qui nous ne serions peut-être pas parvenu jusqu’au bout du projet!

 

Merci de nous avoir lu!