P25 SmartMeter : Différence entre versions

De Wiki de Projets IMA
(Semaine 11: Programmation des panstamps)
(Semaine 11: Programmation des panstamps)
Ligne 352 : Ligne 352 :
 
[[Fichier:Sender2.JPG|500px|left|programme du transmetteur]]
 
[[Fichier:Sender2.JPG|500px|left|programme du transmetteur]]
 
[[Fichier:Receiver2.JPG|500px|right|programme du transmetteur]]
 
[[Fichier:Receiver2.JPG|500px|right|programme du transmetteur]]
 
 
**'''<font color=#8f8f8f>Développement d'un programme de communication RF (avec le protocole SWAP):</font> '''
 
----
 
EN COURS DE DEVELOPPEMENT
 

Version du 11 décembre 2014 à 02:41

Généralité

Sujet du projet : Réalisation d'un SmartMeter

Fait par : Thomas Ederlé & Sylvain Fossaert

Encadrants : Xavier Redon, Alexandre Boé

Industriel : Guillaume Renault

Context

La consommation d'énergie est un poste de dépense qui prend de l'importance et pèse de plus en plus sur les factures d’électricité des particuliers. Aujourd'hui , mesurer en continu ses consommations énergétiques est devenu indispensable.Créer un outil de mesure permettrai au particulier de visualiser l'impact de ses gestes, d'établir des prévisionnels financiers et d'adopter un comportement éco-responsable dans le but d'obtenir un bâtiment à basse consommation d'énergie.

    • But général

Réaliser un module électrique se branchant sur prise afin d'y relever et transmettre via liaison radio, la puissance consommée par l'appareil connecté


Schemaresolution2.jpg

Énoncé et cahier des charges

Tout d'abord, le but du projet est de mesurer la tension instantanée, le courant instantané et la consommation instantanée d'un appareil connecté sur une prise secteur afin d'en extraire la puissance active de consommation. La seconde partie est de transmettre ces mesures en RF via un module panstamp. Pour atteindre ces objectifs, une carte électronique devra être réaliser et s’interfacer entre la prise secteur et l'appareil dont on souhaite mesurer la consommation. De plus, la carte électronique devra être conçu pour être alimentée par la prise secteur mais la consommation de cette carte doit être négligeable. La plage de consommation mesurable sera de 1W à 8KW avec un pas au plus proche de 0.1W ceci permettra à l'utilisateur de mesurer la consommation des appareils en veilles.

  • I)-Points d'attention

       * Les mesures devront tenir compte du cos Phi   
       * La plage de consommation mesurable sera [1W - 8kW] avec un pas au plus proche de 0,1W   
       * S'agissant d'un circuit de mesure de consommation, sa consommation propre (hors module panstamp) doit être négligeable


    • II)-Objectif 1 : Alimentation & choix des composants de mesure

Le premier objectif sera atteint par la réalisation d'une carte électronique s'interfaçant entre la prise secteur et l'appareil dont on souhaite mesurer la consommation et comprenant les étages suivants :

       * La carte sera alimentée par la prise secteur         
       * L'appareil dont on souhaite mesurer la consommation sera alimenté par la carte
       * La communication sans fil s'effectuera via un module nommé "Panstamp" contenant une solution RF intégré. 
     
       * Prise de mesures par échantillonnage (pour garantir la fiabilité)


    • III)-Objectif 2 : Transmission des mesures via le module panstamp

Concevoir une trame contenant les mesures instantanées et une autre contenant la consommation cumulée sur une minute transmettre ces trames via le module panstamp


Module Panstamp
 Les panStamps sont des modules programmables à partir de l’environnement Arduino. Chaque module contient un 
 microcontrôleur Atmega328p et une interface RF CC1101.Les modules panStamp sont programmés comme n'importe quelle 
 autre plateforme Arduino, avec la différence que panStamp peut faire de la communication sans fil à basse  puissance.
 
 Consommation de courant: 1 à 5 uA sous mode dormant. 
                          2.5 mA pendant les transmissions.
                                           Site du constructeur


Module Xbee
  Cette technologie a pour but la communication de courte distance telle que le propose déjà la technologie Bluetooth, tout en étant 
  moins chère et plus simple. Cette solution n'a pas été retenue pour réaliser notre système car la consommation de courant de 
  ce module est beaucoup plus élevé que le module panstamp.
   
  Consommation de courant:  <10 µA sous mode dormant.
                            50 mA en réception.
                            35 mA pendant les transmissions.


    • III)-Objectif 3 : Concevoir une trame destinée au module panstamp, permettant à réception d'allumer ou d'éteindre l'appareil connecté


Par défaut, l'appareil sera alimenté

Planning du projet

Déroulement du projet

Semaine 1 : Prise en connaissance du cahier des charges + premières réflexions

