M2 IADE : 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) permettant l'arrosage intelligent des plantes d'un jardin. Il s'agit d'une application Web destinée à être utilisée depuis un navigateur mobile et capable de décider s'il faut arroser des plantes et si oui, de choisir le meilleur moment pour le faire. Pour cela, elle a à sa disposition :

Vous devrez développer l'application de façon à ce qu'elle enregistre la position du jardin et qu'elle décide automatiquement de la mise en route de l'arrosage et de son intensité (le moteur tournera d'un angle plus ou moins grand en fonction de la quantité d'eau). Un feedback utilisateur (sur l'objet et dans l'interface Web) permettra de savoir quand elle a déclenché l'arrosage et la quantité d'eau consommée. L'utilisateur aura à sa disposition un moyen simple (slider, pourcentage) de spécifier le besoin en eau moyen des plantes de son jardin.

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

  1. Les deux capteurs et l'actionneur seront accessibles à travers un objet physique dont le contrôleur sera un Arduino Uno
  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 ou sur le client
  4. Les communications entre le client et le serveur qui représente l'objet sur le Web utiliseront des standards du Web (REST / WebSocket)

Déroulement du TP

Ce TP se déroule par équipes de 5 étudiants, définies à la fin du CM du mardi 12 janvier 2016. Vous vous répartirez les rôles à l'intérieur de chaque équipe pour faire en sorte que le projet avance plus vite.

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. Par conséquent, ce TP ne dure pas 4h, mais 3h, compte tenu de cette dernière phase.

Licence Creative Commons
Valid XHTML 1.0 Strict