You are on page 1of 33

Projet de Fin dAnne

Spcialit : Tlcommunications

Prsent par :
BEN AISSIA Yasser & CHAIEB Ghassene

Gateway dun systme de monitoring


dun malade un serveur durgence

Encadrant : Mr. Tahar Ezzedine (Maitre de confrence-ENIT)


Anne universitaire : 2014/2015

est avec le plus grand honneur que nous avons rserv louverture de notre rapport

en signe de gratitude et de reconnaissance lgard de tous ceux qui nous ont aids, de prs
ou de loin, la ralisation de ce projet.
Nous tenons adresser nos vifs remerciements notre encadrant Mr. Tahar Ezzedine pour
sa prsence, son encadrement, ses conseils fournis de faon efficace Tout au long
de la priode de ralisation.
Nous voudrions aussi exprimer nos remerciements sincres Mr. Mohamed Bedoui
qui Nous a soutenus et aids progresser dans notre projet.
Nos remerciements sadressent galement aux membres du Jury qui nous font l'honneur de
participer notre soutenance.

Gateway dun systme de monitoring


dun malade un serveur durgence
Rsum
A une poque o linnovation en systme embarqu est plus que jamais ncessaire, des dfis
se profilent lhorizon surtout quand il sagit de sauver des vies humaines des dangers qui
les entourent. Parmi ces dangers, on peut citer les accidents de la route qui cotent
des victimes ncessitant une intervention sanitaire immdiate. Dans ce contexte, et en
se lanant au nom de la Tunisie dans une comptition internationale, nous avons propos
une ide originale de projet qui consiste raliser une boite durgence intelligente capable
danalyser les lments vitaux dun bless et de guider lutilisateur par les soins primaires
en se connectant un serveur durgence. Le but de notre projet de fin danne est de raliser
la partie Gateway de ce systme.

Mots cls
Gateway, Raspberry, Capteur, Monitoring, Serveur web.

Gateway of a patient monitoring system


with an emergency server
Abstract :
The embedded system innovation is needed more than ever, especially when it comes to
saving lives from dangers such as street accidents. In this case, an immediate intervention
is usually necessary in this context, and by launching on behalf of Tunisia in an international
competition, we proposed an original idea of a project, which consists in a Smart First Aid
Kit capable of analyzing the vital elements of a casualty and guiding the primary care
by connecting to an emergency server. The purpose of our year-end project is to achieve the
Gateway part of this system.

Key Words:
Gateway, Raspberry, Sensor, Monitoring, Web server

Introduction gnrale ........................................................................................................................ 9


Chapitre 1 : Etude et Choix de la solution ....................................................................................... 11
1.1 Introduction............................................................................................................................ 12
1.2 Choix de la solution ................................................................................................................ 12
1.3 Raspberry Pi ........................................................................................................................... 14
1.3.1 Prsentation gnrale ..................................................................................................... 14
1.3.2 Les composants standards de RaspBerry Pi .................................................................... 14
1.3.3 Systme dexploitation ................................................................................................... 15
1.4 Liaison avec bloc de lecture des paramtres vitaux .............................................................. 15
1.4.1 Zolertia Z1 . ..................................................................................................................... 15
1.4.2 MSP430 ........................................................................................................................... 16
1.4.3 Protocole ......................................................................................................................... 16
1.4.3.1 Trame demande ................................................................................................. 16
1.4.3.2 Trame rponse ................................................................................................... 17
1.5 Conclusion .............................................................................................................................. 18
Chapitre 2 : Communication avec un serveur web.......................................................................... 19
2.1 Introduction............................................................................................................................ 20
2.2 Connexion internet et golocalisation ................................................................................... 20
2.2.1 Module GSM/GPRS & GPS pour Raspberry Pi ................................................................. 20
2.2.2 Solution de rechange ...................................................................................................... 21
2.3 Prise de main distance sur le Raspberry Pi .......................................................................... 21
2.3.1 SSH................................................................................................................................... 21
2.3.2 VNC : ................................................................................................................................ 21
2.4 Service Web............................................................................................................................ 22
2.4.1 REST, AJAX and JAVASCRIPT ................................................................................................ 22
2.5 Conclusion .............................................................................................................................. 23
Chapitre 3 : Ralisation et tests ....................................................................................................... 24
3.1 Introduction............................................................................................................................ 25
3.2 Structure gnrale du Gateway ............................................................................................. 25
3.2 Prparation du Raspberry Pi .................................................................................................. 25
4