Cette première semaine fut l'occasion de rencontrer notre tuteur industriel (Guillaume Renault), comprendre ses attentes, et définir le cahier des charges. Ainsi, une première réflexion et recherche fut effectuée durant cette semaine. Il ressort de celle-ci les possibilités étant à notre disposition mais aussi de nombreuses interrogations.

    • Quel type d'alimentation est le plus à même d'être intégré dans la carte?
    • Quels capteurs de courant et tension choisir?
        • Capteur de courant et de tension séparés?
        • Une autre solution possible?

Nous décidons pour répondre à nos interrogation de prendre rendez-vous avec Mr. Boé.

Semaine 2 : Recherche sur les alimentations à découpage (burst, flyback) ou linéaire. Recherche sur les capteurs de courant et tension, recherche des solutions pour trouver le déphasage.

    • Alimentation première solution envisagée:

AlimentationPrincipe.jpg

Le principe de notre alimentation est d’obtenir une tension 3.3V continue à partir d’une alimentation 220V alternatif fourni par une prise monophasée murale. Pour rappelle la tension continue 3.3V permettra d’alimenter notre panstamp et les différents composants permettant d’effectuer les mesures nécessaire. Pour réaliser ce dispositif nous avions adopté la solution de la figure ci-dessus, comprenant:

              * Un transformateur permettant d’abaisser la tension alternative 220V en 3.3V.
              * Un étage redresseur monophasée à quatre diodes appelé pont de Graëtz 
              * Un étage de lissage de la tension et du courant par:
                                                                * Condensateur en parallèle 
                                                                * Inductance en série.
    • Alimentation deuxième solution envisagée: flyback

Flyback.PNG

Le montage 'Flyback' est le montage le plus utilisé dans le monde de l'industrie électronique de faible puissance (P <100 W). En effet, celui-ci comporte un bon taux de transfert de l'énergie (80-95%), et de part sa fabrication, il comporte une isolation galvanique permettant de protéger les biens et les personnes présent en avale (au secondaire). De plus, le 'hachage' du courant effectué par le transistor du primaire permet une miniaturisation des éléments selfiques et capacitifs. Ainsi, de part son faible cout de fabrication, son faible encombrement et son bon rendement, c'est une alimentation 'Flyback' est idéale pour une utilisation dans les systèmes embarqués de faible puissance. Pour de plus amples informations sur le montage, veuillez-vous reporter au rapport présent en fin de page.


    • Alimentation troisième solution : composant convertisseur AC/DC

Alimentationbloc.JPG

Le principe de cette solution est d'obtenir les différents étages permettant de passé d'une tension alternative 230V à une tension continue 3.3V , le tous intégré dans un seul composant. Pour notre système, cette solution est de loin la plus facile à mettre en œuvre. De plus, les dimensions et le coût sont inférieurs par rapport aux solutions précédentes.

    • Mesure courant: solution envisagée

Capteur de courant

Pour la mesure du courant la première solution envisagée a été d’utiliser un capteur de courant basé sur un circuit à effet Hall.Le capteur permettait de mesurer un courant de -31A à +31A alternatif. Ce capteur possédant une sortie analogique qui est proportionnelle au courant mesuré (2.5V pour 0 A puis 45mV/A), la solution envisagée été de relier cette sortie analogique sur une entrée analogique du panstamp puis de convertir la valeur par le biais de son convertisseur analogique/numérique. La consommation en courant de ce capteur est de 4mA.

