M2 IA : Smart Environments

TP Objets connectés, Internet des objets, Web des objets

Objectifs pédagogiques

Comprendre la problématique liée à la conception et au développement d'une application multi-couches, impliquant :

Description de l'application

Dans ce TP, vous allez concevoir une application WoT (Web des objets). L'objectif de cette application sera de permettre à un utilisateur d'accéder aux capteurs et de contrôler les actionneurs d'un objet connecté depuis un navigateur Web. Vous êtes libres de proposer le scénario applicatif de votre choix autour de l'utilisation de cet objet.

Nous imposons les contraintes suivantes pour la conception de l'application :

  1. Vous utiliserez un objet physique dont le contrôleur sera un Arduino Uno et qui sera relié à au moins un capteur et un actionneur
  2. Vous relierez cet objet à une machine qui jouera le rôle de passerelle Internet (très probablement en USB)
  3. L' "intelligence" (le métier de l'application) sera complètement déportée sur la passerelle
  4. Les communications entre le client et le serveur qui représente l'objet sur le Web utilisent des standards du Web (REST / WebSocket)

Déroulement du TP

Ce TP se déroule par équipes de 4 étudiants. Vous vous répartirez les rôles à l'intérieur de chaque équipe pour faire en sorte que le projet avance plus vite.

Chaque équipe devra choisir un scénario applicatif. Au besoin, les encadrants pourront prooposer un sujet pour accélérer ce choix.

Outils

Matériel

Pour ce TP, chaque équipe dispose d'un Arduino Starter Kit, contenant principalement :

Quelques lien utiles vers la documentation :

Logiciel

Côté objet :

Côté passerelle (Java) :

Remarque : côté passerelle, vous n'êtes pas obligés d'utiliser du Java, mais si vous choisissez un autre langage, il faudra vous débrouiller tous seuls pour cette partie du projet...

Conception de l'objet

La première étape est de choisir dans le livre accompagnant le starter kit, les capteurs et actionneurs que vous allez utiliser. Profitez-en pour imaginer un scénario correspondant à une application aussi plausible que possible.

Vous réutiliserez les parties de montage liées à ces capteurs et actionneurs (i.e. toute la partie qui relie le matériel aux pôles + et - de la breadboard) comme elles sont présentées dans le livre.

L'Arduino UNO possède des entrées analogiques sur la gauche et des E/S numériques sur la droite. Reliez les capteurs et actionneurs à la carte Arduino.

Création d'un sketch Arduino

Vous allez maintenant créer un petit programme ("sketch") pour contrôler l'Arduino. Vous trouverez tous les détails dans la documentation du langage (voir Arduino Language Reference, plus haut).

Quelques points essentiels du langage

Un sketch se compose au moins des deux fonctions setup() (initialisation) et loop() (fonctionnement nominal).

Remarques

Le reste est ensuite de la programmation en C...

Création de l'intelligence déportée

Cette section concerne le "métier" de votre application. Compte tenu du fait que vous choisissez vous-mêmes le scénario, vous n'y trouverez que des indications générales pour vous synchroniser avc les autres parties du projet.

  1. Mettez au point, entre les personnes qui gèrent les softs côté objet et côté passerelle, le protocole de comunication à travers la liaison série (i.e. le format des messages échangés)
  2. Récupérez les messages de l'Arduino
  3. Traitez-les en fonction du métier de votre application. Pour cela, utilisez les techniques que avez apprises au cours de votre formation. Vous pouvez par exemple appliquer des algos d'IA et/ou tirer parti de la connexion de la passerelle à Internet et au Web pour utiliser de l'information disponible sur le Web
  4. En fonction du déroulement du métier de votre application, renvoyez à l'Arduino les messages correspondants, pour lui permettre de se comporter en conséquence

Il est conseillé de mettre en place des procédures de test à la fois côté Arduino et côté passerelle, pour vous permettre d'avancer en parallèle.

Encapsulation

Il s'agit ici de réaliser l'interface d'accès à votre objet, conformément à votre scénario applicatif. Pour cela, vous êtes libres d'utiliser les technos Web que vous connaissez :

Instructions de rendu

Le rendu s'effectuera sous la forme d'une démonstration et d'une revue de code à la fin de la seconde séance de TP.

Licence Creative Commons
Valid XHTML 1.0 Strict