3.2.1 Installation de lOS Raspbian ..................................................................................... 25


3.2.2 Connexion distance ...................................................................................................... 26
3.2.2.1 Connexion SSH ......................................................................................................... 26
3.2.2.2 VNC ........................................................................................................................... 26
3.2.2.3 Rservation dadresse IP .......................................................................................... 27
3.3 Vido streaming ..................................................................................................................... 27
3.4 Lecture de donnes partir du module Zolertia Z1............................................................... 28
3.5 Affichage de la temprature sur un serveur .......................................................................... 29
3.5.1 Installation de Apache2 ............................................................................................. 29
3.5.2 Modification du script HTML ........................................................................................... 30
3.6 Conclusion .............................................................................................................................. 30
Conclusion gnrale ......................................................................................................................... 31
Bibliographie .................................................................................................................................... 32

Figure 1.1 - Carte Arduino UNO...................................................................................................... 12


Figure 1.2 - Carte STM32. ............................................................................................................... 12
Figure 1.3 - Carte Raspberry PI B+. ................................................................................................. 12
Figure 1.4 - Carte Beaglebone. ....................................................................................................... 12
Figure 1.5 - Les composants standards d'un Raspberry [4]............................................................ 14
Figure 1.6 - Logo du systme d'exploitation Raspbian [5]. ............................................................ 15
Figure 1.7 - Carte Zolertia Z1 .......................................................................................................... 15
Figure 1.8 - Format de la trame demande correspondante la temprature............................... 16
Figure 1.9 - Format de la trame demande correspondante l'lectrocardiographie. .................. 17
Figure 1.10 - Format de la trame demande correspondante la pression artrielle. ..................... 17
Figure 1.11 -Format de la trame rponse correspondante la temprature. ................................ 17
Figure 1.12 - Format de la trame demande correspondante l'lectrocardiographie. .................. 18
Figure 1.13 - Format de la trame demande correspondante la pression artrielle. ..................... 18
Figure 2.1 - Module GSM/GPRS et GPS [7]..................................................................................... 20
Figure 2.2 - Exemple dune trame NMEA complte [9]. ................................................................ 21
Figure 2.3 - Routeur TL-MR3020 connect un cl 3G Huawei E3131.......................................... 21
Figure 2.4 - Communication client-serveur [10]. ........................................................................... 22
Figure 2.5 - Raspberry Pi en tant que serveur [10]. ....................................................................... 23
Figure 3.1 - Structure gnrale du Gateway. ................................................................................. 25
Figure 3.2 - Installation du Raspbian avec Win32 Disk Imager. ..................................................... 26
Figure 3.3 - Accs l'interface graphique du Raspberry sur VNC Viewer. ..................................... 27
Figure 3.4 - Rservation de l'adresse 192.168.0.100 au Raspberry. .............................................. 27
Figure 3.5 - Test du vido-streaming .............................................................................................. 28
Figure 3.6 - Rsultat d'excution du programme Temp.py ............................................................ 29
Figure 3.7 - Test de serveur Apache2 sur un navigateur web ........................................................ 29
Figure 3.8 - Programme de modification du fichier index.html ..................................................... 30
Figure 3.9 - Test final de serveur web ............................................................................................ 30

Tableau 1.1 - Comparaison technique : Arduino Uno, Beaglebone, RaspBerry Pi et STM32 [3]. .... 13

TI Texas Instruments
USB Universal Serial Bus
PFA Projet de Fin dAnne
RAM Random Access Memory
RTOS Real-Time Operating System
RCA Radio Corporation of America
GPIO General Purpose Input/Output
RISC Reduced Instruction Set Computing
HDMI High Definition Multimedia Interface
HSPA High Speed Packet Access
TCP Transmission Control Protocol
UDP User Datagram Protocol
DHCP Dynamic Host Configuration Protocol
NMEA National Marine Electronics Association
HTTP HyperText Transfer Protocol
FTP File Transfer Protocol
RFB Remote Frame Buffer
SSH Secure Shell
VNC Virtual Network Computing
AJAX Asynchronous JavaScript And XML
REST REpresentational State Transfer
JSON JavaScript Object Notation