[| Pour plus d'informations ]

[| 2iéme capteur étudié]


    • Mesure tension: solution envisagée


Mesuretension.JPG




Bien évidemment, on ne branche pas directement le 220V alternatif sur l’entrée analogique du panstamp (à moins d’avoir besoin d’un grille pain). La solution étudiée pour mesurer la tension se base principalement sur l’utilisation d’un simple transformateur AC/AC qui servira à ramener la tension 220V AC aux alentours de 9 Volts AC. Par la suite, un montage à pont diviseur (R1-R2) ramènera la tension de mesure dans les bornes 1V AC (de +1V à -1V).Finalement, le second pont diviseur (R3-R4) monté entre GND et « +VCC arduino » permettra de déplacer le seuil de mesure inférieur de +2.5Volts. En effet, les entrées analogiques de l’Atmeg328p ne sont pas capables de mesurer des tensions négatives. Il faut donc veillez à ce que le -1V alternatif issus du premier pont diviseur retourne dans des valeurs positives.



    • Mesure du déphasage: solution envisagée

Puissanceactive.PNG

La puissance active est la puissance réelle consommé par la charge. Ainsi, numériquement il suffit d’échantillonner la tension u(t) et i(t) en fonction du temps de manière à prendre en charge le cosinus phi dans les mesures de consommation. Dans cette solution le panstamp échantillonne et intègre la tension et le courant. Dans cette solution envisagé , nous devons respecter le théorème de Shannon. Ainsi, il faut au minimum que la fréquence d'échantillonnage ( fe ) soit supérieur à deux fois la fréquence du signal (F) : fe>2F Plus fe est important, plus l’erreur sur la puissance mesurée est faible.Il faut donc un dispositif capable d’échantillonner à 100 Hz. Cependant, afin de réduire l’erreur de mesure, il est de convention de prendre fe=20*f soit fe=2000 Hz.


    • Entretien avec Mr. Boé => Se concentrer sur la recherche des capteurs répondant au cahier des charges en premier lieu (et non sur l'alimentation). Présentation des blocs d'alimentation compact à découpage pour circuit imprimé. Découverte des circuits intégrés type "Energy meter".
Semaine 3 :

Etude des circuits intégrés Microchip MCP3905 & MCP3911 et des "references design" recherche d'un bloc d'alimentation dont le courant maximum est moindre que celui des alimentations trouvés préalablement.

Semaine 4 :

Etude du circuit intégré maxim 78M6610+LMU et son " reference design" car les microchip MCP3905 et MCP3911 ne convenaient pas à notre application.

Semaine 5:

Etude approfondi du référence design du 78M6610+LMU permettant de définir les composants nécessaires pour réaliser notre carte. Etude de la largeur de piste

a venir explication approfondie

Semaine 6: Création du schematic sous EAGLE

Après avoir étudié le composant maxim 78M6610+LMU et son référence design, nous avons commencé à créer le schématic de notre circuit imprimé sur le logiciel EAGLE. Pour la réalisation de celui-ci nous nous sommes en grande partie inspiré du schématic du référence design et nous avons ajouté les éléments nécessaires pour une alimentation secteur 230V , l'intégration du panstamp permettant d'envoyer les informations, des leds supplémentaire pour facilité le débogage lors de la calibration et des composants supplémentaire pour la sécurité de l'utilisateur.

A venir explication du schematic.

SchematicEagle.png

Fichier:SchemaHD.pdf

Semaine 7: Création du PCB sous EAGLE en traversant (solution non adoptée)

Lors de cette semaine nous avions réalisé le PCB de notre système avec des composants traversant et notamment effectué notre liste de commande en traversant. Malheureusement après visualisation des PCB il nous a était imposé de recommencer celui-ci en CMS car hormis la taille l'utilisation de la technologie traversante comporte de nombreux inconvénients pour le bon fonctionnement de l'application ( rupture de masse trop fréquente etc....)


PCB TOP en traversant
BOTTOM traversant



Semaine 8: Création du PCB sous EAGLE en CMS

Lors de cette semaine nous avons recommencé le PCB en CMS et recommencé la liste des composants à commander en CMS. Cela a permit d'optimiser le placement des composants et d'avoir une délimitation de plan de masse beaucoup plus propre entre les composants sous 230V et les composants en basse tension. De nombreuse améliorations ont étaient apportés au design lors cette nouvelle version. Nous pouvons visualiser ci-dessus la dernière version du PCB. Quelques améliorations mineures sont encore en cours de développement.

PCB TOP en CMS
PCB TOP en CMS


Semaine 9:

A venir

Semaine 10:

A venir

Semaine 11: Programmation des panstamps

Afin de programmer nos panstamps , nous avons câblé une communication série à l’aide d’un adaptateur USB FTDI. Nous pouvons notamment utiliser un panstick pour réaliser ce processus. Les connections à réaliser sont visible sur l’image ci-dessous.

cablage pour programmer le panstamp

Pour émettre ou recevoir une communication RF nous devons d’abord équiper notre panstamp d’une antenne ou d’un connecteur SMA ( type de connecteur coaxial dont l’impédance caractéristique est de 50 Ohms). Pour notre application nous avons choisi d’utiliser la solution par antenne car celle-ci est moins couteuse. L’antenne peut être réalisée à l’aide d’un simple fil, la longueur de notre fil permettra de définir notre fréquence porteuse donc notre longueur d’onde. Les fréquences indiquées sur le site de panstamp sont les suivantes :

Frequence = 868 MHz
Quarter Wavelength: 82.2 mm 
Half Wavelength: 164.3 mm 
Frequency = 915 MHz:
Quarter Wavelength: 77.9 mm 
Half Wavelength: 155.9 mm

Nous avons choisi d’utiliser la fréquence de 868 Mhz car par défaut le panstamp émet à cette fréquence. Ceci nous évitera de paramétrer la fréquence porteuse dans nos programmes.


    • Le programme MODEM:

Dans un premier temps, afin de nous familiariser avec le développement de communication RF sur panstamp, nous avons commencé à étudier le programme « modem » fourni dans la bibliothèque panstamp. Le programme joue le rôle de passerelle entre le réseau de communication RF utilisé par les panstamps et le port série de l’ordinateur ou le panstamp est connecté. Le programme possède 2 modes de fonctionnement qui sont :

--> Le mode data (permet d’écouter le réseau RF et de convertir en ASCII les paquets entrant et de les afficher sur un terminal)

--> Le mode commande (permet de configurer cette « passerelle » par le biais de commandes AT sans prendre en compte la réception/transmission des paquets).


    • Étude des bibliothèques:

Pour développer nos propres communications RF, nous avons étudié attentivement les différentes bibliothèques fournies sur le site de panstamp (bibliothèque arduino, bibliothèque panstamp, bibliothèque swap). Nous avons pu différencier les rôles de chacune.

-->La partie arduino comme nous avons vue lors de nos précédents projet, permet de contrôler les I/O (analogique et digital), les ADC, les PWM etc…

-->La partie panstamp permet de contrôler les communications RF (transmission/réception), la synchronisation, la gestion de l’alimentation (mode veille/mode transmission)… On notera que la partie panstamp permet de réaliser des communications RF simples mais elle ne possède pas de protocole de communication

-->La partie swap possède toutes les fonctions nécessaires pour réaliser un protocole de communication simple et efficace. Nous pouvons visualiser ci-dessous les paquets pour une communication RF simple utilisant uniquement les fonctions de la bibliothèque panstamp et les paquets utilisant le protocole de communication swap.

cablage pour programmer le panstamp

Le protocole SWAP possède deux formats de paquets:

-->Le format standard permettant d’adresser 255 panstamps dans notre réseau

-->Le format étendu permettant d’adresser 65 535 panstamps dans notre réseau. Dans notre cas, nous utiliserons le format standard sachant qu’un particulier ne disposera pas de 255 prises électriques dans sa maison.


Le format standard que nous utiliserons se comporte de la manière suivante :

--> 4 octets destinés à l’identifiant de notre réseau (Network ID) : Pour notre application cela peut être intéressant d’utiliser plusieurs sous réseaux par exemple un réseau pour le salon, un réseau pour la cuisine etc … L’utilisateur pourrait donc déterminer la pièce qui consomme le plus d’électricité dans sa maison.

--> 1 octet destiné à la longueur des données (data len)

--> 1 octet destiné à l’adressage du destinataire ( dest addr ) : Dans notre cas l’adresse sera entre 1 et 255. L’adresse de broadcast sera 0.

-->1 octet destiné à l’adressage de l’émetteur (src addr)

-->4 bits destinés à la sécurité des données transmise/émise (secu): Permettra de crypter les données

-->1 octet destiné à protéger l’utilisateur contre des attaques par le biais de requêtes répétés (nonce)

-->1 octet destiné à renseigner le type de trame (function), la trame peut être de type : query, status ou command.

  • La trame query permet de faire une requête. Son but est de demander à un destinataire la valeur de ses registres de données. (Nous verrons plus tard comment sont organisés les registres de données utilisés dans le protocole swap. Remarque une trame de type query ne comportera pas de data).
  • La trame de type status permet d’envoyer la valeur des registres de données. La réponse à une trame de type query sera une trame de type status.
  • La trame de type command est utilisée pour contrôler les registres de données. On pourrait par exemple utiliser ce type de trame pour contrôler la valeur d’une PWM à distance, un interrupteur etc… Donc ce type de paquet pourra être utile dans notre application pour allumer ou éteindre notre carte à distance.

-->1 octet destiné à renseigner l’adresse du registre du panstamp destinataire (reg addr) ou l’on veut appliquer une trame de type status, query, et command.

-->1 octet destiné à renseigner l’ID du registre (reg id), l’ID est utilisé par le protocole de communication swap pour gérer ses registres de données. (Nous verrons par la suite en quoi cela consiste plus précisément).

-->1 à 55 octets destinés aux données (data)

-->1 octet destiné au CRC (le CRC est calculé automatiquement)


    • Développement d'un programme de communication RF (sans le protocole SWAP):


Afin de prendre en main la communication entre deux panstamps. Nous avons tout d'abord développé un programme sans l'utilisation du protocole SWAP. Le fonctionnement du programme est le suivant:

Le panstamp N°1 transmet un paquet au panstamp N°2. Lors de la transmission du paquet, le panstamp N°1 fait clignoté une LED verte et affiche le paquet transmit sur le port serie. Le panstamp N°2 écoute le réseau RF , il posséde une led rouge qu'il va allumer jusqu'à la reception d'un paquet. Quand le panstamp N°2 reçoit un paquet, il éteint la LED rouge et affiche sur le port série le paquet reçut. Nous pouvons visualiser le fonctionnement de notre programme sur la video ci-dessus.

    • Programme source du transmetteur(à gauche) et de l'émetteur(à droite):
programme du transmetteur
programme du transmetteur
programme du transmetteur
programme du transmetteur