palais des
congrès
Paris




7, 8 et 9
février 2012
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
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
LES OBJETS

Prototypage, Matériel, Code
.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)
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
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
.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
.NET Gadgeteer
Netduino


           Clone d’Arduino
           Même prix
           Shields 100%
           compatibles
           .NET MicroFramework
DEMO

Gadgeteer, Netduino…
LES RÉSEAUX

Types, intérêts, APIs
Les Réseaux


  Locaux                 Globaux
      Wifi / Ethernet      Pachube
      Zigbee               Open.Sen.se
      Bluetooth            OpenThings
      KNX                  BugSwarm
      X10                  Thingworx
      Zwave…               Thingspeak
      …                    Evrythng
                            …
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
Découpage de l’API

                      Account



               Feed    Feed                Feed



  DataStream                  DataStream          DataStream

   DataPoint                  DataStream          DataStream

   DataPoint                                      DataStream

   DataPoint

      …
DEMO

Connectivité à Pachube
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
Découpage de l’API

                           Account



                 Device     Device             Device



       Feed                             Feed               Feed

  Event
                                        Feed               Feed
  Event

   …                                                       Feed



   Application            Application                   Application
CALL TO ACTION

Faire du sens…
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
DEMO

Le Dashboard Open.Sen.Se
DEMO

Une application Pachube
QUESTIONS

Pierre Cauchois - @pierreca
pierreca@microsoft.com
http://blogs.msdn.com/pierreca

Du hard et des réseaux: Les outils pour construire l'internet des objets chez soi

  • 1.
  • 2.
    Du hard etdes 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 estfait 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
  • 4.
  • 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
  • 9.
  • 10.
    Netduino Clone d’Arduino Même prix Shields 100% compatibles .NET MicroFramework
  • 11.
  • 12.
  • 13.
    Les Réseaux Locaux Globaux  Wifi / Ethernet  Pachube  Zigbee  Open.Sen.se  Bluetooth  OpenThings  KNX  BugSwarm  X10  Thingworx  Zwave…  Thingspeak  …  Evrythng  …
  • 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
  • 15.
    Découpage de l’API Account Feed Feed Feed DataStream DataStream DataStream DataPoint DataStream DataStream DataPoint DataStream DataPoint …
  • 16.
  • 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
  • 18.
    Découpage de l’API Account Device Device Device Feed Feed Feed Event Feed Feed Event … Feed Application Application Application
  • 19.
  • 20.
    Créer une expérienceutilisateur 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
  • 21.
  • 22.
  • 23.
    QUESTIONS Pierre Cauchois -@pierreca pierreca@microsoft.com http://blogs.msdn.com/pierreca