P13 Plateforme expérimentation IOT : Différence entre versions

De Wiki de Projets IMA
(Plateforme)
(Données)
Ligne 758 : Ligne 758 :
 
===Implantation===
 
===Implantation===
 
  [[Fichier:PFE_P13_Branche_noeud.jpg |center|600 px]]
 
  [[Fichier:PFE_P13_Branche_noeud.jpg |center|600 px]]
===Données===
+
===Connexion===
 
<table border="2" align=center>
 
<table border="2" align=center>
 
<tr>
 
<tr>

Version du 1 février 2016 à 10:11

Sommaire

Présentation du projet

Contexte

Dans un monde qui va devenir connectée, il a été décidé de réaliser un projet sur ces nouvelles technologies. La plateforme pourra être implantée dans la nouvelle bibliothèque universitaire du campus de Lille.
Les utilisateurs pourront bénéficier d’informations disponibles tel que les places disponibles, la température, la luminosité … Ces informations dépendront des capteurs mis sur le nœud.

Le deuxième intérêt que l’internet des objets nous procure, c’est l’historique et la prévision. En effet on aura une possibilité de stocker les informations.

Exemple :

• Commander le chauffage en fonction des températures extérieures ou d’estimer la consommation par rapport aux années précédentes.
• Effectuer un suivi de la fréquentation de la bibliothèque. Cette fréquentation pourra être analysée afin de mettre plus de personnel lors des périodes de forte affluence comme des jobs étudiant.

Le but de ce projet est de développer une plateforme d’expérimentation.

Pfe p13 Lilliad.png

Cahier des charges

Objectif :
-Réaliser un noeud de capteur

Il a été défini lors des réunions les points suivants :

-Structure d'un nœud de capteur
Un nœud de capteur sera composé d'une carte mère, de 8 cartes filles . Sur chacune des filles il y aura deux capteurs implantés dessus.
Ci-dessous un nœud de capteur :

Pfe p13 noeud capteur.JPG


-Communication interne du nœud
Le noeud sera capable de se recongifurer tout seul via la raspberry.
Par soucis de sécurité on pourra remonter les données issues des capteurs soit par la liaison série ou par liaison usb.Il faut noter que la liaison USB sera utilisé en fonctionnement normal
Chaque capteur communique en liaisons radios entre eux.

-Communication externe du noeud
Le noeud communiquera vers d'autre noeud ou vers un puit grâce à une liaison radio située sur les cartes des petites filles soit via le cable éthernet placé sur la carte mére.

-Information que l'on souhaite avoir
Afin de réaliser un noeud il a été choisi de faire remonter les informations suivantes :

Pfe p13 donnees.JPG


Ces informations correspondent à des données utilisables en bibliothèque pour les étudiants que pour le personnel. Ces données pourront être stockées en vue d'analyse. Ces dernières seront traitées dans le projet P10.

A la découverte de la programmation PDI

Présentation du PDI

Le Programme et Débogue l'Interface (PDI) est une interface propriétaire Atmel pour la programmation externe et son débogage.Il est constitué de deux éléments:
-Clock
-Data

Schéma du connecteur pour la programmation en pdi

PFE p13 PDI bornier.JPG

Horloge

Relevé de l'horloge (PDI CLK)
On observe des oscillations. Ces dernières ont un dépassement de 20%
La fréquence minimale de programmation est de 10 KHZ . Nous sommes à la fréquence de 2 Mhz

Pfe p13 clk pdi.jpg Pfe p13 clk pdi2.jpg

Données

Relevé de la trame de données (PDI DATA)
Fréquence de la trame : 2.7174 Hz

Pfe p13 pdi data.jpg

Programmation à l'aide du mkII

Matériel nécessaire

-Pc avec AVR Studio
-Connecteur MKII
-Atxmega
-Led
-Résistance

Schéma d'installation :

Pfe p13 Schéma test pdi.JPG


AVR Studio

Le logiciel AVR Studio est disponible à l'adresse suivante :http://www.atmel.com/microsite/avr_studio_5/

Pfe p13 Avr studio.JPG


Exemple

Clignotement d'une Led :
Code C :

  1. include <avr/io.h>

int main(void)
{
int i;
PORTB_DIR= 0XFF;
while(1)
{
PORTB_OUT= 0x00;
for(i=0;i<=10000;i++);
PORTB_OUT= 0xFF;
for(i=0;i<=10000;i++);
}
}

Relevé du résultat :

