Rapportpfaghassenyasser 150618002234 Lva1 App6891

Embed Size (px)

Citation preview

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    1/33

     

    Projet de Fin d’Année 

    Spécialité : Télécommunications

    Présenté par :

    BEN AISSIA Yasser & CHAIEB Ghassene

    Gateway d’un système de monitoring

    d’un malade à un serveur d’urgence 

    Encadrant : Mr. Tahar Ezzedine (Maitre de conférence-ENIT) 

    Année universitaire : 2014/2015

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    2/33

    1

    C’est avec le plus grand honneur que nous avons réservé l’ouverture de notre rapporten signe de gratitude et de reconnaissance à l’égard de tous ceux qui nous ont aidés, de près

    ou de loin, à la réalisation de ce projet. 

     Nous tenons à adresser nos vifs remerciements à notre encadrant Mr. Tahar Ezzedine pour

    sa présence, son encadrement, ses conseils fournis de façon efficace Tout au longde la période de réalisation.

     Nous voudrions aussi exprimer nos remerciements sincères à Mr.  Mohamed Bedoui

    qui Nous a soutenus et aidés à progresser  dans notre projet.

     Nos remerciements s’adressent également aux membres du Jury qui nous font l'honneur de

     participer à notre soutenance.

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    3/33

     

    2

    Gateway d’un système de monitoring

    d’un malade à un serveur d’urgence 

    Résumé

    A une époque où l’innovation en système embarqué est plus que jamais nécessaire, des défis

    se profilent à l’horizon surtout quand il s’agit de sauver des vies humaines des dangers qui

    les entourent. Parmi ces dangers, on peut citer les accidents de la route qui coûtent

    des victimes nécessitant une intervention sanitaire immédiate. Dans ce contexte, et en

    se lançant au nom de la Tunisie dans une compétition internationale, nous avons proposé

    une idée originale de projet qui consiste à réaliser une boite d’urgence intelligente capable

    d’analyser les éléments vitaux d’un blessé et de guider l’utilisateur  par les soins primaires

    en se connectant à un serveur d’urgence. Le but de notre projet de fin d’année est de réaliser

    la partie Gateway de ce système. 

    Mots clés

    Gateway, Raspberry, Capteur, Monitoring, Serveur web. 

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    4/33

     

    3

    Gateway of a patient monitoring system

    with an emergency server

    Abstract :

    The embedded system innovation is needed more than ever, especially when it comes tosaving lives from dangers such as street accidents. In this case, an immediate interventionis usually necessary in this context, and by launching on behalf of Tunisia in an internationalcompetition, we proposed an original idea of a project, which consists in a Smart First AidKit 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 theGateway part of this system.

    Key Words:

    Gateway, Raspberry, Sensor, Monitoring, Web server  

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    5/33

     

    4

    Introduction générale ........................................................................................................................ 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 Présentation générale ..................................................................................................... 14

    1.3.2 Les composants standards de RaspBerry Pi .................................................................... 14

    1.3.3 Système d’exploitation ................................................................................................... 15

    1.4 Liaison avec bloc de lecture des paramètres 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 « réponse » ................................................................................................... 17

    1.5 Conclusion .............................................................................................................................. 18

    Chapitre 2 : Communication avec un serveur web.......................................................................... 19

    2.1 Introduction............................................................................................................................ 20

    2.2 Connexion internet et géolocalisation ................................................................................... 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 : Réalisation et tests ....................................................................................................... 24

    3.1 Introduction............................................................................................................................ 25

    3.2 Structure générale du Gateway ............................................................................................. 253.2 Préparation du Raspberry Pi .................................................................................................. 25

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    6/33

     

    5

    3.2.1 Installation de l’OS « 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 Réservation d’adresse IP .......................................................................................... 27

    3.3 Vidéo streaming ..................................................................................................................... 27

    3.4 Lecture de données à partir du module Zolertia Z1 ............................................................... 28

    3.5 Affichage de la température sur un serveur .......................................................................... 29

    3.5.1 Installation de « Apache2 » ............................................................................................. 29

    3.5.2 Modification du script HTML ........................................................................................... 30

    3.6 Conclusion .............................................................................................................................. 30

    Conclusion générale ......................................................................................................................... 31Bibliographie .................................................................................................................................... 32

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    7/33

     

    6

    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 système d'exploitation Raspbian [5]. ............................................................ 15

    Figure 1.7 - Carte Zolertia Z1 .......................................................................................................... 15

    Figure 1.8 - Format de la trame demande correspondante à la température. .............................. 16

    Figure 1.9 - Format de la trame demande correspondante à l'électrocardiographie. .................. 17

    Figure 1.10 - Format de la trame demande correspondante à la pression artérielle. ..................... 17Figure 1.11 -Format de la trame réponse correspondante à la température. ................................ 17

    Figure 1.12 - Format de la trame demande correspondante à l'électrocardiographie. .................. 18

    Figure 1.13 - Format de la trame demande correspondante à la pression artérielle. ..................... 18

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

    Figure 2.2 - Exemple d’une trame NMEA complète [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 générale du Gateway. ................................................................................. 25

    Figure 3.2 - Installation du Raspbian avec Win32 Disk Imager. ..................................................... 26Figure 3.3 - Accès à l'interface graphique du Raspberry sur VNC Viewer. ..................................... 27

    Figure 3.4 - Réservation de l'adresse 192.168.0.100 au Raspberry. .............................................. 27

    Figure 3.5 - Test du vidéo-streaming .............................................................................................. 28

    Figure 3.6 - Résultat d'exécution 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

    http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655097http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655098http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655099http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655100http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655101http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655102http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655103http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655110http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655112http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655119http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655123http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655123http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655119http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655112http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655110http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655103http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655102http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655101http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655100http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655099http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655098http://e/ENIT/2%C3%A9me%20Ann%C3%A9e/PFA/rapport.docx%23_Toc419655097

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    8/33

     

    7

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

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    9/33

     

    8

    TI Texas Instruments

    USB Universal Serial Bus

    PFA Projet de Fin d’Année

    RAM R andom Access Memory

    RTOS R eal-Time O perating System

    RCA R adio Corporation of America

    GPIO General Purpose Input/Output

    RISC R educed Instruction Set Computing

    HDMI High Definition Multimedia Interface

    HSPA High S peed Packet Access

    TCP Transmission Control Protocol 

    UDP User  Datagram Protocol

    DHCP Dynamic Host Configuration Protocol

    NMEA National Marine Electronics Association HTTP Hyper Text Transfer Protocol 

    FTP File Transfer  Protocol

    RFB R emote Frame Buffer

    SSH Secure Shell

    VNC Virtual Network Computing

    AJAX Asynchronous JavaScript And XML

    REST RE presentational State Transfer

    JSON JavaScript O bject Notation

    http://fr.wikipedia.org/wiki/Radio_Corporation_of_Americahttp://fr.wikipedia.org/wiki/Radio_Corporation_of_Americahttp://fr.wikipedia.org/wiki/Radio_Corporation_of_Americahttp://fr.wikipedia.org/wiki/Radio_Corporation_of_Americahttp://fr.wikipedia.org/wiki/Radio_Corporation_of_Americahttp://fr.wikipedia.org/wiki/Radio_Corporation_of_Americahttp://fr.wikipedia.org/wiki/Radio_Corporation_of_America

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    10/33

     

    9

    Texas Instruments (TI) [1] est une entreprise mondiale fonctionnant dans 35 pays.

    Elle est renommée dans le domaine des semi-conducteurs et des composants électroniques

     passifs, fondée en 1941 et basée à Dallas. TI organise annuellement une compétition

    internationale « TI Innovation Challenge » dans laquelle elle sollicite les étudiants en génie

    à proposer des idées des projets innovants qui utilisent les composants TI. Cette

    com pétition concerne l’Amérique du Nord, l’Europe et un nombre limité des pays

    du Moyen-Orient et de l’Afrique. Dans ce cadre, et en se lançant au nom de la Tunisienous avons proposé une idée originale qui a été retenue par la commission de sélection

    de TI, ce qui nous a permis de participer à la compétition.

    Chaque année, des milliers de vies sont perdus dans les accidents de la route. En Tunisie

    il y a eu 1565 morts et 12354 blessés sur les routes pour un total de 7971 accidents

    en 2014, d’après les chiff res fournis par le Ministère de l’Intérieur [2]. Dans plusieurs cas

    l’une des principales causes est le temps mis par les services d’urgence pour se rendre sur

     place. Afin de contribuer à pallier ce problème et à réduire le nombre des victimes

    nous avons proposé une idée de projet intitulé « Smart Advanced First Aid Kit ».

    En effet, les moyens de transport disposent normalement d’une trousse de secours qui

    contient des médicaments et des instruments des premiers soins. Cet outil s’avère

    insuffisant dans plusieurs cas (crise cardiaque, hypertension…) 

     Notre projet, proposé à TI et baptisé « Smart Advanced First Aid Kit », consiste

    en une boite d’urgence intelligente. Cette boite sera capable de collecter et envoyer

    les paramètres vitaux de la victime à un serveur installé chez les services d’urgence. Elle

    disposera, en plus, d’une communication audiovisuelle pour que le médecin d’urgence

     puisse donner les instructions et les recommandations à la personne présente à côté de la

    victime.

    Le but est de réaliser les interventions nécessaires le temps de l’arrivée des services de

    secours. Ce temps est très précieux et très critique pour sauver des vies humaines dans

     plusieurs cas. Le projet en totalité se compose de trois parties un bloc lecture des

     paramètres vitaux de la victime, un Gateway et un serveur central.

    On s’intéresse dans notre projet de fin d’année (PFA) à réaliser la partie Gateway

     permettant de lire les données à partir du « bloc lecture des paramètres vitaux »

    et la communication avec le serveur.

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    11/33

     

    10

    Pour présenter la démarche que nous avons suivie, notre rapport se présente de la façon

    suivante :

    Dans une première partie, nous donnerons une étude et un aperçu sur le choix des solutions

     pratiques que nous allons utiliser dans la liaison avec le bloc lecture, la deuxième partie

    s’intéresse à la communication avec le serveur web. Enfin, la dernière partie va mettre

    l’accent sur une démonstration qui résume le travail réalisé. 

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    12/33

     

    11

    Chapitre

    Sommaire

    1.1 Introduction

    1.2 Choix de la solution

    1.3 Raspberry Pi

    1.4 Liaison avec bloc de lecture des paramètres vitaux

    1.5 Conclusion

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    13/33

     

    12

    1.1 Introduction

    Dans ce premier chapitre, on s’intéresse à l’étude de module central de Gateway et sa liaison

    avec la partie qui se base sur la détection des paramètres vitaux par les capteurs.

    1.2 Choix de la solution

    Une analyse, qui consiste à rechercher et à caractériser les fonctions que le produit doit offrir

     pour satisfaire les besoins demandés, peut nous aider à limiter les choix des solutions

     pratiques. Dans notre cas, le projet nécessite une partie centrale capable de traiter les données

    reçues et les envoyer à un serveur d’urgence par le biais d’une connexion internet mobile.

    De plus, le système est censé avoir la capacité de lancer une conversation audiovisuelle

    à l’aide d’une webcam. 

    Durant notre recherche sur la partie Gateway, nous avons constaté qu’au cours des dernières

    années, de nombreuses cartes de développement modulaire sont apparues. Chaque carte présente des avantages et des inconvénients. Elles se diffèrent par leurs fonctionnalitésleurs complexités et leurs prix.

    On peut citer parmi ces cartes :

      Carte Arduino  : c’est un circuit intégré  à base d’un

    microcontrôleur programmable qui peut analyser et produire des

    signaux électriques de façon à effectuer des tâches précises.

      Carte STM32 :  c’est un circuit intégré à baseun microcontrôleur composé d’un processeur ARM, une mémoire

    RAM et une interface de débogage.

      RaspBerry Pi B+ : un mini-ordinateur qui exécute le système

    d’exploitation Linux. 

      Beaglebone : une mini-carte électronique qui possède les

    fonctionnalités d’un ordinateur basique.

    Figure 1.1 –  Carte Arduino UNO.

    Figure 1.2 - Carte STM32.

    Figure 1.3 - Carte Raspberry PI B+. 

    Figure 1.4 - Carte Beaglebone.

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    14/33

     

    13

    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 BeagleboneRaspberry Pi

    B+STM32

    Naissance 2005 2008 2012 2007

    Prix (dollars) 30 90 Moins de 40 10

    Processeur ATmeg328 8bitsSitara335x sur un

    cortex M8

    BCM2835 sur un

    ARM11

    -CPU intégrée

    Cortex

    RAM 2 Ko 256 Mo 512 Mo Max 128 Ko

    Mémoire Flash 32 Ko MicroSD - 4G MicroSD – 32 G Max 2048 Ko

    Consommation(w) 0.5 2.5 3.5 basse

    Ethernet Non oui oui non

    USB Non 1 4 Micro-USB

    Sortie vidéo Non non HDMI, RCA non

    Système d’exploitation  RTOS Linux Linux RTOS

    Analyse du tableau comparatif :

       Nous remarquons qu’en terme de mémoire vive ou mémoire externe, la capacité de

    Raspberry est plus importante que les autres cartes.

      Le Raspberry possède des connectiques (HDMI, port Ethernet, port USB…) de plus par rapport au Beaglebone, STM32 et Arduino UNO.

      Le Raspberry et le Beaglebone se diffèrent par leur exécution du système Linux qui

    facilite les communications avec le monde extérieur.

      L’Arduino a une puissance faible devant les autres cartes.  

    En tenant compte du tableau 1.1, on déduit que le Raspberry représente un outil plus

     performant et mieux adapté à nos besoins. Le Raspberry possède des connectiques

    convenables au fonctionnement de notre système .De plus, son rapport performance-prixest plus qu’abordable.

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    15/33

     

    14

    1.3 Raspberry Pi

    1.3.1 Présentation générale

    Raspberry est une car te mère d’un mini-ordinateur qui peut être branchée à n’importe quel

     périphérique (souris, clavier …). Cette carte est fabriquée pour aider à étudier les ordinateurs

    et pour représenter un moyen d’apprentissage de la programmation informatique en plusieurs

    langages (python, scratch...) .Elle est aussi capable de lire les vidéos à haute définition et

    même à installer des jeux vidéo.

    L’intérêt d’utiliser le Raspberry PI est sa capacité d’interaction avec le monde extérieur et

    d’exécuter plusieurs variantes du  système d'exploitation libre (GNU/Linux,  Raspbian

    Debian …) et des autres logiciels compatibles.

    1.3.2 Les composants standards de RaspBerry Pi

    La figure suivante représente un RaspBerry standard :

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

    faible consommation , introduites à partir de 1983  par « Acorn Computers »

    et développées depuis 1990 par « ARM Ltd » .

      Mémoire vive RAM : C’est  la mémoire dans laquelle le RaspBerry place les

    données lors de son traitement.

      Une connectique variée :

    •  HDMI : « High Definition Multimedia Interface » permet de relier le RaspBerry

    PI à un dispositif compatible : écran LCD ou un vidéoprojecteur … 

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

    http://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitationhttp://fr.wikipedia.org/wiki/GNUhttp://fr.wikipedia.org/wiki/Linuxhttp://fr.wikipedia.org/wiki/Architecture_mat%C3%A9riellehttp://fr.wikipedia.org/wiki/1983http://fr.wikipedia.org/wiki/Acorn_Computershttp://fr.wikipedia.org/wiki/1990http://fr.wikipedia.org/wiki/ARM_(soci%C3%A9t%C3%A9)http://fr.wikipedia.org/wiki/Vid%C3%A9oprojecteurhttp://fr.wikipedia.org/wiki/Vid%C3%A9oprojecteurhttp://fr.wikipedia.org/wiki/ARM_(soci%C3%A9t%C3%A9)http://fr.wikipedia.org/wiki/1990http://fr.wikipedia.org/wiki/Acorn_Computershttp://fr.wikipedia.org/wiki/1983http://fr.wikipedia.org/wiki/Architecture_mat%C3%A9riellehttp://fr.wikipedia.org/wiki/Linuxhttp://fr.wikipedia.org/wiki/GNUhttp://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    16/33

     

    15

    •  Port USB 2.0 : Le port  « Universal Serial Bus » est un port série qui sert à

    connecter le RaspBerry aux autres périphériques.

    •  Port Ethernet : C’est  un port qui correspond au protocole international

    ETHERNET de réseau local à commutation de paquets. •  Prise RCA : « Radio Corporation of America » est

    un connecteur  électrique utilisé dans le domaine audio/vidéo. 

    •  un slot les cartes SD : Le RaspBerry a besoin d’une mémoire externe

    supplémentaire pour fonctionner. Ce slot permet de connecter la mémoire

    externe. 

    •  une prise jack : C’est une connectique audio-vidéo. 

    •  GPIO : « General Purpose Input/Output » sont des ports d’Entrée/Sortie.

    1.3.3 Système d’exploitation La plupart des systèmes qui fonctionnent sur Raspberry Pi

    sont des versions du système d'exploitation Linux. Parce que

    Linux est open source, les développeurs peuvent l’ado pter

     pour des buts spécifiques. Dans le cas du Raspberry Pi, le

    matériel léger nécessite un système réduit et privé

    d'applications inutiles.

    La distribution est recommandée Raspbian. C’est un système

    d'exploitation libre basé sur Debian optimisé pour le matériel Raspberry Pi. Cependant

    Raspbian fournit plus qu'un simple système d’exploitation : il est livré avec plus de 35.000 paquets, des logiciels précompilés qui nous facilitent le développement soft [6].

    Tous langages qui peuvent être compilés sur ARMv6 sont installés par défaut 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 paramètres vitaux

    Le bloc de lecture des paramètres vitaux est constitué des interfaçages des capteurset d’une carte Zolertia Z1 à base de microcontrôleur MSP430.

    1.4.1 Zolertia Z1Zolertia Z1 est une plate-forme de développement qui contient

    essentiellement un microcontrôleur de référenceMSP430F2 une

    interface USB et un capteur de température intégré. Dans notre

    cas, ce module peut représenter un pont entre les capteurs et le

    Raspberry.

    Figure 6 Logo du système

    d'exploitation Raspbian [5]. 

    Figure 1.6 - Carte Zolertia Z1 

    http://fr.wikipedia.org/wiki/Radio_Corporation_of_Americahttp://fr.wikipedia.org/wiki/Connectiquehttp://fr.wikipedia.org/wiki/%C3%89lectriquehttp://fr.wikipedia.org/wiki/Audiohttp://fr.wikipedia.org/wiki/Vid%C3%A9ohttp://fr.wikipedia.org/wiki/Vid%C3%A9ohttp://fr.wikipedia.org/wiki/Audiohttp://fr.wikipedia.org/wiki/%C3%89lectriquehttp://fr.wikipedia.org/wiki/Connectiquehttp://fr.wikipedia.org/wiki/Radio_Corporation_of_America

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    17/33

     

    16

    La communication entre ces deux derniers sera faite à l’aide de l’interface USB et en se

     basant sur un protocole qu’on a développé.

    1.4.2 MSP430

    MSP est la famille des microcontrôleurs de TI. Elle est basée sur un processeur 16 bits enarchitecture de type Reduced instruction set computing (RISC). Cette architecturese caractérise par un nombre réduit d’instructions simples et faciles à décoder. Lescaractéristiques de la famille MSP sont le faible taux de consommation et son intégrationfacile à plusieurs environnements de développement. 

    1.4.3 Protocole

    C’est l’ensemble des règles qui permettent l’échange des données entre deux systèmes.  

    Dans notre cas, le protocole développé se présente de la façon suivante :

    •  Le Raspberry envoie une trame de demande de paramètre à la MSP.

    •  La MSP répond à la trame selon les paramètres de la trame de demande.

    1.4.3.1 Trame « demande »

    Chaque trame commence par le caractère « $ » suivi de 3 lettres pour identifier le paramètre

    vital demandé. : Soit TEM pour la température, ECG pour l'électrocardiographie ou PRE

     pour la pression artérielle. Puis, un champ qui indique le nombre de voie, un autre pour le

    nombre d’échantillon, un pour la période de lecture et enfin le dernier champ de la détection

    d’erreurs CRC. 

    Les différentes trames « demande » sont représentées dans les figures suivantes :

    Figure 1.7 - Format de la trame demande correspondante à la température.

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    18/33

     

    17

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

    Figure 1.9 - Format de la trame demande correspondante à la pression artérielle.

    Notez bien : Il est recommandé de mesurer la pression artérielle chaque dix minutes. 

    1.4.3.2 Trame « réponse »

    La trame de réponse diffère de la trame de demande par un bloc de données demandées.

    Les structures des différentes trames sont représentées dans les figures suivantes :

    Figure 1.10 -Format de la trame réponse correspondante à la température.

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    19/33

     

    18

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

    Figure 1.12 - Format de la trame demande correspondante à la pression artérielle.

    1.5 Conclusion

    Dans ce chapitre, nous avons justifié le choix de l’outil de développement comme étant la

     partie centrale du Gateway et nous avons défini un protocole d’échange de données entre le

    module de lecture et le Gateway.

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    20/33

     

    19

    Chapitre 2

    Sommaire

    2.1 Introduction

    2.2 Connexion internet et géolocalisation

    2.3 Prise de main à distance sur le Raspberry Pi

    2.4 Service Web

    2.5 Conclusion 

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    21/33

     

    20

    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 paramètres vitaux sur un serveurweb.

    2.2 Connexion internet et géolocalisation

    2.2.1 Module GSM/GPRS & GPS pour Raspberry Pi

    Ce module nous permet d’accéder aux réseaux

    cellulaires HSPA 3G afin d’étendre les

    fonctionnalités du Raspberry aux applicationsmobiles en utilisant le module SIM900. Nous

     pouvons envoyer des SMS, passer des appels ou

    créer 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.

    Il est aussi équipé d’un 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 caractère « $ » suivi de 2 lettres pour l'identifiant du

    récepteur : 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 Géographique Longitude-Latitude.

      GSA : pour DOP et satellites actifs.

      GSV : pour Satellites visibles.  VTG : pour Direction (cap) et vitesse de déplacement (en nœuds et Km/h).  

      RMC : pour données minimales exploitables spécifiques.

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

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    22/33

     

    21

    La trame qui nous intéresse est celle qui commence par $GPGLL. Elle fournit la latitude,

    la longitude et l’heure :

     

    Figure 2.2 Exemple d’une trame NMEA complète [ 9].

    2.2.2 Solution de rechange

    Vu que ce module GSM/GPRS & GPS coûte 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 débit 3G/4G en wifi et réseau RJ45. Il peut

    être connecté à un ordinateur portable ou un adaptateur secteur

     pour servir d’alimentation (5Vcc/1A).

    Cette solution est moins couteuse, environ 50 DT

    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 scénarios où nous n’avons pas besoin d'un écran, et la connexion à distance suffira .

    2.3.1 SSH

    Secure Shell est un protocole de réseau crypté pour initier des sessions Shell textuelles sur

    des machines distantes de manière sécurisée. Cela permet à un utilisateur d'exécuter des

    commandes sur l'invite de commande d'une machine sans qu'ils soient physiquement

     présents à proximité de la machine.

    2.3.2 VNC :

    Virtual Network Computing est un système de visualisation et de contrôle

    d'un ordinateur distant. Il permet au logiciel client VNC de transmettre les informationsde saisie du clavier et de la souris à l'ordinateur distant, possédant un logiciel serveur VNC

    Figure 2.313 - Routeur TL-MR3020 connecté

    à un clé 3G Huawei E3131 

    http://fr.wikipedia.org/wiki/Ordinateurhttp://fr.wikipedia.org/wiki/Clavier_informatiquehttp://fr.wikipedia.org/wiki/Souris_(informatique)http://fr.wikipedia.org/wiki/Souris_(informatique)http://fr.wikipedia.org/wiki/Clavier_informatiquehttp://fr.wikipedia.org/wiki/Ordinateur

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    23/33

     

    22

    à travers un réseau informatique. Il utilise le protocole RFB qui est un protocole simple

     pour l'accès à distance aux interfaces graphiques des utilisateurs.

    2.4 Service Web

    Au cours des dernières années, le Web a subi des transformations à partir d'un réseau 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 méthodes AJAX pour communiquer avec les applications côté serveur.

    Figure 2.414 - Communication client-serveur [10].

    Un service Web, d’une manière large, est une méthode 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'idée est de ne pas utiliser des mécanismes complexes pour connecter entre

    clients et serveurs

    Les services Web RESTful sont construits pour fonctionner au mieux sur le Web. C’est unstyle architectural qui spécifie 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 développement Web

     populaire qui rend les pages Web interactives utilisant JavaScript. En AJAX, les demandes

    sont envoyées au serveur en utilisant des objets XMLHttpRequest. La réponse est utilisée

     par le code JavaScript pour modifier la page courante dynamiquement. Chaque

    XMLHttpRequest peut être considérée comme une demande de service REST, envoyée

    en utilisant GET. Et la réponse est souvent au format JSON.

    JSON est un format léger d'échange de données indépendant du langage utlilisé.

    http://fr.wikipedia.org/wiki/R%C3%A9seau_informatiquehttp://fr.wikipedia.org/wiki/Remote_Frame_Bufferhttp://fr.wikipedia.org/wiki/Protocole_de_communicationhttp://fr.wikipedia.org/wiki/Interface_graphiquehttp://fr.wikipedia.org/wiki/Interface_graphiquehttp://fr.wikipedia.org/wiki/Protocole_de_communicationhttp://fr.wikipedia.org/wiki/Remote_Frame_Bufferhttp://fr.wikipedia.org/wiki/R%C3%A9seau_informatique

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    24/33

     

    23

    Avec REST, une simple connexion réseau est tout ce que nous avons besoin. Nous

     pouvons même tester l'API (Application Programming Interface) directement, en tapant

    l’API 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 réaliser la

    communication du module central avec un serveur . 

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    25/33

     

    24

    Sommaire

    3.1 Introduction

    3.2 Structure générale du Gateway

    3.3 Préparation du Raspberry Pi

    3.4 Vidéo streaming

    3.5 Lecture de données à partir du module Zolertia Z1

    3.6 Affichage de la température sur un serveur 

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    26/33

     

    25

    3.1 Introduction

    Dans ce chapitre, nous détaillons les tâches que nous avons pu réaliser ainsi que les

    différents tests de validation.

    3.2 Structure générale du GatewayLa figure ci-dessous montre les différents composants du Gateway :

    Figure 3.1 - Structure générale du Gateway.

    3.2 Préparation du Raspberry Pi3.2.1 Installation de l’OS « Raspbian »

    Le Raspberry Pi est initialement sans système d’exploitation. D’abord nous avons téléchargé

    Raspbian à partir du site officiel : raspberrypi.org/downloads. Puis nous l’avons installé sur

    la carte mémoire par le biais d’un logiciel d’écriture d’image : « Win32 Disk Imager ».

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    27/33

     

    26

    Figure 3.2 - Installation du Raspbian avec Win32 Disk Imager. 

    Apres avoir installé le système d’exploitation, nous avons exécuté 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 réseau

    local et faire appel au protocole SSH.

    3.2.2.1 Connexion SSHLe serveur SSH est activé par défaut sur le Raspberry Pi. Sous Linux, le client étant intégré

    dans la plupart des distributions. Par contre, sous Windows nous devons installer « Putty »

    qui est un client SSH et Telnet.

    Ensuite, il suffit d’entrer l’adresse IP du Raspberry dans Putty  pour pouvoir se connecter.

    Afin d’accéder à l’interface graphique, nous avons utilisé le système de visualisation VNC 

    3.2.2.2 VNC

     Nous avons installé un serveur VNC sur le Raspberry en lançant la commande suivante :

      sudo apt-get install tightvncserver.

    Ensuite, nous avons créé un fichier de démarrage 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.

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    28/33

     

    27

    Figure 3.3- Accès à l'interface graphique du Raspberry sur VNC Viewer. 

    3.2.2.3 Réservation d’adresse IP 

    Un serveur DHCP distribue une adresse IP aux clients selon la disponibilité des adresses de

    la plage définie. Cependant, il est possible de faire en sorte qu’un hôte ait toujours la même

    adresse IP attribué, c’est ce que l’on appelle de la réservation d’adresse. 

    On doit donc indiquer dans le serveur DHCP que telle adresse IP est réservée à telle

    adresse MAC.

    Figure 3.4 - Réservation de l'adresse 192.168.0.100 au Raspberry.

    3.3  Vidéo streaming

     Nous avons testé différentes solutions pour la diffusion d’une vidéo en streaming dont le butest de trouver la solution la moins consommatrice en ressources (mémoire, CPU…)tout en gardant une bonne qualité. La meilleure solution était « Motion ».

    Après avoir téléchargé motion, nous avons changé quelques paramètres dans le fichier deconfiguration « motion.conf ».

    daemon on // Lancer en arrière-plan. 

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    29/33

     

    28

    stream_localhost off  // Ne pas restreindre les connexions deflux au localhost (par défaut : on). 

    width 1280  // Largeur de l’image.

    height 720  // Hauteur de l’image. 

    Enfin, nous avons donné les droits nécessaires au fichier pour que le Raspberry Pi puisse

    les exécuter :

    sudo chmod 777 /etc/motion.conf // Tout le monde peut lire, écrire et exécuter

    sudo chmod 777 /usr/bin/motion // Tout le monde peut lire, écrire et exécuter  

    Voilà, notre Raspberry Pi est maintenant équipé pour faire un système de vidéo-streamingefficace. Par défaut Motion diffuse la vidéo sur le port 8081. 

    3.4  Lecture de données à partir du module Zolertia Z1

    L’idée est de récupérer la température transmise par la carte Z1 via Python. Cette carte

    envoie toutes les 15 secondes la valeur de la température.

    Z1 est connectée au Raspberry par son port USB, détecté comme port série par Python.

    Le programme de lecture « Temp.py » est dans la page suivante :

    Figure 3.5 - Test du vidéo-streaming 

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    30/33

     

    29

    import serial

    ser=serial.Serial(‘/dev/ttyUSB0’,115200,timeout=20)

    Temp=ser.read(10)

    print Temp

    le résultat d’exécution de ce programme nous donne ce résultat :

    Figure 3.6 - Résultat d'exécution du programme Temp.py

    3.5  Affichage de la température sur un serveur

     Nous voulons afficher la température 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 l’aide

    des modules supplémentaires 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 température dans une page html statique.

    Pour installer Apache2, nous utilisons la commande suivante :

      sudo apt-get install apache2

    Par défaut, 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

    l’adresse IP du Raspberry. 

    Figure 3.7 - Test de serveur Apache2 sur un navigateur web 

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    31/33

     

    30

    3.5.2 Modification du script HTML

    A l’aide d’un programme python, nous allons lire la température via port série, puis on va

    l’injecter dans le script HTML.

    Le programme est le suivant :

    Figure 3.8 - Programme de modification du fichier index.html  

    Le résultat final est représenté dans la figure :

    3.6 Conclusion

    Enfin, ce chapitre montre que nous avons réussi à réaliser quelques tâches nécessaires pour

    notre projet.

    Figure 3.9 - Test final de serveur web 

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    32/33

     

    31

    Dans le cadre de ce projet de fin d’année, nous avons commencé la conception

    et la réalisation du Gateway d’un système de monitoring d’un malade. Ainsi nous avons

    réalisé les tâches suivantes :

    •  Etudier le projet et choisir le module du traitement

    •  Définir et implémenter un protocole d’échange de données entre le module de lecture

    des paramètres vitaux et la partie Gateway.

    •  Porter le système 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.

    •  Réaliser une vidéo en streaming sur un serveur.

    En perspective, nous allons continuer sur ce projet pour le finir avant fin Juillet 2015

    qui représente le délai de remise des projets du concours « TI Innovation Challenge ».

    Enfin, ce projet était une occasion d’apprendre à travailler en binôme d’une façon autonome

    et efficace .Il nous a amené à enrichir notre savoir-faire et notre expérience, et nous a permis

    de nous initier au domaine de l’embarqué. Ce dernier qui est devenu un grand domaine

    de recherche et un grand marché de travail en Tunisie.

  • 8/17/2019 Rapportpfaghassenyasser 150618002234 Lva1 App6891

    33/33

     

    [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 données

    ouvertes du Ministère de l'Intérieur tunisien

    [3] F.Gauthier : L'Embarqué N° 2 : Raspberry Pi, BeagleBone et Arduino : les nouvelles

    stars de l’embarqué, 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

    .

    [10] https://thefloppydisk.wordpress.com/