Texas Instruments (TI) [1] est une entreprise mondiale fonctionnant dans 35 pays.
Elle est renomme dans le domaine des semi-conducteurs et des composants lectroniques
passifs, fonde en 1941 et base Dallas. TI organise annuellement une comptition
internationale TI Innovation Challenge dans laquelle elle sollicite les tudiants en gnie
proposer des ides des projets innovants qui utilisent les composants TI. Cette
comptition concerne lAmrique du Nord, lEurope et un nombre limit des pays
du Moyen-Orient et de lAfrique. Dans ce cadre, et en se lanant au nom de la Tunisie
nous avons propos une ide originale qui a t retenue par la commission de slection
de TI, ce qui nous a permis de participer la comptition.
Chaque anne, des milliers de vies sont perdus dans les accidents de la route. En Tunisie
il y a eu 1565 morts et 12354 blesss sur les routes pour un total de 7971 accidents
en 2014, daprs les chiffres fournis par le Ministre de lIntrieur [2]. Dans plusieurs cas
lune des principales causes est le temps mis par les services durgence pour se rendre sur
place. Afin de contribuer pallier ce problme et rduire le nombre des victimes
nous avons propos une ide de projet intitul Smart Advanced First Aid Kit .
En effet, les moyens de transport disposent normalement dune trousse de secours qui
contient des mdicaments et des instruments des premiers soins. Cet outil savre
insuffisant dans plusieurs cas (crise cardiaque, hypertension)
Notre projet, propos TI et baptis Smart Advanced First Aid Kit , consiste
en une boite durgence intelligente. Cette boite sera capable de collecter et envoyer
les paramtres vitaux de la victime un serveur install chez les services durgence. Elle
disposera, en plus, dune communication audiovisuelle pour que le mdecin durgence
puisse donner les instructions et les recommandations la personne prsente ct de la
victime.
Le but est de raliser les interventions ncessaires le temps de larrive des services de
secours. Ce temps est trs prcieux et trs critique pour sauver des vies humaines dans
plusieurs cas. Le projet en totalit se compose de trois parties un bloc lecture des
paramtres vitaux de la victime, un Gateway et un serveur central.
On sintresse dans notre projet de fin danne (PFA) raliser la partie Gateway
permettant de lire les donnes partir du bloc lecture des paramtres vitaux
et la communication avec le serveur.

Pour prsenter la dmarche que nous avons suivie, notre rapport se prsente de la faon
suivante :
Dans une premire partie, nous donnerons une tude et un aperu sur le choix des solutions
pratiques que nous allons utiliser dans la liaison avec le bloc lecture, la deuxime partie
sintresse la communication avec le serveur web. Enfin, la dernire partie va mettre
laccent sur une dmonstration qui rsume le travail ralis.

10

Chapitre 1

Sommaire
1.1 Introduction
1.2 Choix de la solution
1.3 Raspberry Pi
1.4 Liaison avec bloc de lecture des paramtres vitaux
1.5 Conclusion

11

1.1 Introduction
Dans ce premier chapitre, on sintresse ltude de module central de Gateway et sa liaison
avec la partie qui se base sur la dtection des paramtres vitaux par les capteurs.

1.2 Choix de la solution


Une analyse, qui consiste rechercher et caractriser les fonctions que le produit doit offrir
pour satisfaire les besoins demands, peut nous aider limiter les choix des solutions
pratiques. Dans notre cas, le projet ncessite une partie centrale capable de traiter les donnes
reues et les envoyer un serveur durgence par le biais dune connexion internet mobile.
De plus, le systme est cens avoir la capacit de lancer une conversation audiovisuelle
laide dune webcam.
Durant notre recherche sur la partie Gateway, nous avons constat quau cours des dernires
annes, de nombreuses cartes de dveloppement modulaire sont apparues. Chaque carte
prsente des avantages et des inconvnients. Elles se diffrent par leurs fonctionnalits
leurs complexits et leurs prix.
On peut citer parmi ces cartes :

Carte Arduino : cest un circuit intgr base dun


microcontrleur programmable qui peut analyser et produire des
signaux lectriques de faon effectuer des tches prcises.

Figure 1.1 Carte Arduino UNO.

Carte STM32 : cest un circuit intgr base


un microcontrleur compos dun processeur ARM, une mmoire
RAM et une interface de dbogage.

Figure 1.2 - Carte STM32.