Pfe p13 resultat prog pdi.jpg

Programmation à l'aide de la Raspberry

Matériel nécessaire

Le matériel nécessaire pour programmer les cartes avec une Raspberry est le suivant :
- Pc
- Microcontrôleur : Atxmega par exemple
- Platine d'expérimentation
- Led
- Résistance

Bibliothèque

Les bibliothèques suivantes sont nécessaire pour reprogrammer en PDI :
- gcc-avr
- binutils-avr
- https://github.com/DiUS/xmega-pdi-pi2
- build-essential
- g ++
-libcm2835

Installation de la libcm2835
wget http://67.192.60.197/mikem/bcm2835/bcm2835-1.4.6.tar.gz
tar xvfz bcm2835-1.4.6.tar.gz;
cd bcm2835-1.4.6;
./configure;
make;
sudo make install

Connexion du Pdi sur la Raspbrerry

Le PDI sera connecté sur les broches suivantes de la Raspberry :
-broche 1 : 3.3V
-broche 25 : GND
-broche 16 : PDI_Data
-broche 18 : PDI_clk
Correspondance entre les broches et les gpio :

PFE P13 Gpio.jpg
Programmation

Un exemple de programmation du microcontrôleur via le PDI

- Compilation du fichier C
$ avr-gcc -g -Os -mmcu=atxmega64a1 -c demo.c

- Génération du fichier .hex
$ avr-gcc -g -mmcu=atxmega64a1 -o demo.elf demo.o
$ avr-objcopy -j .text -j .data -O ihex demo.elf demo.hex

- Transfert du fichier .hex à la racine de la raspberry
scp nom_fichier.hex pi@adresse_raspberry:~/

- Transfert de la raspberry vers l'atxmega
sudo ./pdi -c (Numéro de la GBIO de la Clock) -d (Numéro de la GBIO de la Data) -a override base address (note: PDI address space) - F Nom du fichier.hex

Exemple

Clignotement d'une Led :
Code C :

  1. include <avr/io.h>

int main (void)
{
int i;
PORTB.DIR= 1;
while(1)
{
PORTB.OUT=0;
for(i=0;i<=10000;i++);
PORTB.OUT= 1;
for(i=0;i<=10000;i++);
}
}

Fichier hex généré pour l 'atxmega

Extrait du fichier hex :

1001F0000C94080111241FBECFEFDFE2DEBFCDBF9C
1002000018BE19BE1ABE1BBE0E940A010C94120130
100210000C9400008FEF80932006109224068093A8
080220002406FBCFF894FFCF88
00000001FF

Résultat :

PFE p13 PDI pi2.JPG

Programmation à l'aide d'un microcontrôleur

Matériel nécessaire

Le matériel nécessaire pour programmer les cartes avec un microcontrôleur est le suivant :
-2 microcontrôleur de type Atxmega
-Platine d'expérimentation
-Led
-Résistance

Schéma de connexion entre les microcontrôleurs  :

Pfe p13 2atx connexion.JPG

Cette solutions ne sera pas développée car la Raspberry PI2 possède un nombre nécessaire de GPIO pour pouvoir programmer un noeud

Atmel Software Framework (ASF)

Présentation

Extrait issue du site Atmel :

The Atmel® Software Framework (ASF) is a MCU software library providing a large collection of embedded software for Atmel flash MCUs: megaAVR, AVR XMEGA, AVR UC3 and SAM devices.

It simplifies the usage of microcontrollers, providing an abstraction to the hardware and high-value middlewares ASF is designed to be used for evaluation, prototyping, design and production phases ASF is integrated in the Atmel Studio IDE with a graphical user interface or available as standalone for GCC, IAR compilers ASF can be downloaded for free

Access the ASF documentation.

Note: ASF in Atmel Studio does not require a specific download. Use Atmel Studio Extension Manager (Tools->Extension Manager) or visit Atmel Gallery to update ASF in Atmel Studio.

Le site se situe à l'adresse suivante : asf framework

Capture d'écran du site :

Atmel asf.png

USART

Format de la trame

Le projet P10 souhaite que la trame issue de l'USART soit la suivante :

Mode de transmission
( S : USART ; U : USB ; R : Radio)
ID Numéro de la
carte fille
Numéro de la
carte petite fille
Data


Exemple :

S 005 8 2 255
Data transmise via l'uart Noeud 5 Carte fille 8 Carte fille 2 Mesure d'une témperature



