Conférences «objets connectés» (IOT) Open Wide Ingénierie Paris, 9 octobre 2014 1
Programme de la conférence Introduction à l'iot (P Ficheux) Technologies utilisées (N Aguirre) Systèmes d'exploitation pour l'iot (P Ficheux / JJ Pitrolle) Plate-formes matérielles (P Ficheux) Consommation (JJ Pitrolle) Neopixl (F Dewasmes) National Instruments (A Goude) Nodesign.net (U Petrevski) Hitronetic (H Gory) 2
(IOT), introduction Pierre Ficheux (pierre.ficheux@openwide.fr) Octobre 2014 3
15 milliards d'objets connectés, et moi, émoi... (Libération 2013) 4
Une définition de l'iot Internet ne se prolonge habituellement pas au-delà du monde virtuel Internet fonctionne dans un mode actif «je me connecte à Internet» je change de monde IOT (Internet Of Things) Extension d'internet à des objets et à des lieux du monde physique web 3.0 Échanges d'informations et de données provenant de dispositifs présents dans le monde réel vers/depuis le réseau Internet «Cyber-physical systems (CPS) enable the physical world to merge with the virtual leading to an Internet of things, data, and services.» 5
Topologie IOT (FreeRTOS) Un système embarqué intégré à un système d'information étendu Convergence «little data» / «big data» Embedded system :-) système d'information IHM «déportée» 6
Nouveau concept? 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 Utilise/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 7
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 8
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.» 9
Évolution de l'accès actif auto 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» L'intelligence du réseau compense la moindre intelligence (et puissance CPU) de l'objet 10
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 $1500 pour les premières Google glass Sur les objets portés, problème de l'uniformité et du design 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» 11
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» (Anne Lauvergeon) Il reste à trouver un modèle économique...ou se faire acheter par Google (nest) 12
Moteur de recherche dédié SHODAN indexe les objets exposés sur le réseau (routeur, caméra,...) 13
Quelques exemples TBD, pèle mêle d'objets 14
Démonstration Exemple de FlashAir, carte SD «connectée» 15
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.liberation.fr/economie/2013/11/03/15-milliards-d-objets-connectes-et-moi-emoi_944254 http://www.shodanhq.com 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 http://www.shodanhq.com 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) 16
Protocoles de communication pour l'iot Nicolas Aguirre (nicolas.aguirre@openwide.fr) Octobre 2014 17
Modéle OSI Le modèle OSI Application HTTP FTP... Presentation Session Transport UDP TCP IP IPv4 IPv6 Network Data Link Physical Ethernet 802.3 Wifi 802.11 18
Les technologies pour l'iot Classiques : Ethernet Wifi Bluetooth Spécifiques : Zwave EnOcean 802.15.4 Zigbee 6LowPan Thread NFC 19
Bluetooth Bluetooth 4 Low Energy ou BT Smart Idem que BT mais consomme moins d'énergie Même portée, même débit Support de profils très spécifiques HTP medical temperature measurement devices. GLP blood glucose monitors. BLP blood pressure measurement. HRP for devices which measure heart rate. CSCP for sensors attached to a bicycle or exercise bike to measure cadence and wheel speed. RSCP running speed and cadence profile. CPP cycling power profile. LNP location and navigation profile. Supporté dans Linux via Bluez5 (kernel + userspace) 20
ZWave Entiérement propriétaire Appartient à Sigma Designs Beaucoup d'équipements compatibles grand public Principalement utilisé pour la domotique Bande des 900Mhz Faible consommation Mesure et contrôle à distance Support du Mesh Projet open source : OpenZwave Supporté par les box domotique 21
Zigbee Propriétaire : Zigbee Alliance Basé sur couche 802.15.4 Support dans le noyau linux? NON bien que linux-zigbee existe Linux supporte les couches 802.15.4 Beaucoup de chips compatibles Chip radio seuls Microcontrolleur + Radio Cout de la licence dans les chips Basse consommation Bande des 2,4GHz 22
Zigbee Application HTTP FTP... Presentation ZIGBEE Session Transport UDP TCP IP IPv4 IPv6 Network Data Link Physical Ethernet 802.3 Wifi 802.11 802.15.4 23
6LowPan Normet IETF (RFC4944) Basé sur le 802.15.4 Ipv6 pour les objets connectés Compression des entêtes ipv6 Routage mesh Trames courtes (128 octets) Supporté par Linux, Contiki, RIOT, FreeRTOS Une Adresse IPV6 pour chaque nœud Routage de type Mesh possible RPL : Routing Protocol for Low power and Lossy Networks : IETF/RFC 24
6LowPan Application HTTP FTP... Presentation Session UDP TCP IP IPv4 IPv6 6LowPan Transport Network Data Link Physical Ethernet 802.3 Wifi 802.11 802.15.4 25
6LowPan Linux Kernel Originellement linux-zigbee :) Support de différents chips radio comme le MRF24j40 Support en Upstream et via backports (compatwireless/compat-drivers) Support des couches 802.15.4 Support du 6LowPan Implémentation RPL en userspace Amélioration du support depuis le noyau 3.6 26
Thread Samsung, Arm et Nest (Google), le prochain standard? 27
Protocoles Applicatifs 28
CoAP (Co)nstrained (A)pplication (P)rotocol HTTP sur UDP Compression de http pour les protocoles contraints Idéal pour consulter des ressources L'object est serveur Le client consulte les informations Implémentation opensource : libcoap (c) Californium (cf fondation eclipse => java) 29
MQTT (M)essage (Q)ueue (T)elemetry (T)ransport 1ére version par IBM en 1999 Architecture Publish/Subscribe Broker au milieu MQTT-SN : version MQTT over UDP Piloté par la fondation Eclipse Implémentation opensource : Mosquitto 30
Architecture Démo 31
Démo Contiki sur Capteur de témpérature Contiki en tant que Border Router Communication sans fil 802.15.4/6LowPan Linux en tant que passerelle Broker Mqtt sur linux Emoncms sur un server Push et log des données sur le serveur distant Affichage des courbes et des données sur une application HTML5 32
http://sourceforge.net/projects/libcoap/ http://sourceforge.net/projects/linux-zigbee/ https://backports.wiki.kernel.org/index.php/main_page http://www.z-wave.com/ http://www.zigbee.org/ https://datatracker.ietf.org/wg/6lowpan/documents/ http://mqtt.org/ http://mosquitto.org/ http://www.eclipse.org/paho/ http://www.threadgroup.org 33
Systèmes d'exploitation pour l'iot Pierre Ficheux (pierre.ficheux@openwide.fr) Octobre 2014 34
L'IOT, un réseau d'os L'IOT associe «little data» et «big data» Les OS interviennent à plusieurs niveaux Serveurs UNIX/Linux, Windows? Terminaux (IHM déportée) Android, ios, Linux, Windows Objets connectés (?) 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 35
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» :-) 36
Typologie des OS (rappel) GPOS (General Purpose OS) Multi processus / multi thread Multi utilisateur Forte empreinte mémoire En général pas TR Bonnes capacités réseau UNIX, Linux, Windows, RTOS (Real Time OS) Faible empreinte mémoire Mono processus / Multi thread Exécutif ou véritable OS? Capacité réseau parfois limitées VxWorks, VRTX, QNX, RTEMS, FreeRTOS,... 37
Cas de l'iot Un RTOS adapté respecte les critères Contrainte ajouter les protocoles dédiés à l'iot (6LoWPAN) Le choix du logiciel libre favorise l'adoption d'os comme «service» focalisation sur la valeur ajoutée de l'objet Le logiciel libre évite le coût récurrent de la licence (15 milliards d'...) Développement d'os dédiés mais ils sont proches des RTOS exécutif temps réel = 1 noyau + 1 application multi thread Certains objets complexes (avec IHM) peuvent utiliser des GPOS comme Android (wear?) ou Linux / µclinux 38
Quelques OS libres pour l'iot RTOS adaptés FreeRTOS Lepton RTEMS OS dédiés TinyOS Contiki RIOT souvent assez éloignés des standards (C/POSIX) GPOS (adaptés) GNU/Linux Android (wear) pas totalement open source! 39
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 (démo sur 8051, datant de 1980) Bonne documentation et nombreux exemples API de programmation «spécifique» (et quelques mots clé C interdits?) 40
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 réponse aux limitations de Contiki Réseau 6LoWPAN CPU 16 et 32 bits Présenté par ses concepteurs comme le «Linux de l'iot» 41
RTEMS Real Time Executive for Missile/Military/Multiprocessor Systems Exécutif TR avec API dédiée ou POSIX Utilisé dans le militaire puis le spatial (ESA, NASA, EADS Astrium,...) Communauté réduite mais active GPL modifiée assez contraignante Non prévu au départ pour le réseau portage couche réseau BSD Approche minimaliste pour des environnement contraints Maintenu par la société OAR Corp. (USA) 42
Lepton «Système d'exploitation» temps-réel pour des cibles embarquées aux ressources et puissances limitées Ajout d'un couche POSIX à un noyau temps réel libre ou propriétaire portabilité, code standard! Licence MPL (entre BSD et GPL...) Cibles visées 16 ou 32 bits Micro-contrôleurs Cortex M4/M3/M0/M0+, ARM9, MIPS 3 axes de développements: Ressources matérielles limitées/basse, consommation Réutilisation Environnement de développement / mise au point Disponible sur ecos, Segger embos, FreeRTOS Développé par (Odyssée) 43
GNU/Linux UNIX! 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 Licence GPL (pour le noyau) Pas d'optimisation de la consommation d'énergie Toutes les API possibles sont disponibles! Réservé aux objets complexes Excellent connectivité réseau 44
Android Basé sur un noyau Linux modifié par Google pour optimiser entre autres - la consommation Équipe plus d'un milliard de téléphone Démarrage plus timide pour les autres «devices» Partiellement open source, contrôlé par Google développement non communautaire Empreinte mémoire importante, largement supérieure à celle de GNU/Linux (plusieurs centaines de Mo) IHM «obligatoire» Développement en Java, pas vraiment en POSIX Existe déjà sur certains objets (montres, ) Version spécifique «wear» pour les objets plus légers (montres, lunettes) L'OS et le SDK restent lourds... 45
Hello Android wear! 46
Conclusions Le choix en OS dédié et (RT)OS adapté n'est pas toujours simple Les OS dédiés utilisent souvent des API et des outils non standards intérêt de Lepton Les OS classiques (Linux, Android) ont une empreinte mémoire importante Le panel d'objets est important (de l'automobile au capteur...) et il n'y a pas UN système utilisable L'important est la compatibilité des protocoles L'utilisation d'un OS libre est fortement conseillée! L'offre OS libre semble être majoritaire? 47
Bibliographie 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 http://www.riot-os.org http://www.riot-os.org/docs/riot-infocom2013-abstract.pdf http://ecos.sourceware.org/ http://o10ee.com/lepton https://source.android.com http://www.android.com/wear 48
Plate-formes, matériel et IOT Pierre Ficheux (pierre.ficheux@openwide.fr) Octobre 2014 49
IOT et smartphone L'IOT est lié (doit faire avec) à 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é Utilisation de «micro contrôleur» sur l'objet et CPU puissant sur le smartphone (dual core, quad core) Apple A8 / ARM 64 bits / 20 nm L'objet lui même est lié à la disponibilité de matériel et logiciel «bon marché» effet de masse 50
(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.com) 51
Versatile PB and sons! < 20 < 30! < 25 52
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 Un objet connecté devrait/doit être aussi simple à «programmer» qu'un site web! Quelques plates-forme dédiées sont (bientôt) disponibles WeIO 53
WeIO WEIO est une plate-forme ARM basée sur OpenWrt distribution Linux utilisée sur les routeurs Open source + open hardware Fournit un IDE pour développer en HTML5 ou Python Extraits de la présentation : «Today we have miniature and cheap computer coming from UK. Raspberry Pi is great real computer but... Today we have one user friendly tool that comes from Italy. ARDUINO is great to learn basics but... We need versatile and friendly platform that can be easily connected with Web services or offer new ones. Connecting objects must be as easy as «hello world» NéoObjects need dedicated interfaces and hardware. Computers are too generalist platform for them. Also, they need wireless connectivity.» 54
Carte WeIO 55
Architecture WeIO GNU/Linux! 56
Optimisation du temps 57
IDE WeIO (HTML5 / Python) 58
Exemple de réalisation 59
Bibliographie http://www.acmesystems.it/aria http://www.buildinginternetofthings.com/ http://www.raspberrypi.org/tag/internet-of-things/ http://www.toshiba-components.com/flashair/ http://www.cbnews.fr/etudes/2-milliards-de-possesseurs-de-smartphones-en-2015-a1013350 http://www.we-io.net/ https://www.indiegogo.com/projects/weio-platform-for-web-of-things http://www.nodesign.net/portfolio/waelice http://www.nodesign.net/portfolio/wasnake http://www.labaleine.org/yann-guidon.htm http://www.arborescence.org/article445.html http://snootlab.fr 60
Consommation énergétique Contexte/Définition Métriques Facteurs clés Cibles IOT : consommation 61
Contexte 2013 : 14 milliards* d'appareils connectés 2020 : 50 milliards* 2030 : 100 milliards* De + en + appareils connectés MAIS de l'énergie de + en + chère Implication de tous les acteurs nécessaires * : [IEA] IOT : consommation 62
Définition Puissance instantanée P = U * I W : Joule/sec Puissance moyenne dissipée Pmoy = Pd + Pcc + Pf Pcc et Pf négligables dans notre cas => Pmoy = A. C. Vdd^2. F [SENTI] A : nombre moyen de transition/cycle => f(complexité) C : capacité circuit Vdd : alimentation F : fréquence de fonctionnement IOT : consommation 63
Gains de consommation estimés Algorithmique* : 10 à 100 fois Architecture* : 10 à 90 % Option de compilation, complexité, taille des structures Parallélisme, pipeline, unité dédiée,.. Circuit* : 10 à 20 % Routage * : [SENTI] IOT : consommation 64
Consommation énergétique soft? Optimisation en temps et en espace => énergie AUSSI de + en + En général, énergie consommée liée au temps d'exécution Métriques : Nombre de cycles par instructions Temps d'exécution des cycles proportionnel à la fréquence de fonctionnement Puissance (instantanée/moyenne) en unité de cycles. IOT : consommation 65
Facteurs clés Tâche complexe : Structures du code Architecture processeur Architecture carte finale IOT : consommation 66
Cibles Passerelle/Objets mobiles Androïd, OpenWRT, GNU/Linux, *BSD,.. Capteurs Lepton, Contiki, freertos, RTEMS,.. IOT : consommation 67
Mobiles/Passerelle Passerelle Relais entre réseaux d'objets connectés et Internet Contraintes faibles => Moins consommer c'est Mieux Mobiles Configuration, Visualisation de résultats fournis par objets connectés Contraintes énergétiques > à celle de passerelles (batteries) IOT : consommation 68
Passerelle,Mobiles : Outils PowerTop CPUfreq Oprofile Perf IOT : consommation 69
Passerelles/Mobiles : Optimisation Suppression du Read Ahead -Mechanism pour FLASH [READH] Désactivation du prefetch opéré par VFS (mise en cache data en fonction accès) Utilisation de systèmes de fichiers adaptés, gain : JFFS2 (40 %) YAFFS (25 %) => Gain en terme de consommation énergétique : moins de code exécuté IOT : consommation 70
Passerelles/Mobiles : Optimisation Dynamic Voltage and Frequency Scaling [DVFS] Ordonnanceur Power-Aware Configuration des tâches en fonction de fréquence/voltage disponibles (création d'un modèle) Adaptation de la fréquence de fonctionnement en fonction des temps mort disponibles IOT : consommation 71
Objets connectés Capteurs, Actionneurs Contraintes énergétiques fortes Outils propriétaires :( => Power-debugging IAR [IAR] Module complémentaire à sonde JTAG Energy micro [EM32] Disponible uniquement sur KIT d' EVAL IOT : consommation 72
Optimisations communes Suppression GPIO flottantes Désactivation horloges des périphériques non utilisées (clock gating) Utilisation des modes low-power (sleep, deep-sleep, hibernate) Options de compilation [COMP_OPTS] IOT : consommation 73
Initiatives libres MAchine Guided Energy Efficient Compilation [MAGEEC] Application de multiples options de compilation Exécution code + mesure de consommation Carte de mesure disponible [MAG_HARD] Stockage des données énergétiques dans une base de données Prise de décision par algorithme évolutionniste i.e. Machine learning IOT : consommation 74
Bibliographie [IEA] : http://www.iea.org/publications/freepublications/publication/moredata_lessenergy.pdf [READH] : Revisiting Read ahead Efficiency for Raw NAND Flash Storage in Embedded Linux, Univ. Europeenne de Bretagne, Pierre Olivier, Jalil Boukhobza, Eric Senn [DVFS] : Low-Power Scheduling with DVFS for common RTOS on Multicore Platforms, THALES Communications & Security, Shuai Li, Florian Broekaert [COMP_OPTS] : http://arxiv.org/pdf/1303.6485v2.pdf [MAGEEC] : http://mageec.org/w/images/c/c5/tsb-eec-mageec-18-jul-13.pdf [MAG_HARD] : http://mageec.org/wiki/power_measurement_board [IAR] : http://files.iccmedia.com/2013/arm-conference/pdf/arm-con-1a-08-iar.pdf [EM32] : http://www.mouser.com/pdfdocs/low-power-energy-micro-energy-debugging.pdf [SENTI] : http://r2d2.enssat.fr/bindocs/publications/sen_ci_97_2.pdf IOT : consommation 75