Conférences de la journée
● Pierre Ficheux (Open Wide), Introduction to IoT, protocols and OS
● Cedric Adjih (Inria, RIOT team), présentation du système RIOT
● Greg Kroah-Hartman (Linux Foundation), This is how the Linux Kernel is developed
● Jean-Marie Verdun (Splitted Desktop) Open Hardware's dev tools ; RuggedPOD
& DaaP
DEJEUNER (12:30 – 14:00)
● Nils Christian Roscher-Nielsen (The Qt Company), Designing cross-platform software for IoT systems
● Arnaud Lefèvre (LVM Agency - "La Vie Moderne"), Intégration d'une démarche IoT chez des grands comptes, le point de vue d'une agence en objets connectés
● Jacques Lepine (SlowControl), Baby Gigl
● Jordan Mc Rae (Octo23), le projet Ultrascope
● Jérôme Molière (UCare), UCare-Watches, a lightweight open source IoT device for e-health
Internet des objets (IoT)
Pierre FICHEUX (pierre.ficheux@openwide.fr) Mars 2015
Agenda
● Généralités, définitions
● Protocoles
● Systèmes d'exploitation
● Matériel
● Démonstration
Généralités
Une présentation de l'IoT
● Internet se limite habituellement au monde virtuel
● Internet fonctionne dans un mode actif → « se connecter à Internet »
● IoT (Internet Of Things)
– Extension d'Internet à des objets et à des lieux du monde physique
– Échanges d'informations et de données provenant de dispositifs présents dans le monde réel vers/depuis le réseau Internet
– Certains parlent pompeusement de systèmes « cyber physiques » (CPS)
« Cyber-physical systems (CPS) enable the physical world to merge with the virtual leading to an Internet of things, data, and services. »
Topologie IoT
● IoT = un système embarqué intégré à un système d'information étendu de type « cloud »
● « Convergence little data / big data »
Embedded system !
IHM « déportée » système d'information
Nouveau concept ?
● L'IoT n'est pas un nouveau concept au sens
technologique du terme mais n'est pas uniquement un
« buzz » marketing
● Utilise des technologies éprouvées (IP, RTOS, …) mais adaptées aux objets matériels connectés (taille,
consommation, …)
● Conséquence de la généralisation des systèmes
embarqués + l'omniprésence de la technologie et de la communication auprès du grand public
● Nécessite les technologies d'intégration actuelle des réseaux (IPv6, « cloud », ...)
● Au niveau industriel, évolution du M2M (machine to machine) vers des protocoles standards → unification des réseaux...et des risques...
Déjà en 1995
● En 1995, le chercheur français Christian HUITEMA (à l'origine d'IPv6) évoque l'évolution vers l'IoT
« Il y a déjà des microprocesseurs, en fait de tout petits ordinateurs dans bien d’autres endroits [...]. D’ici quelques
années, le développement et les progrès de l’électronique aidant, ces microprocesseurs deviendront sans doute de vrais
ordinateurs élaborés et il sera tout à fait raisonnable de les connecter à Internet. »
Évolution de l'intelligence du réseau
● Actif → l'utilisateur (client) connecte sa machine au réseau Internet et accède à un serveur
– PPP (modem), TELNET (telnet), FTP (ftp) → 70's 80's
– HTTP (Lynx, Mosaic) → 90's
● Semi auto → smartphone (utilisateur moins averti)
– Intègre et « simplifie » les protocoles précédents + DHCP, Wi-Fi, ...
– Publie des informations automatiquement (position) → IoT
● Auto → IoT
– Autonomie de l'objet, fonction(s) dédiée(s)
– « zeroconf » (utilisé dans WeIO)
– L'intelligence du réseau compense la moindre intelligence (et puissance CPU) de l'objet
Problèmes et verrous
● De nombreux produits concernent uniquement des
« geeks » → pas d'effet de masse, pas de marché
● On reste dans le « gadget » → Nabaztag (2005)
● Spectre de la « domotique » → nouvelle chance ?
● Contexte économique difficile pour le grand public
● Problème de l'uniformité et du design (montres, lunettes) → alliance Google / Ray-Ban
● Problème légal et sécurité des données
L’article 34 de la loi informatique et libertés oblige l’organisme responsable du traitement des données à en préserver la
sécurité. «L’utilisateur doit pouvoir contrôler si les puces communiquent ou pas, et avec qui»
Projection économique
● Entre 2010 et 2012, les objets connectés sont passés de 4 milliards à 15 milliards selon Idate → 2 fois plus que la population mondiale !
● En 2020, ces objets électroniques seront :
– 30 milliards selon Gartner
– 80 milliards d’après Idate
● L' Europe à la recherche de nouveaux marchés !
● L' Europe a « peu » profité du marché de
l'Internet/Telecom malgré les innovations techniques
● Soutien de l'état → plan « objets connectés »
« On a raté les smartphones, on a raté les tablettes, j’espère qu’on ne ratera pas l’Internet des objets » (Anne Lauvergeon)
● Il reste à trouver un modèle économique...ou à se faire acheter par Google (nest)
Classification des objets
● Automobile
● Électroménager
● Appareils de mesure (santé, environnement, ...)
● Composants élémentaires (ampoule)
● Montre, lunettes, vêtement
● Industrie (automates PLC)
● Certains sont connectés depuis longtemps, la nouveauté est l'autonomie et l'intégration
● La santé est le 1er véritable marché « grand public »
– Économies
– Disponibilité du personnel
HealthGO par eDevice
Quelques exemples « grand public »
Les protocoles
Protocoles pour l'IoT
● L'IoT utilise un certain nombre de protocoles
● Permet d'assurer l'inter-opérabilités de systèmes très différents
● Protocoles classiques
– Wi-Fi / Ethernet
– Bluetooth
● Protocoles dédiées
– ZigBee
– 6LowPan
– Thread
– Zwave
– NFC
ZigBee
● Protocole propriétaire de la « Zigbee Alliance »
● Basé sur la norme 802.15.4
● Beaucoup de chips compatibles
● Chip radio seuls
● Micro-contrôleur + Radio
● Coût de la licence dans les chips
● Basse consommation
● Bande des 2,4GHz
● Ne s'est jamais vraiment imposé
ZigBee dans le modèle OSI
6LowPan
● IPv6 pour les objets connectés
● Norme IETF (RFC4944)
● Basé sur le 802.15.4
● Compression des entêtes IPv6
● Trames courtes (128 octets)
● Supporté par Linux, Contiki, RIOT, FreeRTOS
● Une Adresse IPv6 pour chaque nœud
● Routage de type Mesh possible
6LowPan dans le modèle OSI
Les systèmes d'exploitation
L'IoT, un réseau d'OS
● L'IoT associe « little data » et « big data » (bis)
● Les OS interviennent à plusieurs niveaux
– Serveurs → UNIX/Linux, Windows ?
– Terminaux (IHM déportée) → Android, iOS, Linux, Windows
– L'objet lui-même
● La nécessité de l'OS dépend de la complexité de l'objet
● La fonction de communication (réseau) nécessite le plus souvent un OS
● Le lien entre les OS est la standardisation des protocoles et des formats de données
Contraintes des OS pour « objets »
● Principaux critères
– Empreinte mémoire
– Consommation
– Stabilité
– Prise en compte du temps réel
– Coût ! (des milliards d'objets...)
● Mais également
– Évolutivité
– Portabilité
– API standards (POSIX, Web) → maintenabilité, personnel
● Ces critères correspondent à des « RTOS open source » :-)
Quelques OS « libres » pour l'IoT
● RTOS adaptés
– FreeRTOS
– Lepton
– RTEMS
● OS dédiés
– TinyOS
– Contiki
– RIOT
→ parfois assez éloignés des standards (C/POSIX)
● OS classiques adaptés
– GNU/Linux
– Android (wear) → libre ?
Contiki
● Système d'exploitation développé par le Swedish Institute of Computer Science (SICS, 2002)
– Open source, licence BSD
– Ultra léger
– Flexible
– Plate-forme d'émulation et de simulation → Cooja
● Couche réseau uIP et uIPv6
● Optimisé pour la consommation
● Chargement dynamique de modules
● Bien adapté aux capteurs (quelque dizaines de Ko) → à partir des 8 bits (8051 datant de 1980 !)
● Bonne documentation et nombreux exemples
● API de programmation « spécifique » (et quelques mots clé C interdits?)
RIOT
● Démarré en 2008 et maintenu par l'INRIA
● Licence GNU LGPL (et non GPL)
● Peut fonctionner avec 1,5 Ko de RAM !
● Temps réel
● Multi-threading complet
● Support C/C++ « standard » très proche de la programmation classique
● API POSIX
● CPU 16 et 32 bits
● Présenté par ses concepteurs comme le « Linux de l'IoT »
GNU/Linux
● Fonctionne uniquement sur 32 bits
● Fonctionnement sans MMU possible → µCLinux
● Très large communauté
● Extensions temps réel disponibles
● Empreinte mémoire importante → plusieurs Mo
● Pas d'optimisation de la consommation d'énergie
● Toutes les API possibles sont disponibles
● Excellent connectivité réseau
● Fonctionne sur la plupart des SoC
● Excellents outils de construction de distribution (Yocto/OE, Buildroot) → « build systems »
● Réservé aux objets « complexes » !
Android
● Basé sur un noyau Linux modifié par Google pour optimiser – entre autres - la consommation
● Partiellement open source car contrôlé par Google → développement non communautaire
● Certains composants importants sont propriétaires...et coûteux (market)
● Empreinte mémoire importante, largement supérieure à celle de GNU/Linux (plusieurs centaines de Mo) → IHM
« obligatoire »
● Existe déjà sur certains objets (montres, ...)
● Version spécifique « wear » pour les objets plus légers (montres, lunettes)
● Le téléphone est aujourd'hui au centre de l'IoT
Hello Android wear !
Le matériel
IoT et smartphone
● L'IoT est pour l'instant lié à l'explosion du smartphone
– Plus de 50% dans les pays industrialisés
– Globalement 2 milliards de smartphones en 2015
● A ce jour le marché naissant de l'IoT est lié à celui du smartphone et dérivés (tablettes, liseuses, …)
● Le smartphone est l'interface privilégiée de l'objet connecté
● L'objet lui même est lié à la disponibilité de matériel et logiciel « bon marché » → effet de masse
(R)évolution du matériel
● Évolution du x86 vers ARM
● Création d'un marché autour des « hobbyistes » en électronique
– Arduino, Raspberry Pi & friends
– Adafruit, Snootlab & friends
● Les professionnels utilisent parfois ces plate-formes ou du moins profitent de la baisse des coûts
● Développement et conception simplifiés
– généralisation de l' open hardware (partiel mais pragmatique)
– utilisation de modules CPU
– nouveaux langages (HTML5, Python)
● Nouveaux canaux de distribution et plate-formes de financement (kickstarter, ...)
Versatile PB and sons !
€€€€ !
< 20 €
< 30 €
< 25 €
< 15 €
Cependant...
● Certaines plate-formes génériques permettent de créer une « maquette » mais difficilement la version
définitive → on reste dans le mode « hobby » !
● La connectivité nécessaire n'est pas toujours disponible
– Wi-Fi
– BT
– Capteurs divers
● Un créateur d'objet n'est PAS un développeur logiciel et encore moins un intégrateur système → « fusion » art / design / technologie
● Quelques plates-forme dédiées sont - juste- disponibles
→ WeIO (démo?)
● « Un objet connecté doit être aussi simple à programmer qu'un site web » (WeIO team)
Module WeIO
Conclusions
● L'IoT est aujourd'hui au début de son histoire (les micros ordinateurs en 1970/80)
● De nombreux problèmes restent à résoudre
– Modèle économique
– Législation
– Sécurité
● L'oT ne peut que favoriser le marché de l'embarqué :-)
Bibliographie
● http://www.internet-of-things-research.eu/about_iot.htm
● http://www.entreprises.gouv.fr/politique-et-enjeux/nouvelle-france-industrielle/objets-connectes
● http://www.idate.org
● http://www.frandroid.com/actualites-generales/209531_5-choses-devez-savoir-les-google-glass
● http://www.stuffi.fr/categorie/domotique
● http://www.edevice.com/products/healthgo-plus
● http://www.huffingtonpost.fr/2014/03/25/google-glass-ray-ban-lunettes-connectees_n_5025752.html
● https://github.com/OWF/Slides-2013/tree/master/CODE/internet-of-things
● https://sen.se/store/mother
● http://article.wn.com/view/2014/01/30/Techtopia_Mother_20_Here_Comes_the_Internet_of_Things/
● http://www.toshiba-components.com/FlashAir
● « Et Dieu créa l'Internet » par Christian HUITEMA (Eyrolles, 1995)
● http://www.withings.com/fr/solutions/weight-management.html
● http://www.kolibree.com/fr/product/
● http://www.chacon.be/
● http://www.toshiba-components.com/FlashAir
● http://www.we-io.net/
● http://www.contiki-os.org/start.html
● http://contiki-os.blogspot.fr/2014/02/thingsquares-contiki-iot-workshop.html
● http://www.inria.fr/centre/saclay/actualites/riot-un-os-open-source-pour-l-internet-des-objets