Implantation
PFE P13 schema trame.jpg
Fonctionnement durant la procédure de test
PFE P13 Fonctionnement gene trame.JPG


Commande hub USART (carte A)
Action Envoi Reception
Récupérer l'ensemble des trames du noeud A -Trame B
-Trame C
-Trame D
-Trame E
-Trame F
-Trame G
-Trame H
-Trame I
Récupération partiel sous réserve de validation
Récupérer la trame de la carte B B Trame B
Récupérer la trame de la carte C C Trame C
Récupérer la trame de la carte D D Trame D
Récupérer la trame de la carte E E Trame E
Récupérer la trame de la carte F F Trame F
Récupérer la trame de la carte G G Trame G
Récupérer la trame de la carte H H Trame H
Récupérer la trame de la carte I I Trame I



Génération de trame aléatoire
Pfe p13 courbe rand.JPG
Simulation d'un capteur de température
Pfe p13 courbe temp.JPG



Pfe p13 courbe temp2.JPG

USB

Présentation de la board EVB-USB2517

The SMSC USB2517 MultiTRAK™ is a Low-Power Full-Featured High-Speed USB 2.0 compliant hub with seven down-stream ports. The EVB-USB2517 Evaluation Board demonstrates a standalone application for the hub with advanced power saving options and configurable port assignments. It is a demonstration and low-cost evaluation platform that robustly demonstrates the unique features of this device using a low-cost PCB implementation with individual port power control. The EVB-USB2517 is designed for a low cost, power efficient implementation of a High-Speed USB Hub that supports internal default hub configurations as well as optionally supports an external EERPOM configuration. This evaluation platform supports a red LED indicator for the High-Speed hub state as well as standard USB Amber/Green LED indicators for operational state indication.
Source : Microship

Pfe p13 Microchip-EVB-USB2517.jpg

Configuration des Raspberry

Raspberry PI

Mapping de connection du noeud :

PDI_DATA PDI_CLOCK Action
Broche Gpio Broche Gpio
Carte A (Hub USART) 16 23 18 24 Reprogrammez le HUB USART en pdi
Il faut désactiver l'interface SPI de la raspberry
Carte fille B (1) 15 22 13 27 Reprogrammez la carte fille B en pdi
Carte fille C (2) 19 10 21 9 Reprogrammez la carte fille C en pdi
Carte fille D (3) 11 17 12 18 Reprogrammez la carte fille D en pdi
Carte fille E (4) 7 4 22 25 Reprogrammez la carte fille E en pdi



PFE P13 Raspberry-pi-gpio.jpg

Raspberry PI 2

PDI_DATA PDI_CLOCK Action
Broche Gpio Broche Gpio
Carte A (Hub USART) 11 17 13 27 Reprogrammez le HUB USART en pdi
Il faut désactiver l'interface SPI de la raspberry
Carte fille B (1) 29 5 31 6 Reprogrammez la carte fille B en pdi
Carte fille C (2) 33 13 35 19 Reprogrammez la carte fille C en pdi
Carte fille D (3) 16 23 18 24 Reprogrammez la carte fille D en pdi
Carte fille E (4) 36 16 38 20 Reprogrammez la carte fille E en pdi
Carte fille F (5) 15 22 37 26 Reprogrammez la carte fille F en pdi
Carte fille G (6) 12 18 22 25 Reprogrammez la carte fille G en pdi
Carte fille H (7) 32 12 40 21 Reprogrammez la carte fille H en pdi
Carte fille I (8) 19 10 21 9 Reprogrammez la carte fille I en pdi

PFE P13 Gpio-raspberry pi 2.jpg

Exemple de capteur

Mesure de la température

Ce type de capteur utilise le convertisseur analogique numérique du microcontroleur. Les paramétres à configurés seront les suivantes :

* Quantum
* Plage de mesure
* Registre

Pfe p13-capteur-temp.jpg

Ce capteur à les caractéristiques suivantes :
Fournisseur : Conrard
Référence :Capteur de température numérique TSIC506 boîtier TO 92 B & B Thermotechnik TSIC506-TO92
Plage de mesure :-10 C - 60C
Tension d'alimentation :3-5.5V
Précision : +/- 0.1 C
Consommation : 30 - 60 µA


Mesure du volume sonore

La mesure d'un volume sonore se réalise par la transformation d'un vibration en un signal éléctrique.Afin de pouvoir l'exploiter il faudra le connecté sur le convertisseur analogique numérique du microcontroleur.Les paramétres à configurés seront les suivantes :