RaspBerry Pi B+ : un mini-ordinateur qui excute le systme


dexploitation Linux.
Figure 1.3 - Carte Raspberry PI B+.

Beaglebone : une mini-carte lectronique qui possde les


fonctionnalits dun ordinateur basique.

Figure 1.4 - Carte Beaglebone.

12

Le tableau suivant nous donne une comparaison technique entre ces cartes :
Tableau 1.1 - Comparaison technique : Arduino Uno, Beaglebone, RaspBerry Pi et STM32 [3].

Nom de la carte

Arduino UNO

Beaglebone

Naissance
Prix (dollars)

2005
30

2008
90

Processeur

ATmeg328 8bits

Sitara335x sur un
cortex M8

RAM
Mmoire Flash
Consommation(w)
Ethernet
USB
Sortie vido
Systme dexploitation

2 Ko
32 Ko
0.5
Non
Non
Non
RTOS

256 Mo
MicroSD - 4G
2.5
oui
1
non
Linux

Raspberry Pi
B+
2012
Moins de 40
BCM2835 sur un
ARM11
-CPU intgre
512 Mo
MicroSD 32 G
3.5
oui
4
HDMI, RCA
Linux

STM32
2007
10
Cortex
Max 128 Ko
Max 2048 Ko
basse
non
Micro-USB
non
RTOS

Analyse du tableau comparatif :


Nous remarquons quen terme de mmoire vive ou mmoire externe, la capacit de
Raspberry est plus importante que les autres cartes.
Le Raspberry possde des connectiques (HDMI, port Ethernet, port USB) de plus
par rapport au Beaglebone, STM32 et Arduino UNO.
Le Raspberry et le Beaglebone se diffrent par leur excution du systme Linux qui
facilite les communications avec le monde extrieur.
LArduino a une puissance faible devant les autres cartes.

En tenant compte du tableau 1.1, on dduit que le Raspberry reprsente un outil plus
performant et mieux adapt nos besoins. Le Raspberry possde des connectiques
convenables au fonctionnement de notre systme .De plus, son rapport performance-prix
est plus quabordable.

13

1.3 Raspberry Pi
1.3.1 Prsentation gnrale
Raspberry est une carte mre dun mini-ordinateur qui peut tre branche nimporte quel
priphrique (souris, clavier). Cette carte est fabrique pour aider tudier les ordinateurs
et pour reprsenter un moyen dapprentissage de la programmation informatique en plusieurs
langages (python, scratch...) .Elle est aussi capable de lire les vidos haute dfinition et
mme installer des jeux vido.
Lintrt dutiliser le Raspberry PI est sa capacit dinteraction avec le monde extrieur et
dexcuter plusieurs variantes du systme d'exploitation libre (GNU/Linux, Raspbian
Debian ) et des autres logiciels compatibles.

1.3.2 Les composants standards de RaspBerry Pi


La figure suivante reprsente un RaspBerry standard :

Figure 1.5 - Les composants standards d'un Raspberry [4].

Processeur ARM : Les architectures ARM sont des architectures de processeurs ,


faible consommation , introduites partir de 1983 par Acorn Computers
et dveloppes depuis 1990 par ARM Ltd .

Mmoire vive RAM : Cest la mmoire dans laquelle le RaspBerry place les
donnes lors de son traitement.
Une connectique varie :
HDMI : High Definition Multimedia Interface permet de relier le RaspBerry
PI un dispositif compatible : cran LCD ou un vidoprojecteur
14

Port USB 2.0 : Le port Universal Serial Bus est un port srie qui sert
connecter le RaspBerry aux autres priphriques.
Port Ethernet : Cest un port qui correspond au protocole international
ETHERNET de rseau local commutation de paquets.
Prise
RCA
:

Radio
Corporation
of
America

est
un connecteur lectrique utilis dans le domaine audio/vido.
un slot les cartes SD : Le RaspBerry a besoin dune mmoire externe
supplmentaire pour fonctionner. Ce slot permet de connecter la mmoire
externe.
une prise jack : Cest une connectique audio-vido.
GPIO : General Purpose Input/Output sont des ports dEntre/Sortie.

1.3.3 Systme dexploitation


La plupart des systmes qui fonctionnent sur Raspberry Pi
sont des versions du systme d'exploitation Linux. Parce que
Linux est open source, les dveloppeurs peuvent ladopter
pour des buts spcifiques. Dans le cas du Raspberry Pi, le
matriel lger ncessite un systme rduit et priv
d'applications inutiles.

