Imprimer
Catégorie : SAÉ S5 - A - développement appli. complexe
Affichages : 664

1°/ Objectifs

Ce sujet a pour objectif de mettre en place une application complexe faisant intervenir des connaissances de la plupart des matières techniques enseignées en 3ème année, mais aussi celles des années précédentes. Comme le choix a été fait de "mixer" la SAÉ a S5 vec celle de S6, le cadre de développement de ce sujet relativement fixé et se base sur des codes déjà écrits qu'il faut adapter aux besoins applicatifs. Ces derniers sont en revanches laissés libres.

 

2°/ Cadre général

La SAÉ consiste a "inventer" une application basée sur des micro-contrôleurs et des objets connectés (téléphones portables, camera ip, ...) pour collecter des données. Ces données sont soit directement textuelles/numériques, comme c'est souvent le cas avec celles que collectent des micro-contrôleurs grâce à des capteurs, soit au format audio, image, ... qu'il faut traiter pour en tirer de l'information textuelle/numérique. Qu'il y ait ou non traitement, le résultat est stocké dans une base de données non relationnelle, type mongodb. Une application web front-end faite en vuejs permet ensuite de récupérer des données dans cette BdD (au travers d'une API) et de les visualiser.

Vous DEVEZ reprendre l'architecture logicielle d'un prototype d'application de "maison intelligente", donné dans la figure 1 de la section suivante. Vous pouvez ajouter des "morceaux" à ce prototype, mais pas en retirer, quand bien même cela semble bien complexe pour ce type d'application.

Une grande partie du code de cette application sera donnée comme base (NB : le reste a été perdu par un stagiaire qui ne voulait pas utiliser git :-) ). Vous devrez OBLIGATOIREMENT utiliser cette base et ne pas repartir de 0. L'évaluation tiendra compte de cet aspect, et sanctionnera tout morceau de code totalement réécrit, alors qu'il était déjà présent dans le prototype et quasi fonctionnel pour votre application. L'idée est de se mettre dans des conditions de développement comme dans une entreprise où l'on doit faire évoluer un code existant, tout en restant dans un cadre de développement fortement contraint.

Une partie de la SAÉ sera consacrée à la gestion du code et la mise en production. C'est pourquoi les serveurs implémentés devront être "dockerisés" automatiquement, grâce à des processus d'intégration continue. 

 3°/ Le prototype de départ

3.1°/ Scénario

Dans une maison, des boîtiers permettent de faire des mesures à intervalles réguliers. Ces boîtiers contiennent des micro-contrôleurs de type esp8266, connectés à des capteurs. Par exemple, on cherche à mesurer la température et pression atmosphérique sur la terrasse, la luminosité dans chaque pièce (= lumière allumée ou non), la production électrique de panneaux photovoltaïques, etc. L'objectif de cette collecte de données est de faire par exemple du suivi/gestion de consommation énergétique, au travers de la visualisation de graphiques, statistiques, ... via un navigateur.

Le propriétaire peut également utiliser son téléphone portable et/ou des caméra IPs pour prendre des photos du ciel, qui vont être analysées par un serveur afin d'en tirer des informations chiffrées, par exemple la nébulosité, le % de chance qu'il pleuve, etc. Ces informations peuvent être croisées avec celles collectées via les micro-contrôleurs, par exemple pour faire de la prévision météorologique, ou bien pour prendre des décisions concernant la maison, comme par exemple fermer les volets, ... 

3.2°/ Architecture logicielle

Elle est donné en figure 1 ci-dessous

 SAE BUT5 A archi
 Figure 1 : architecture logicielle du prototype d'application

 

Description :

 

 

 

 

4°/ Le contexte et les contraintes

Vous devez trouver un contexte applicatif qui soit différent de celui du prototype mais qui soit compatible avec l'architecture logicielle, c'est-à-dire basé sur des données collectées par des µC et des plateformes mobiles (téléphone ou tablette).

Les autres contraintes à respecter sont :

En dehors de ces contraintes, vous êtes libres d'adapter des éléments en fonction de votre application, notamment :

 

Du point de vue matériel, vous pouvez également faire varier :

pourvu que ce soit au moins 1 de chaque type (= au moins 1 type de capteur connecté à au moins 1 µC + au moins 1 téléphone/tablette). Si ce minimum est respecté, vous pouvez même utilisé d'autres sources de capture de données, comme par exemple des caméra IP, des montres, des frigos, etc. Le seul problème avec ce type de matériel est qu'ils sont généralement non programmables et peut être difficilement connectable à un serveur que vous implémentez vous-même.

Cette liberté implique que les types des données captées est laissé libre. Le mobile peut par exemple utiliser du son plutôt que des photos. Si possible, choisissez un contexte qui soit entièrement cohérent, c'est-à-dire où les données collectées via les µC et les plateformes mobiles servent un même but. 

Remarques & conseils :

 

Quelques exemples de contexte :