Groupe 4 – BOUTHET ELODIE, LEBORGNE ROMEO, SAMMARI AKRAM
Solution technique
Présentation de la solution
La solution HYPN est composée d’une borne de rechargement USB munie de tags NFC et d’une application mobile de blocage présente sur le portable de l’enfant. Le but est d’allier une limitation logicielle avec une habitude gestuelle afin de se séparer physiquement de son portable.
Comment ça marche ? L’application inclut un compteur de temps, qui diminue lorsque le portable est en cours d’utilisation. Une fois ce compteur à zéro, l’application bloque une grosse partie des fonctionnalités du portable. Pour le recharger, l’enfant doit déposer son smartphone sur la borne, idéalement positionné dans une des parties communes du lieu de vie. Ce contact avec la borne permet de recharger le temps d’utilisation du portable.
Ainsi, une fois les paramètres de l’application configurés, l’enfant peut utiliser en complète autonomie son smartphone, sans surveillance ou intervention de ses parents. C’est à lui de gérer le temps d’utilisation qui lui est attribué, en alternant des phases d’utilisation et des phases de rechargement.
Afin de s’assurer que l’enfant dépose bien son portable lorsqu’il ne l’utilise pas, nous devons détecter avec précision le temps passé par le téléphone sur la borne. Nous avons donc opté pour une technologie de communication en champ proche dont la plupart des portables actuels sont équipés, NFC, ce qui nous permettait de ne pas ajouter d’autre capteur sur le portable de l’enfant. Ce choix est justifié en plus ample détails dans la partie application de la réalisation.
Réalisation
La borne
La borne est composée d’une structure en contreplaqué, d’un hub 5 USB et de son alimentation, ainsi que de 3 tags autocollants NFC NTAG215. Le choix du contreplaqué comme matériau est justifié par son prix relativement bas, par sa compatibilité avec la découpe laser, ainsi que par le fait qu’une couche de 3mm laisse passer le signal NFC.
La structure est construite à partir de 10 couches de contreplaqué, empilées et collées les unes aux autres dans un ordre précis. Elles ont pour dimensions 20x30cm, avec des épaisseurs variables. Certaines sont découpées ou gravées à la découpe laser selon des plans 2D dessinés sous Inkscape. Dans l’ordre, de haut en bas, voici les couches :
- 1 planche de 3 mm avec la gravure « Schéma HYPN 1 2 3 »
C’est le “haut” de la boîte, présentant le nom du projet et les différents emplacements pour les téléphones. - 1 planche de 5 mm avec la découpe « Schéma NFC »
C’est la seconde couche, découpée pour laisser la place de coller les tags NFC directement sous la première couche. - 1 planche de 5 mm sans découpe
Il s’agit juste d’une couche intermédiaire. - 1 planche de 5 mm avec la découpe “Schéma USB sans fil”
- 2 planches de 3 mm avec la découpe du « Schéma USB avec fil »
- 1 planche de 5 mm avec la découpe “Schéma USB sans fil”
Ces 4 planches “USB” sont découpées de façon à pouvoir intégrer notre hub USB et son alimentation. Les dimensions et l’épaisseur ont été choisies spécifiquement par rapport à ce hub USB. Il faudra les adapter pour l’utilisation d’un autre hub USB. - 2 planches de 5 mm sans découpe
- 1 planche de 3 mm sans découpe
Tous les plans de découpe sont disponibles ici.
L’application Android
L’application a été développée pour les smartphone Android sur Android Studio. Le code est disponible sur GitHub ici.
Le blocage du téléphone
Une fonctionnalité principale de l’application est le blocage du téléphone pour des durées déterminées.
Nous voulions tout d’abord essayer de créer une application en mode kiosque, mais cela n’était pas fonctionnel et ne donnait pas au final l’effet escompté. Il a donc au final été choisi de créer d’une fenêtre popup englobant tout l’écran et se plaçant au-dessus des autres applications. Pour mieux comprendre, c’est le même système utilisé pour les bulles de discussion Messenger, sauf que cette fois, la “bulle” occupe tout l’écran du téléphone.
Cette fonctionnalité est couplée avec la fonctionnalité de minuteur interne mesurant le temps d’utilisation du téléphone. Au bout du temps d’utilisation déterminé par le parent via les paramètres, le téléphone se bloque.
Les minuteurs internes
Afin de calculer le temps d’utilisation du téléphone, nous avons créé un premier minuteur affiché sur la page principale de l’application (CountDownTimer). Lorsque l’on quitte la page de l’application, il y a deux possibilités : l’écran du téléphone est encore allumé et l’on navigue encore dessus ou l’écran du téléphone est éteint et le portable est verrouillé. Dans tous les cas, le minuteur est stoppé et le temps auquel il s’est arrêté est enregistré. Lorsqu’on ouvre l’application de nouveau, si l’écran était éteint, on reprend le minuteur là où il s’est arrêté. Si l’écran était allumé, on reprend le minuteur mais on met à jour le temps affiché avec le temps passé sur l’écran. Ainsi, le temps d’utilisation a été comptabilisé. Le temps passé hors application est compté via un second minuteur non affiché dans l’application.
La réalisation du chronomètre (Chronometer) correspondant au temps de charge a été commencée, mais non reliée à la reconnaissance du tag NFC.
La communication NFC
La communication NFC se fait grâce à des tags NFC NTAGS215. Les tags sont au préalable programmés afin d’activer l’application HYPN lorsque le smartphone est déposé sur la borne.
Les tags se situent respectivement sous la couche sur laquelle se trouve l’emplacement réservé aux smartphones.
Comme indiqué dans la présentation de la solution, nous avons fait le choix de la technologie NFC pour communiquer avec l’application. Nous voulions une technologie à courte portée et nous avions donc notamment le choix entre NFC et RFID. NFC a été préféré car de plus en plus de téléphones possèdent la technologie de lecture du tag NFC intégrée. De plus, la portée du NFC est de maximum 10 cm alors que celle du RFID est de minimum 10cm. Comme le téléphone doit être en contact direct avec la borne, le NFC semble plus indiqué.
Le réglage des paramètres
Les parents peuvent régler les paramètres de l’application via une authentification par mail et mot de passe. Le tout est géré par Firebase. Des paramètres par défaut sont générés avec la création du compte.
Les paramètres à régler sont l’heure de début, l’heure de couvre-feu, l’heure de fin, le temps d’utilisation et le temps de charge (voir explication des termes). Les données sont enregistrées dans la base de données pour chaque compte parent, puis récupérées dans la page principale pour les minuteurs et autres fonctionnalités.
Prise de recul
À cause d’une mauvaise gestion des priorités dans le développement, certaines fonctionnalités clé n’ont pas pu être implémentées complètement. En effet, bien que le contact avec le tag NFC de la borne ouvre notre application mobile, cela ne recharge pas le temps d’utilisation du portable.
Le blocage du smartphone est également à peaufiner : certains tests critiques n’ont pas été faits, comme l’arrêt forcé du l’application, ou la mise en veille automatique de certaines fonctionnalités lorsque le portable est en sur-consommation.
Résultat
Démonstration de la borne
Démonstration de l’application
La vidéo de démonstration de l’application étant trop lourde, vous pouvez la consulter ici.
Perspectives
Le plus important à ce point là du développement et de résoudre les problèmes qui apparaissent lorsque l’application passe en arrière-plan ou est fermée. En effet, le blocage ne se fait que lorsque l’application repasse au premier plan. Pour remédier à cela, il faudrait créer un service afin que l’application tourne tout le temps en background. Il faudrait ensuite déplacer les méthodes dans ce service pour qu’elles puissent être exécutées lorsque l’application n’est pas en premier plan. Cela devrait permettre de résoudre le problème actuel et c’est la première chose à faire dans un futur proche.
Une autre fonctionnalité primordiale serait de pouvoir programmer HYPN de sorte à ce que lorsque le tag NFC est reconnu, le compteur du temps de recharge soit automatiquement déclenché. Le lien entre les deux compteurs de temps de rechargement et temps d’utilisation est aussi à implémenter.
Dans un futur plus lointain, l’idée est de pouvoir bloquer non pas tout le téléphone mais certaines applications. C’était une fonctionnalité voulue dès l’idéation de la solution car nous ne voulions pas un blocage trop contraignant, ce qui pourrait susciter du mécontentement dans l’utilisation de cette solution. Cela n’a pas été possible dans un souci de complexité.