Figure 6 Logo du systme


d'exploitation Raspbian [5].

La distribution est recommande Raspbian. Cest un systme


d'exploitation libre bas sur Debian optimis pour le matriel Raspberry Pi. Cependant
Raspbian fournit plus qu'un simple systme dexploitation : il est livr avec plus de 35.000
paquets, des logiciels prcompils qui nous facilitent le dveloppement soft [6].
Tous langages qui peuvent tre compils sur ARMv6 sont installs par dfaut sur le
Raspberry Pi : Python. C, C ++, Java, Scratch, et Ruby. La Fondation Raspberry Pi
recommande Python comme langage pour les tudiants.

1.4 Liaison avec bloc de lecture des paramtres vitaux


Le bloc de lecture des paramtres vitaux est constitu des interfaages des capteurs
et dune carte Zolertia Z1 base de microcontrleur MSP430.

1.4.1 Zolertia Z1
Zolertia Z1 est une plate-forme de dveloppement qui contient
essentiellement un microcontrleur de rfrenceMSP430F2 une
interface USB et un capteur de temprature intgr. Dans notre
cas, ce module peut reprsenter un pont entre les capteurs et le
Raspberry.
Figure 1.6 - Carte Zolertia Z1

15

La communication entre ces deux derniers sera faite laide de linterface USB et en se
basant sur un protocole quon a dvelopp.

1.4.2 MSP430
MSP est la famille des microcontrleurs de TI. Elle est base sur un processeur 16 bits en
architecture de type Reduced instruction set computing (RISC). Cette architecture
se caractrise par un nombre rduit dinstructions simples et faciles dcoder. Les
caractristiques de la famille MSP sont le faible taux de consommation et son intgration
facile plusieurs environnements de dveloppement.

1.4.3 Protocole
Cest lensemble des rgles qui permettent lchange des donnes entre deux systmes.
Dans notre cas, le protocole dvelopp se prsente de la faon suivante :

Le Raspberry envoie une trame de demande de paramtre la MSP.


La MSP rpond la trame selon les paramtres de la trame de demande.

1.4.3.1 Trame demande


Chaque trame commence par le caractre $ suivi de 3 lettres pour identifier le paramtre
vital demand. : Soit TEM pour la temprature, ECG pour l'lectrocardiographie ou PRE
pour la pression artrielle. Puis, un champ qui indique le nombre de voie, un autre pour le
nombre dchantillon, un pour la priode de lecture et enfin le dernier champ de la dtection
derreurs CRC.
Les diffrentes trames demande sont reprsentes dans les figures suivantes :

Figure 1.7 - Format de la trame demande correspondante la temprature.

16

Figure 1.8 - Format de la trame demande correspondante l'lectrocardiographie.

Figure 1.9 - Format de la trame demande correspondante la pression artrielle.

Notez bien : Il est recommand de mesurer la pression artrielle chaque dix minutes.

1.4.3.2 Trame rponse


La trame de rponse diffre de la trame de demande par un bloc de donnes demandes.
Les structures des diffrentes trames sont reprsentes dans les figures suivantes :

Figure 1.10 -Format de la trame rponse correspondante la temprature.

17

Figure 1.11 - Format de la trame demande correspondante l'lectrocardiographie.

Figure 1.12 - Format de la trame demande correspondante la pression artrielle.

1.5 Conclusion
Dans ce chapitre, nous avons justifi le choix de loutil de dveloppement comme tant la
partie centrale du Gateway et nous avons dfini un protocole dchange de donnes entre le
module de lecture et le Gateway.

18

Chapitre 2

Sommaire
2.1 Introduction
2.2 Connexion internet et golocalisation
2.3 Prise de main distance sur le Raspberry Pi
2.4 Service Web
2.5 Conclusion

19

2.1 Introduction
De plus en plus on a besoin de rendre les applications accessibles sur le web.
Les motivations sont multiples : vendre des services en ligne, faire communiquer des
applications... Dans notre cas, nous voulons publier les paramtres vitaux sur un serveur
web.

2.2 Connexion internet et golocalisation


