« CoursObjets » : différence entre les versions

De Kernel Fablab Lannion
Ligne 60 : Ligne 60 :
- protocole HTTP
- protocole HTTP


=TP 2:=
=TP 2=
arduino + Ethernet + web service led http://api.openweathermap.org/data/2.5/weather?q=Lannion,fr
 
Le but de ce TP est de provoquer une action (visualisaiton de la température via l'allumage de 0,1,2 ou trois led) suite à l'envoi d'une requête web à un site internet.
 
prérequis: on repart du TP de base, on rajoute le shield ethernet. On connecte l'arduino en filaire à sa boxe.
on se basera sur web service http://api.openweathermap.org/data/2.5/weather?q=Lannion,fr
depuis votre PC, vous indiquez à l'aduino le nom de la ville
l'arduino va chercher l'information sur internet et visualise le résultat via les leds
 
température
-20 et 0 => aucune led
0 et 10 => led verte
10 et 20 => led verte + orange
> 20 => led verte + orange + rouge
 
notions à aborder
- architecture internet
- web services

Version du 20 avril 2014 à 11:13

vidéo d'intro

(généralités objets connectés, protocoles, différents shields..)

Les objets connectées sont de plus en plus présents dans notre quotidien, dans de très nombreux domaines (Surveillance, Santé, Domotique...). Vous en avez probablement tous un dans la poche, et oui votre téléphone est un objet connecté qui vous permet à la fois de téléphoner, d'être appelé et de surfer sur internet. Vous connaissez probablement les googles glasses - ces lunettes connectées qui vous permettent d'obtenir des informations sur ce que vous voyez via une connection internet intégrée - ou les google cars ces voitures sans pilotes connectées à des système de cartographie et au réseau satelittaire. Vous avez aussi surement entendu parler des montres connectés qui permettent au jogger d'enregistrer ses performances et autre frigidaires connectés. Les exemples sont multiples. Les années à venir annonce l'augmentation exponentielle des objets connectés dans notre quotidien, on parle de l'internet des objets.

En fabrication numérique, l'intérêt de pouvoir connecter des objets apparaît rapidement. Dans les fablabs on utilise fréquemment 3 appareils pour fabriquer rapidement des objets connectés: la raspberry pi, un mini ordinateur, le beagle bone à la fois ordinateur et micro controlleur et bien entendu le célèbre arduino qui vous est de plsu en plus familier à mesure de l'avancée de ce MooC

Vous avez jusqu'à présent réussi à fabriquer un objet capable de manière autonome de collecter des informations, d'allumer des leds ou de faire tourner un petit moteur. Nous allons voir à présent comment transformer objet cet objet en un objet connecté.

L'objet de ce module est donc de vous présenter les possibilités pour faire communiquer un objet.

Imaginez vous transporté au coeur de Tokyo,incapable de comprendre ou de lire le japonais, vous aurez probablement recours à l'anglais voire à un language corporel plus ou moins improvisé pour vous faire commprendre. Sans le savoir vous tenterez alors de construire un protocole de communication.

En effet pour échanger des informations, il faut utiliser un langage commun, c'est ce qu'on appelle un protocole.

Dans la vraie vie, nous disposons de langues parlées, de languages des signes. Dans le monde numérique il existe de nombreux protocoles normalisées, ouverts ou propriétaires.

Lorsque l'on maîtrise les deux extrémités, on peut envisager d’utiliser son propre protocole. Mais c'est assez rarement le cas, c'est pourquoi des organismes internationaux ont pour mission de formaliser les échanges de communication.

Sans rentrer trop dans les détails, un MooC réseau est disponible à ce sujet, comme le rappèle wikipédia, les organismes internationaux de normalisaiton (ISO) ont défini un modèle appelé modèle OSI (de l'anglais Open Systems Interconnection). Il s'agit d'un standard de communication, en réseau, de tous les systèmes informatiques. C'est un modèle de communications entre ordinateurs qui décrit les fonctionnalités nécessaires à la communication et l'organisation de ces fonctions. Le modèle OSI (Open System Interconnection) propose un découpage en 7 niveaux de la communications entre 2 entités, de la couche physique (le circuit imprimé, par analogie l'air pour le language parlé car dans l'espace on n'entandrait rien) à la couche applicative (toujours par analogie la grammaire et le vocabulaire d'une langue).

Les nombreux protocoles de la couche 1 (physique), peuvent être séparés en 2 grandes familles : filaires et sans-fil. Les protocoles sans fil sont nombreux, ça va du GSM (votre bon vieux téléphone d'il y a 10 ans, au wifi (votre boxe) en passant par le NFC (paiement sans contact sur certaines cartes bancaires) mais on peut aussi citer le zigbee, le bluetooth, la 4G et bien d'autres.

Outre des aspects de portée, débit et consommation, le choix de cette couche sera souvent contraint pas la nature de l'objet. Reprenons notre analogie, si vous êtes dans une petite pièce, une conversation normale entre 2 personnes parlant la même langue sera parfaite. Plaçons un mur entre les personnes il faudra soit crier plus fort, soit percer un trou, soit passer par des messages écrits. Les objets connectés ne sont pas différents, selon le type d'informations qu'on souhaite faire passer et l'environnement on utilisera tel ou tel protocole. Vous n'imaginez pas devoir connecter tous vos ordinateurs, tablettes et smartphones à votre boxe, le protocole Wifi est fait pour ça. Ce protocole est parfait mais ceux qui ont des grandes maisons avec des murs épais savent que le Wifi a ses limites et qu'il est parfois nécessaire de passer par des courants porteurs de ligne CPL (on revient alors en filaire). Le Wifi est aussi très consommateurs (ne devez vous pas recharger très régulièrement votre téléphone?) aussi il est inadapté pour des petits objets devant fonctionner sur pile pendant des dizaines d'années. Comme souvent tout est histoire de compromis.

Dans nos exemple, nous utiliserons bien sûr l'Arduino. Dans sa version de base ses possibilités de communication sont assez réduites. Heureusement l'ajout de cartes supplémentaires appelées shields permet d'avoir de nombreuses possibilités de connexion.

Nos vidéos de présentation vous montrerons 2 types de connections possibles, et vous mettrez en oeuvre des exemples en TP.

vidéo illustration

WhereIsBeach (capitaliser sur notion déjà abordée led, capteurs, ..)

vidéo illustration Bzzz

(GSM + création d'un protocole ad-hoc au dessus de GSM, autonomie)

vidéo TP

TP 1:

L'objet de ce TP est à partir d'un montage précédent, être capable d'allumer ou d'éteindre les leds. Pour simplifier on imagine que ce TP puisse être fait chez vous. Vous devrez connecter votre arduino en filaire sur votre boxe via le shield Ethernet.

Depuis un browser sur votre PC vous enverrez une requête http de la forme http://192.168.1.x?led=on ou http://192.168.1.x?led=off

pré-requis: repartir du TP de base avec les 3 leds, ajouter le shield Ethenet, intégrer la librairie http://arduino.cc/en/reference/ethernet

Ce TP sea l'occasion d'évoquer les concepts - adresse IP - protocole DHCP - protocole HTTP

TP 2

Le but de ce TP est de provoquer une action (visualisaiton de la température via l'allumage de 0,1,2 ou trois led) suite à l'envoi d'une requête web à un site internet.

prérequis: on repart du TP de base, on rajoute le shield ethernet. On connecte l'arduino en filaire à sa boxe. on se basera sur web service http://api.openweathermap.org/data/2.5/weather?q=Lannion,fr depuis votre PC, vous indiquez à l'aduino le nom de la ville l'arduino va chercher l'information sur internet et visualise le résultat via les leds

température -20 et 0 => aucune led 0 et 10 => led verte 10 et 20 => led verte + orange > 20 => led verte + orange + rouge

notions à aborder - architecture internet - web services