Visualisation Open Data

De Wiki d'activités IMA
Révision datée du 5 mars 2015 à 11:34 par Etissot (discussion | contributions) (Semaine 3 (9/02/15))

Cahier des charges

Présentation générale du projet

Contexte

Une donnée ouverte est une donnée numérique qui peut être d’origine publique ou privée. L’Open Data (ou « l’ouverture des données » en français) a pour but de rendre les données numériques accessibles à tous, ainsi que de pouvoir les réutiliser librement, sans restriction juridique, financière ou technique. La SNCF ayant un grand nombre de voyageurs chaque jour (10 millions), l’Open Data lui permet d’optimiser et de valoriser le temps de voyage, de gérer l’affluence dans les trains, ainsi que de s’adapter aux besoins de chaque voyageur.

Objectif du projet

Le but de ce projet est de récupérer les données provenant du site SNCF Open Data et de les afficher. L'objectif sera ensuite d'exploiter des données récupérées à partir du projet IMA5 "Assistance globale pour aide au parking" afin d’aider à la mobilité.

Description du projet

Ce projet propose de récupérer des données provenant du site de la SNCF. Dans un premier temps, les données pourront être affichées de façon simple, sur un écran avec Arduino et sous forme de couleur (LED RGB), par exemple en choisissant un trajet et en évaluant son retard. Dans un second temps, les données seront utilisées pour améliorer la mobilité en lien avec le projet IMA5 "Assistance globale pour aide au parking".

Choix techniques : matériel et logiciel

  • Matrice LED [disponible, à réclamer à Thomas Vantroys]
  • Arduino Mega [fourni le 28/1/2015]
  • Shield Ethernet [à commander]
  • LED RGB [fournie le 28/1/2015]
  • Shield NFC [fourni le 4/2/2015]

Etapes du projet

  • Récupération des horaires théoriques et en temps réel via le site SNCF Open Data
    • Demande d'identifiant pour accéder aux horaires transilien temps réel
    • Code php permettant de récupérer ces données (théoriques et réelles) dans une base de données
    • Création d'une base de données
  • Afficher les données (faire clignoter la LED RGB + affichage de l'horaire )
    • Code C permettant de comparer les horaires réels et théoriques d'un trajet et dans une gare donnés
    • Code C pour la liaison série avec l'arduino afin d'allumer la LED RGB
    • Puis enfin permettre l'affichage de l'horaire sélectionné sur la matrice de LED
  • Choix du trajet et de la gare par l'utilisateur
    • Création d'un site web permettant à l'usager de faire son choix de gare et trajet
  • Communication entre l'arduino et le réseau local
    • Utilisation du shield ethernet
    • Création d'un script C afin de configurer le shield ethernet à l'aide de la librairie ethernet
  • Mettre en relation les données de l'application du parking intelligent du projet IMA5

Avancement du Projet

Semaine 1 (26/01/15)

  • Discussion avec les enseignants afin de définir le cahier des charges
  • Prise de rendez-vous avec les étudiants IMA5
  • Réflexion autour des différentes étapes du projet
  • Demande d'un login pour accéder aux horaires en temps réel du réseau transilien

Semaine 2 (2/02/15)

  • Réflexion autour de la base de données
  • Création de la base de données de nom ProjetOpenData sous MySQL
  • Implémentation des tables "Villes" et "Gare" qui serviront respectivement :

Semaine 3 (9/02/15)

  • Familiarisation avec le langage PHP
  • Récupération des données réelles du site infolignes.com pour une gare donnée à l'aide du code suivant :

<?php

// Creation d'un DOMDocument $doc = new DOMDocument;

$file = "http://www.infolignes.com/recherche.php?date_num_train=2015%7C02%7C11&num_train=&depart=&cityDepart=&destination=&cityDestination=&via=&cityVia=&type_heure=1&train_horaire_depart=12%7C00&station=gare+de+Lille+Flandres&stationCode=OCE87286005&sens=1&next_horaire=16%7C00&depart_ext=&destination_ext=&via_ext=";

// Recuperation du code HTML de la page web @$doc->loadHTMLFile($file);

// Si pas de problemes a la recuperation if ($doc != false){ // Creation d'un tableau pour recuperer les donnees contenues entre les balises <td> $tableElements = $doc->getElementsByTagName('td'); $nbElements = $tableElements->length;

// Affichage des donnees du tableau for ($i = 0; $i <$nbElements; $i++){ echo $tableElements->item($i)->nodeValue . '
'; } }

?>

  • Ce que nous avons obtenu pour les trois premières destinations :

16h00 gare de Calais Ville 844827 TRAIN TER A l'heure Cliquer ici pour plus d'information >> 16h02 gare de Amiens 843912 TRAIN TER A l'heure Cliquer ici pour plus d'information >> 16h02 gare de Béthune 842425 TRAIN TER A l'heure Cliquer ici pour plus d'information >>

  • Le but est maintenant d'insérer ces données dans la table "Gare" de la base de données, à l'aide d'un script php
  • Pour la semaine prochaine : commencer à travailler sur l'arduino et implantation des informations récupérées dans la base de données

Semaine 4 (16/02/15)

Semaine 5 (23/02/15)

Semaine 6 (9/03/15)

Semaine 7 (16/03/15)

Semaine 8 (23/03/15)

Semaine 9 (30/03/15)

Semaine 10 (6/04/15)

Semaine 11 (13/04/15)

Semaine 12 (20/04/15)

Fichiers Rendus