2.2.1 Module GSM/GPRS & GPS pour Raspberry Pi
Ce module nous permet daccder aux rseaux
cellulaires HSPA 3G afin dtendre les
fonctionnalits du Raspberry aux applications
mobiles en utilisant le module SIM900. Nous
pouvons envoyer des SMS, passer des appels ou
crer des sockets TCP et UDP pour envoyer des
informations l'Internet. Les protocoles http et
FTP sont galement disponibles afin d'envoyer les
informations vers le cloud directement partir de
notre Raspberry.

Figure 2.1 - Module GSM/GPRS et GPS [7].

Il est aussi quip dun module GPS qui nous


permet de positionner la carte en analysant la trame NMEA [7].

Format des trames NMEA [8] :


Chaque trame commence par le caractre $ suivi de 2 lettres pour l'identifiant du
rcepteur : soit GP pour Global Positioning System, puis un groupe de 3 lettres pour
l'identifiant de la trame :

GGA : pour GPS Fix et Date.


GLL : pour Positionnement Gographique Longitude-Latitude.
GSA : pour DOP et satellites actifs.
GSV : pour Satellites visibles.
VTG : pour Direction (cap) et vitesse de dplacement (en nuds et Km/h).
RMC : pour donnes minimales exploitables spcifiques.

20

La trame qui nous intresse est celle qui commence par $GPGLL. Elle fournit la latitude,
la longitude et lheure :

Figure 2.2 Exemple dune trame NMEA complte [9].

2.2.2 Solution de rechange


Vu que ce module GSM/GPRS & GPS cote cher (environ
300 DT) nous avons essay de trouver une solution de
rechange : un modem USB 3G/4G et un routeur TL-MR3020
Le routeur TL-MR3020 nous permet de partager une
connexion haut dbit 3G/4G en wifi et rseau RJ45. Il peut
tre connect un ordinateur portable ou un adaptateur secteur
pour servir dalimentation (5Vcc/1A).
Cette solution est moins couteuse, environ 50 DT

Figure 2.313 - Routeur TL-MR3020 connect


un cl 3G Huawei E3131

2.3 Prise de main distance sur le Raspberry Pi


Bien que le Raspberry Pi fournisse une superbe qualit d'image via HDMI, il y a beaucoup
de scnarios o nous navons pas besoin d'un cran, et la connexion distance suffira.

2.3.1 SSH
Secure Shell est un protocole de rseau crypt pour initier des sessions Shell textuelles sur
des machines distantes de manire scurise. Cela permet un utilisateur d'excuter des
commandes sur l'invite de commande d'une machine sans qu'ils soient physiquement
prsents proximit de la machine.

2.3.2 VNC :
Virtual Network Computing est un systme de visualisation et de contrle
d'un ordinateur distant. Il permet au logiciel client VNC de transmettre les informations
de saisie du clavier et de la souris l'ordinateur distant, possdant un logiciel serveur VNC
21

travers un rseau informatique. Il utilise le protocole RFB qui est un protocole simple
pour l'accs distance aux interfaces graphiques des utilisateurs.

2.4 Service Web


Au cours des dernires annes, le Web a subi des transformations partir d'un rseau de
serveurs web servant principalement des pages statiques des navigateurs Web en une
architecture client-serveur complet, o les applications Web d'une seule page clients
utilisent les mthodes AJAX pour communiquer avec les applications ct serveur.

Figure 2.414 - Communication client-serveur [10].

Un service Web, dune manire large, est une mthode de communication entre deux
applications ou des dispositifs lectroniques sur le World Wide Web (WWW).

2.4.1 REST, AJAX and JAVASCRIPT