* Quantum
* Registre

Pfe p13-capteur-son.jpg

Ce capteur à les caractéristiques suivantes :
Fournisseur : Zartronic.fr
Référence :Capteur Sonore Analogique
Tension d'alimentation :5V


Mesure de la luminosité

La mesure de la luminosité s'effectue avec l'aide d'un photo-transistor. Le photo-tansistor fera varier une résistance. On peut mesurer sa tension a ses bornes. Cette tension étant trés faible il est nécessaire d'avoir un amplificateur en sortie. La tension sera exploitable par le convertisseur analogique numérique du microcontroleur.Les paramétres à configurés seront les suivantes :

* Quantum
* Registre

Pfe p13-capteur-luminosite.jpg

Ce capteur à les caractéristiques suivantes :
Fournisseur : Conrard
Référence :Photo-résistance FW200


Plateforme intermédiaire

Composition

La carte mère

Composition

Elle sera composé de :
-une carte raspberry pi
-deux cartes XMega-A3BUX plained

PFE P13 Carte mére.JPG
Fonctions
PFE P13 Fonction carte mère.JPG


Connexions
Ancienne appellation Nouvelle appellation
Carte fille 1 Carte B
Carte fille 2 Carte C
Carte fille 3 Carte D
Carte fille 4 Carte E
Carte fille 5 Carte F
Carte fille 6 Carte G
Carte fille 7 Carte H
Carte fille 8 Carte I

La carte fille

Composition

Elle sera composé de :
-Atmega A1U
-Deux cartes petites filles

Fonction

Les fonctions de la carte sont :

Pfe p13 carte fille fonction.JPG
Connexion
Data Programmation
PDI SPI / I2C ...
Amont
(vers la raspberry)
Aval
(vers les capteurs)
Amont
(vers la raspberry)
Aval
(vers les capteurs)
Amont
(vers la raspberry)
Aval
(vers les capteurs)
Carte B Carte A - Carte B1
- Carte B2
Carte mère
(Voir configuration Rasbperry)
NC NC - Carte B1
- Carte B2
Carte C Carte A - Carte C1
- Carte C2
Carte mère
(Voir configuration Rasbperry)
NC NC - Carte C1
- Carte C2
Carte D Carte A - Carte D1
- Carte D2
Carte mère
(Voir configuration Rasbperry)
NC NC - Carte D1
- Carte D2
Carte E Carte A - Carte E1
- Carte E2
Carte mère
(Voir configuration Rasbperry)
NC NC - Carte E1
- Carte E2
Carte F Carte A - Carte F1
- Carte F2
Carte mère
(Voir configuration Rasbperry)
NC NC - Carte F1
- Carte F2
Carte G Carte A - Carte G1
- Carte G2
Carte mère
(Voir configuration Rasbperry)
NC NC - Carte G1
- Carte G2
Carte H Carte A - Carte H1
- Carte H2
Carte mère
(Voir configuration Rasbperry)
NC NC - Carte H1
- Carte H2
Carte I Carte A - Carte I1
- Carte I2
Carte mère
(Voir configuration Rasbperry)
NC NC - Carte I1
- Carte I2

La carte petite fille

Présentation
Pfe p13 carte petite fille fonction.JPG

Elle sera composé de :
une carte XMega-A3BUX plained

Fonction
Connexion

Dénomination des cartes :

Carte parent Ancienne appellation Nouvelle appellation
Carte B (Ex carte fille 1) Carte Petite fille 1 Carte B1
Carte Petite fille 2 Carte B2
Carte C (Ex carte fille 2) Carte Petite fille 1 Carte C1
Carte Petite fille 2 Carte C2
Carte D (Ex carte fille 3) Carte Petite fille 1 Carte D1
Carte Petite fille 2 Carte D2
Carte E (Ex carte fille 4) Carte Petite fille 1 Carte E1
Carte Petite fille 2 Carte E2
Carte F(Ex carte fille 5) Carte Petite fille 1 Carte F1
Carte Petite fille 2 Carte F2
Carte G (Ex carte fille 6) Carte Petite fille 1 Carte G1
Carte Petite fille 2 Carte G2
Carte H (Ex carte fille 7) Carte Petite fille 1 Carte H1
Carte Petite fille 2 Carte H2
Carte I (Ex carte fille 8) Carte Petite fille 1 Carte I1
Carte Petite fille 2 Carte I2

Schéma

Schéma de la plateforme :

