De plus en plus de petits kits électroniques low-cost permettent aujourd'hui au développeur .NET de protoyper, grâce au .NET MicroFramework, des objets interactifs et/ou connectés a peu de frais. Que vous soyez électroniciens et préfériez une plateforme très ouverte permettant du protoypage facile, ou que vous soyez développeur soft pur, et que vous préfériez une plateforme avec de l'électronique préconstruite qui vous guide dans la réalisation de votre projet, il existe aujourd'hui, en open-hardware, des kits qui vous conviendront. Mais les kits ne suffisent pas... l'internet des objets passe aussi par le cloud et des services comme Pachube, ou Sen.Se. Dans cette session toute en démonstration et riche en matériel, vous découvrirez des hacks d'objets existants et des projets d'objets simples à réaliser... Afin de vous donner les éléments pour que vous aussi, vous participiez à la construction de l'internet des objets.
2. Du hard et des réseaux :
Les outils pour construire
l’internet des objets
7/2/2012
Pierre Cauchois (@pierreca)
Developer Evangelist - Microsoft
http://blogs.msdn.com/pierreca
3. De quoi est fait l’internet des objets?
D’objets
Du matériel
Du code
Des données
Un contexte physique
Un contexte temporel
Des humains
Une expérience
Du sens
5. .NET MicroFramework
Offrir une suite de développement .NET (C# et VB) aux
développeurs de microcontrolleurs
Bootable, Ne nécessite pas d’OS
Gratuit et OpenSource (licence Apache 2.0)
6. Namespaces
Partial implementation
Same as .NET Fx
System.Windows System.Windows.Controls
Window Border ListView
System.Windows.Input Button RadioButton System.Data
Keyboard/GPIO CheckBox ScrollViewer
Mouse Panel StackPanel System.XML
Stylus Image TextBox Reader
ListBox UIElement Writer
System.Forms
System.Drawing System
Collections Globalization Diagnostics
System.Service.Model
Security Reflection Runtime
DPWS Discovery Remoting
Threading IO Serialization
DPWS Eventing
Resources NET/HTTP Compiler Svcs
DPWS Addressing
Managed Drivers
DPWS Transfer
SerialPort I2C/SPI A/D Power Mgmt
Proxy Discovery
USB GPIO PWM Watchdog
7. Architecture et Outils
Managed Application SDK:
Coder et déployer
Application Services
Extended Object Model: Web Services, …
Émulateur ou hardware
Étendre l’émulateur
Utiliser tout les outils de
SDK
Managed Libraries
Basic Object Model: Threading, I/O, … debuggage de Visual Studio
(y compris Express)
Porting Kit:
Porting Kit (PK)
Managed Run-Time
CLR, Interpreter, Executive, and Interop
Platform Abstraction Layer (PAL)
Coder des drivers (natifs)
HW independent facilities
Ajouter des nouveaux
(preferred)
Hardware Abstraction Layer
(optional)
Host OS
processeurs
(HAL) Coder des composants en C
Hardware Modifier le runtime (CLR) et
le modèle objet
8. .NET Gadgeteer
A l’origine un projet de Microsoft Research
Le premier kit a été produit pour des besoins internes
Les kits de production sont fabriqués par des partenaires
comme GHI Electronics
Logiciel : .NET Microframework
Hardware : ARM 7 (NXP LPC2417)
Licences Creative Commons & Apache 2.0
http://www.netmf.com/gadgeteer
http://gadgeteer.codeplex.com
http://www.ghielectronics.com
14. Le cas d’école: Pachube
http://www.pachube.com – Gratuit – en prod.
API REST + JSON
Dashboard web
Poster Consommer
HTTP Put HTTP Get
API Key dans les headers
API Key dans les headers N° de flux dans l’URL
N° de flux dans l’URL Réponse: JSON
Corps: JSON Datastreams
HTTP Get
API Key dans les headers
N° flux, datastreams,
paramètres dans l’URL
Réponse JSON
17. Le cas français: Open.Sen.se
http://open.sen.se – Gratuit – en beta, sur invitation.
API REST + JSON
Dashboard web
Poster Consommer
HTTP Post HTTP Get
API Key dans l’URL API Key dans l’URL
N° de flux dans l’URL N° de flux dans l’URL
Corps: JSON Réponse: JSON
+ la possibiltié d’ajouter des « applications » à un
« dashboard » pour… faire du sens
20. Créer une expérience utilisateur
Imaginer « pourquoi » on connecte cet objet.
Dans quelle situation l’utilisateur va-t-il vouloir en voir le
statut?
Le « statut » correspond-il à la mesure… ou à autre chose?
Une valeur seule n’a aucun sens
Contexte physique
Contexte temporel