Avec REST, l'ide est de ne pas utiliser des mcanismes complexes pour connecter entre
clients et serveurs
Les services Web RESTful sont construits pour fonctionner au mieux sur le Web. Cest un
style architectural qui spcifie des contraintes telles que l'interface uniforme, la
performance et l'volutivit, qui permettent aux services de travailler mieux sur le Web.
AJAX ('Asynchronous JavaScript and XML) est une technique de dveloppement Web
populaire qui rend les pages Web interactives utilisant JavaScript. En AJAX, les demandes
sont envoyes au serveur en utilisant des objets XMLHttpRequest. La rponse est utilise
par le code JavaScript pour modifier la page courante dynamiquement. Chaque
XMLHttpRequest peut tre considre comme une demande de service REST, envoye
en utilisant GET. Et la rponse est souvent au format JSON.
JSON est un format lger d'change de donnes indpendant du langage utlilis.
22

Avec REST, une simple connexion rseau est tout ce que nous avons besoin. Nous
pouvons mme tester l'API (Application Programming Interface) directement, en tapant
lAPI URL dans le navigateur.

Figure 2.515 - Raspberry Pi en tant que serveur [10].

2.5 Conclusion
Dans ce chapitre, nous avons justifi et expliqu les techniques utiliser pour raliser la
communication du module central avec un serveur.

23

Sommaire
3.1 Introduction
3.2 Structure gnrale du Gateway
3.3 Prparation du Raspberry Pi
3.4 Vido streaming
3.5 Lecture de donnes partir du module Zolertia Z1
3.6 Affichage de la temprature sur un serveur
24

3.1 Introduction
Dans ce chapitre, nous dtaillons les tches que nous avons pu raliser ainsi que les
diffrents tests de validation.

3.2 Structure gnrale du Gateway


La figure ci-dessous montre les diffrents composants du Gateway :

Figure 3.1 - Structure gnrale du Gateway.

3.2 Prparation du Raspberry Pi


3.2.1 Installation de lOS Raspbian
Le Raspberry Pi est initialement sans systme dexploitation. Dabord nous avons tlcharg
Raspbian partir du site officiel : raspberrypi.org/downloads. Puis nous lavons install sur
la carte mmoire par le biais dun logiciel dcriture dimage : Win32 Disk Imager .

25

Figure 3.2 - Installation du Raspbian avec Win32 Disk Imager.

Apres avoir install le systme dexploitation, nous avons excut les commandes
suivantes dans une session de terminal pour le mettre jour :

sudo-apt-get-update
sudo-apt-get-upgrade

3.2.2 Connexion distance


Pour pouvoir se connecter distance notre Raspberry, il faut le connecter un rseau
local et faire appel au protocole SSH.

3.2.2.1 Connexion SSH


Le serveur SSH est activ par dfaut sur le Raspberry Pi. Sous Linux, le client tant intgr
dans la plupart des distributions. Par contre, sous Windows nous devons installer Putty
qui est un client SSH et Telnet.
Ensuite, il suffit dentrer ladresse IP du Raspberry dans Putty pour pouvoir se connecter.
Afin daccder linterface graphique, nous avons utilis le systme de visualisation VNC

3.2.2.2 VNC
Nous avons install un serveur VNC sur le Raspberry en lanant la commande suivante :

sudo apt-get install tightvncserver.

Ensuite, nous avons cr un fichier de dmarrage automatique et le lancement du serveur


sera par la commande qui suit :

vncserver :1 -geometry 1280x800 -depth 16

Le client VNC que nous avons utilis est VNC Viewer dont le principe de connexion est
similaire celui du SSH.

26

Figure 3.3- Accs l'interface graphique du Raspberry sur VNC Viewer.

3.2.2.3 Rservation dadresse IP


Un serveur DHCP distribue une adresse IP aux clients selon la disponibilit des adresses de
la plage dfinie. Cependant, il est possible de faire en sorte quun hte ait toujours la mme
adresse IP attribu, cest ce que lon appelle de la rservation dadresse.
On doit donc indiquer dans le serveur DHCP que telle adresse IP est rserve telle
adresse MAC.

Figure 3.4 - Rservation de l'adresse 192.168.0.100 au Raspberry.

3.3 Vido streaming


Nous avons test diffrentes solutions pour la diffusion dune vido en streaming dont le but
est de trouver la solution la moins consommatrice en ressources (mmoire, CPU)
tout en gardant une bonne qualit. La meilleure solution tait Motion .
Aprs avoir tlcharg motion, nous avons chang quelques paramtres dans le fichier de
configuration motion.conf .
daemon on

// Lancer en arrire-plan.

27

stream_localhost off

//Ne pas restreindre les connexions de


flux au localhost (par dfaut : on).

width 1280

// Largeur de limage.

height 720

// Hauteur de limage.

Enfin, nous avons donn les droits ncessaires au fichier pour que le Raspberry Pi puisse
les excuter :
sudo chmod 777 /etc/motion.conf // Tout

le monde peut lire, crire et excuter

sudo chmod 777 /usr/bin/motion

le monde peut lire, crire et excuter

// Tout

Voil, notre Raspberry Pi est maintenant quip pour faire un systme de vido-streaming
efficace. Par dfaut Motion diffuse la vido sur le port 8081.

Figure 3.5 - Test du vido-streaming

3.4 Lecture de donnes partir du module Zolertia Z1


Lide est de rcuprer la temprature transmise par la carte Z1 via Python. Cette carte
envoie toutes les 15 secondes la valeur de la temprature.
Z1 est connecte au Raspberry par son port USB, dtect comme port srie par Python.
Le programme de lecture Temp.py est dans la page suivante :

28

import serial
ser=serial.Serial(/dev/ttyUSB0,115200,timeout=20)
Temp=ser.read(10)
print Temp

le rsultat dexcution de ce programme nous donne ce rsultat :

Figure 3.6 - Rsultat d'excution du programme Temp.py

3.5 Affichage de la temprature sur un serveur


Nous voulons afficher la temprature sur une page web, pour cela, nous devons installer un
serveur web. Notre choix tait Apache .

3.5.1 Installation de Apache2


Apache est un serveur web qui nous permet de servir des fichiers HTML sur http. A laide
des modules supplmentaires et en utilisant des langages de script tels que PHP, nous
pouvons servir des pages web dynamiques.
Dans notre cas, nous allons se limiter publier la temprature dans une page html statique.
Pour installer Apache2, nous utilisons la commande suivante :

sudo apt-get install apache2

Par dfaut, Apache met un fichier HTML index.html de test dans le dossier web.
Pour valider le fonctionnement du serveur, il suffit de naviguer sur un browser vers
ladresse IP du Raspberry.

Figure 3.7 - Test de serveur Apache2 sur un navigateur web

29

3.5.2 Modification du script HTML


A laide dun programme python, nous allons lire la temprature via port srie, puis on va
linjecter dans le script HTML.
Le programme est le suivant :

Figure 3.8 - Programme de modification du fichier index.html

Le rsultat final est reprsent dans la figure :

Figure 3.9 - Test final de serveur web

3.6 Conclusion
Enfin, ce chapitre montre que nous avons russi raliser quelques tches ncessaires pour
notre projet.

30

Dans le cadre de ce projet de fin danne, nous avons commenc la conception


et la ralisation du Gateway dun systme de monitoring dun malade. Ainsi nous avons
ralis les tches suivantes :

Etudier le projet et choisir le module du traitement

Dfinir et implmenter un protocole dchange de donnes entre le module de lecture


des paramtres vitaux et la partie Gateway.

Porter le systme Linux sur Raspberry Pi et programmer les modules de traitements


de notre projet.

Choisir le module de communication GPRS/GPS et configurer la connexion avec


le serveur.

Tester et valider la communication avec le serveur.

Raliser une vido en streaming sur un serveur.

En perspective, nous allons continuer sur ce projet pour le finir avant fin Juillet 2015
qui reprsente le dlai de remise des projets du concours TI Innovation Challenge .
Enfin, ce projet tait une occasion dapprendre travailler en binme dune faon autonome
et efficace .Il nous a amen enrichir notre savoir-faire et notre exprience, et nous a permis
de nous initier au domaine de lembarqu. Ce dernier qui est devenu un grand domaine
de recherche et un grand march de travail en Tunisie.

31

[1] http://www.ti.com : site officiel de Texas Instruments


[2] http://opendata.interieur.gov.tn/fr/datas/index/type:7/categorie:5 : Site des donnes
ouvertes du Ministre de l'Intrieur tunisien
[3] F.Gauthier : L'Embarqu N 2 : Raspberry Pi, BeagleBone et Arduino : les nouvelles
stars de lembarqu, page 23, Juillet 2013.
[4] http://www.htpc.com.au/index.php/raspberrypi/raspberrypi
[5] http://raspberrypis.net/
[6] https://www.raspberrypi.org/documentation/raspbian : site officiel de Raspberry
[7] http://www.open-electronics.org/a-gsmgprs-gps-expansion-shield-for-raspberry-pi
[8] http://www.gpspassion.com/forumsen/topic.asp?TOPIC_ID=17661
[9] D.Mihajlovic : MikroElektronika : Hardware Department. Article, disponible sur internet
<http://www.mikroe.com/downloads/get/696/fr_article_pascal_dspic_04_09.pdf>.
[10] https://thefloppydisk.wordpress.com/

32

You might also like