BorneNFC

De fablab
Aller à : navigation, rechercher

Introduction

Description du projet

Le projet Borne NFC a pour but de réaliser une borne NFC qui affiche, lorsque un étudiant y pose sa carte étudiante, son prochain cours. Cette borne doit dans l’idée être placée à l’entrée de l'Ensimag. On pourrait même imaginer plusieurs bornes disposées aux entrées de l’Ensimag.

Ce projet à été réalisé à distance dans le contexte de la COVID 19. Nous avions dans un premier temps pensez construire la borne avec une Raspberry Pi, mais ayant fait le projet sans nous rendre au Fablab, nous avons utilisé nos téléphones en guise de lecteur NFC et d’affichage.

Membres de l’équipe

  • Julien Bitaillou
  • Mathilde Grapin
  • Johyn Papin

Problématique

Notre question principale était : comment réduire le coût écologique de ce projet au maximum ? Cela passe par plusieurs points :

  • le matériel
- utiliser du matériel d’occasion
- éteindre le matériel lorsqu’il n’est pas utilisé
  • le nombre de requête sur le réseau
- mettre en cache les données qui sont souvent utilisées
- factoriser les requêtes le plus possible
  • la quantité de données stockées
- supprimer automatiquement les données au bout d’un certain temps

Matériel utilisé

  • un téléphone muni d’une puce NFC

Scénario d’utilisation

Vue générale

Média:Demo_borne_nfc.mp4

Inscription d’un étudiant

Dans le cas où c’est la première fois qu’un étudiant scanne sa carte, l’application lui demande ses identifiants ADE.

L’application associe l’identifiant de la puce NFC aux informations de connexion de l’étudiant car ses informations nous sont nécessaires pour accéder aux ressources spécifiques d’un étudiant sur Zénith et sur ADE.

Du côté backend, on enregistre les identifiants de l’étudiant et nous récupérons ses ressources sur Zénith, c’est à dire les matières auxquelles est inscrit l’étudiant (une ressource peut donc être associée à plusieurs cours dans la semaine).

Pour récupérer les ressources, nous nous connectons au Zénith de l’étudiant. Delà, nous extrayons les ressources contenues dans le lien "Emploi du temps export ics".

Les ressources sont stockées en base de données pour ne pas être récupérées à chaque requête.

L’application redirige automatiquement l’étudiant sur la page d’affichage des prochains cours. Désormais, à chaque scan de carte, l’étudiant arrivera directement sur la page des cours.

Usage une fois inscrit

Si l’étudiant scanne sa carte et qu’il est inscrit, l’application affiche la page des cours.

Pour récupérer les cours, l’API va faire une requête vers ADE en passant en paramètre les ressources de l’utilisateur. ADE renvoie les cours au format ICS. Il reste à les convertir au format JSON pour les renvoyer à l’application. Plus précisement, il n’est envoyé que deux cours:

  • le cours courant et le prochain cours
  • ou si n’y a pas de cours courant, les deux prochains cours.

Au bout de 10 secondes, l’étudiant est automatiquement redirigé vers la page d’accueil. Ainsi, l’étudiant qui scanne sa carte après ne peut pas voir les cours de l’étudiant précédent.

Budget approximatif

Matériel

Nous n’avons rien dépensé en matériel.

Temps de travail

Le temps de travail était réparti sur 7 semaines, à raison d’1h30 prévu par semaine. Nous avons passé à peut prêt le double de ce temps sur le projet donc en moyenne 20 à 25h de travail par personne. Au total, ce projet aura nécessité entre 60 et 75 heures de travail.

Bilan

Le projet était intéressant en lui même mais assez éloigné de ce qu’on imaginait en parlant d’objet connecté. Le fait d’utiliser un téléphone pour créer l’application à transformé le projet en création d’application classique plutôt qu’un objet connecté. De plus, nous utilisons un serveur central plutôt que de faire communiquer les bornes entre elles. Cela en fait une architecture classique mais robuste et assez facile à mettre en œuvre.

Future works

Sécurité

Les mots de passes sont stockés en clair ce qui rendrait l’application inutilisable dans un contexte réel. Toutefois, si nous avions accès aux service directs de l’Ensimag, nous n’aurions pas besoin d’inscrire les étudiants et donc de stocker inutilement des données que l’Ensimag possède déjà.

Hébergement

La base de données est hébergée par les service de Heroku. L’idéal serait d’avoir un espace sur les serveurs de l’Ensimag ce qui permettrait de mutualiser le stockage et surtout de limiter la portée des requêtes réseau.

Données

Nous ne supprimons jamais un utilisateurs de la base de données ! Pour améliorer cela, nous pourrions supprimer toutes les données à chaque semestre ou après un certain temps d’inutilisation du compte.

Il nous faudrait aussi récupérer périodiquement les ressources d’un étudiant en cas de changement (surtout à chaque nouveau semestre).

Utilisation du réseau

Pour l’instant, nous mettons en cache les ressources Zénith. Il faudrait aussi mettre en cache les cours (associé au ressources) si l’étudiant scanne sa carte deux fois de suite, plutôt que de refaire la requête.

Bornes

Pour limiter la consommation en énergie des bornes, l’idéal serait de les éteindre automatiquement en fin de journée et de les rallumer le matin. Cela peut être fait simplement sur les téléphones en configurant l’extinction et l’allumage automatique.