Pfe p13 Plateforme intermediare carte mere.JPG
Pfe p13 Plateforme intermediare carte fille.JPG

Implantation

PFE P13 Branche noeud.jpg

Connexion

Programmation
PDI_DATA PDI_Clk
Carte A GPIO 23 GPIO 24
Carte B GPIO 22 GPIO 27


Vitesse de transfert
USART 9 600
USB 115 200


Configuration
Amont
(vers la raspberry)
Aval
(vers les capteurs )
Raspberry Réseau - Projet P10 Carte A
Carte USB
Carte A Raspberry Carte B
Carte B -Carte A
- Carte USB
NC
Carte USB Raspberry Carte B


Connections
Carte Xmega-A3BU
Port J1 Port J2
Carte A Broche Rx et Tx
USART vers la Raspberry
Broche Rx et Tx
USART vers la carte B
Carte B Broche Rx et Tx
USART vers la carte A
Broche Rx et Tx
USART vers la carte USB
Raspberry
Broche
1 Alimentation de la carte A
8 USART TX
10 USART RX
13 PDI Clk carte B
14 GND Carte A
15 PDI Data Carte B
16 PDI Data carte A
17 Alimentation Carte B
18 PDI Clock Carte A
25 GND Carte B


Câble de connexion
Couleur
Rouge +3.3 V
Bleu GND
Jaune PDI
Vert /Jaune UART

Implantation sur le réseaux

L'implantation s'est effectué sur une raspberry PI2 . Les configurations sont celles énoncé dans la partie 5.

Pfe p13-p10.jpg

Plateforme

Nœud 1

Composition

Schéma

Implantation

Connexion

Nœud 2

Composition

Schéma

Implantation

Connexion

Nœud 3

Composition

Schéma

Implantation

Connexion

Évolution

Mesure de l' enérgie

Cette carte mesure également la consommation du nœud. En effet on mesurera sur les convertisseurs analogique-numérique le courant.
Le courant ne peut pas être mesuré directement. Pour cela on va utiliser une résistance de quelque ohms.
Pour estimer la puissance consommé par le nœud on aura besoin de connaitre :
-la valeur de la résistance
-la tension

Formule à utiliser pour estimer la puissance:
On pose :
Mr : valeur issue du CAN
Ir: Estimation du courant dans la résistance
U : tension d'alimentation

Afin d'estimer le courant de la résistance il faut convertir Mr suivant la courbe du CAN. Cette dernière est linéaire.
Un fois la valeur convertie on aura à appliquer la formule suivante : P=U*Ir

Développement web

Pfe p13 interface web.JPG



Adresse du site de présentation : [lien ]

Avancement du projet

Dans cette section vous trouverez une vue de l'avancement du projet. Cette section doit être interactive.

Problème rencontrées

Bloquant En voie de résolution Résolu
ASF de atmel Développé sur Atmel Studio (Window)
compilation des fichiers exemple de l'usart disponible sur l'asf sous debian les fichiers sont compilé sous Windows et ensuite on envoie le .hex généré sur la raspberry
saturation de la mémoire flash de la board (Erreur de type : Error failed to rewrite at the adress 2048) Faut le passer en force jusqu’à 5 fois parfois.
Liasion série sur la raspberry ne fonctionne pas pour remonter les données Mr REDON m'a aidé à résoudre ce problème
Programmé l'USART avec un seul fichier en pdi sur les cartes Plusieur test ont été réalisé le
15 /01 /2016.
Ce test consistait à mettre l'ensemble du programme de l'USART qui a été développé. Ce dernier a été envoyé sur l'ensemble des cartes connecté en pdi.
Le résultat est le suivant: aucune informations n'ont pu être remonter à la raspberry



A faire

A faire En cours Terminé
Reconfiguration en pdi des cartes via l'usart Il existe une probabilité que cette tache ne soit pas réalisé du fait qu'on développe sous Windows
Pour développer sous Linux il nous faudrait la bibliothèque ASF
Mise en place de la liaison USB Carte mise en place
sur le nœud
USART Un code d'essai est opérationnelle. Nous somme en mesure de remonter plusieurs trame de données à la raspberry
Reprogrammation des cartes d'exemples en PDI La reprogrammation en PDI est opérationnelle. Cependant quelque résidu nous pose problèmes

PDI bug

-25 janvier
Erreur to failed at the adress 4096 -> Reprogrammation effectué
8 tentative avant la reprogrammation de la flash