Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Programmation de systèmes embarqués : Internet of Things : système connecté et distant

1,196 views

Published on

Ce cours présente ce qu'est l'internet des objets (IoT), un réseau parallèle au web connectant entre eux des dispositifs physiques. Les différences majeures entre l'IoT et le web sont mises en avant, ainsi que les grands défis auxquels le monde de l'IoT est confronté. Le cours présente ensuite brièvement comment on peut gérer un système embarqué à distance, notamment pour la maintenance, le monitoring, le disaster recovery, notamment à l'aide d'un watchdog. Enfin, pour conclure, plusieurs architectures réseaux possibles sont présentées, pour inter-connecter des systèmes embarqués et les relier au web.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Programmation de systèmes embarqués : Internet of Things : système connecté et distant

  1. 1. EE3C Gestion des périphériques Séance 8 Internet of Things système connecté et distant Sébastien Combéfis 28 mars 2017
  2. 2. Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution – Pas d’Utilisation Commerciale – Pas de Modification 4.0 International.
  3. 3. Objectifs Découverte des objets connectés Qu’est-ce-que l’Internet of Things ? Différence avec l’internet traditionnel Monitoring et disaster recovery pour système embarqué Comment faire du monitoring et contrôle à distance Relier un système embarqué à un réseau physique Architecture et connexion WiFi de la BBB 3
  4. 4. Internet of Thing
  5. 5. Explosion de machines (1) Tsunami d’interconnexions machine à machine Production d’une grande quantité de données et connaissances Libération de l’emprise ou du contrôle humain sur les machines Communautés autonomes de machines communicantes Pas ou peu d’intervention humaine, reporting vers l’humain Difficultés techniques de connexion des machines Assez d’adresses IPv6, mais lourdeur du protocole IP Échange de données brutes, de senseur vers serveur 5
  6. 6. Explosion de machines (2) Difficultés à réagir en temps-réel pour le système Sensing et boucles de réponse doivent être en temps-réel Abonnement aux données produites circulant dans le réseau Au lieu du traditionnel système peer-to-peer actuel Quelques systèmes sur Terre qui ont même échelle et taille Distribution du pollen dans les fleurs, Colonies de fourmi, Forêts de redwoods... 6
  7. 7. Internet of Thing Extension du web et d’Internet au monde des objets physiques Internet of Thing (IoT) ou Cyber-Physical Systems (CPS) Communication entre senseurs entre eux et avec Internet Construction d’un réseau d’humains et machines Possibilité de concevoir des “smart homes” Système de chauffage intelligent qui utilise les prévisions météo Gestion complète de la sécurité de l’habitation 7
  8. 8. Histoire Combiner capacité communication avec transmission données Electronic Product Code (EPC), EAN.UCC... 8
  9. 9. Définition ITU de 2005 International Telecommunication Unit (ITU) définit IoT Ajout d’un troisième axe “any thing” de connectivité 9
  10. 10. Question Nouvelles sources de données ajoutées au réseau Possibilité d’offrir de nouveaux services sur base de cela Plusieurs questions soulevées par l’IoT Type de connectivité et interopérabilité pour les objets Modèle de communication utilisé avec les objets Interaction possible avec les modèles existants (Internet) Modèle de transport, identification, adressage et nom Sécurité et vie privée Impact économique 10
  11. 11. Plus qu’un réseau Architecture actuelle d’internet dépassée pour l’IoT Nécessité solution organique car on joue sur les frontières Objets dits de type low fidelity Vitesse peu élevée, pertes, atténuation et intermittence Communication plutôt machine à machine de petites quantités Complètement éloigné de l’internet « traditionnel » 11
  12. 12. Protocole IP et TCP Objets connectés avec très peu de ressources Ne peuvent pas implémenter de très lourds protocoles Pas nécessaire d’avoir connexions fiables avec garanties TCP Connexion permanente, pas de pertes, désordonnement... Nécessité de pouvoir gérer un grand nombre de connexions Plusieurs milliard d’objets pouvant être connectés 12
  13. 13. Donnée individuelle Moins d’importance des données individuelles Messages collectés et interprétés ailleurs dans le réseau 13
  14. 14. Objet plus « con » Aller vers des objets simples dans l’esprit “dumber safer” Moins de hacking et mauvaise configuration si très simple 14
  15. 15. Ubiquitous networking 15
  16. 16. Network of things Web permet d’accéder aux nœuds connectés sur Internet Nœuds identifiés uniquement par une adresse IP via DNS IoT permet d’accéder aux objets connectés Objets identifiés uniquement par un ID via ONS IoT constitués d’atomes plus petit objet possible Combinaison d’un réseau d’atomes avec un réseau de bits Exécution de nouveaux services pour créer “smart world” 16
  17. 17. Classification d’objets 17
  18. 18. Interaction avec le Web Appel de services web par des objets connectés Par exemple sur plateformes PaaS, BaaS, FaaS... Interaction avec le cloud computing Offre de services hardware et software par dessus Internet Envoi de SMS automatiquement grâce su service cloud Twilio API permet notamment l’envoi de SMS, compte gratuit possible 18
  19. 19. IFTTT (1) Service If This Then That (IFTTT) de connexions de channels Associer une action à un trigger (e.g. if new post, send by email) Possibilité de déclencher un évènement par l’envoi d’un e-mail Format particulier de l’adresse, avec des paramètres Trigger possibles sur d’autres systèmes physiques Nest devices, WeMo switches, SmartThings devices... 19
  20. 20. IFTTT (2) 20
  21. 21. IFTTT (3) 21
  22. 22. Thingspeak Service Thingspeak de récolte de données de senseurs Application open source pour l’IoT et API d’analyse 22
  23. 23. DR et monitoring
  24. 24. Gérer système distant Difficultés de gérer un système distant tombé en panne Pas toujours accès physique possible, envoi d’une équipe couteux SSH et redémarrage si système embarqué relié à Internet Consultation de logs, redémarrage application/système complet Deux approches de gestion à distance Monitoring manuel à distance basé sur le web Surveillance semi-automatique par watchdog Linux 24
  25. 25. Monitoring Installation du service de monitoring à distance Linux Dash https://github.com/afaqurk/linux-dash Déploiement très facile sur sa BBB sur un Apache $ sudo apt -get install apache2 apache2 -utils $ sudo apt -get install php5 curl php5 -curl php5 -json $ sudo service apache2 restart $ cd /var/www $ sudo git clone https :// github.com/afaqurk/linux -dash.git Connexion au service de monitoring directement sur la BBB https://xxx.xxx.xxx.xxx/linux-dash 25
  26. 26. Watchdog Linux Disponibilité de watchdog timers (WDT) sous Linux Timer hardware qui reset le système automatiquement Première écriture dans le watchdog l’active Doit être ensuite régulièrement fourni sinon reset système $ ls -l /dev/watchdog crw ------- 1 root root 10, 130 Mar 27 20:02 /dev/watchdog $ cat > /dev/watchdog This will reboot the BBB 50 seconds after I hit Return. Now! Even if I type really slowly on this line but don ’t hit Return 26
  27. 27. Watchdog en C (1) Taper le chien ou dire bonjour, sinon redémarrage système Comme dans les trains où le conducteur donne signe vie 1 #include <stdio.h> 2 #include <fcntl.h> 3 #include <linux/watchdog.h> 4 5 # define WATCHDOG "/dev/watchdog" 6 7 int main () { 8 int fd , interval = 30, state; 9 if ((fd = open (WATCHDOG , O_RDWR)) < 0) { 10 perror("Watchdog: Failed to open watchdog devicen"); 11 return 1; 12 } 13 14 if (ioctl (fd , WDIOC_SETTIMEOUT , &interval) != 0) { 15 perror("Watchdog: Failed to set the watchdog intervaln"); 16 return 1; 17 } 27
  28. 28. Watchdog en C (2) 1 printf("Press k to kick the dog , h to say hello and q to quit : n"); 2 do { 3 state = getchar (); 4 switch(state) { 5 case ’k’: 6 printf ("[kick !]n"); 7 ioctl (fd , WDIOC_KEEPALIVE , NULL); 8 break; 9 case ’h’: 10 printf ("[hello ]n"); 11 break; 12 } 13 } while (state != ’q’); 14 15 printf ("Closing down the application ...n"); 16 close (fd); 17 return 0; 18 } 28
  29. 29. Mise à jour Mise à jour d’un système embarqué distant risquée Garantie de connexion durant toute la mise à jour Faire face aux corruptions de données Encore plus de risques pour mettre à jour Linux embarqué Mise à jour partielle par coupure de connexion Redémarrage pas possible hardware non reconnu 29
  30. 30. Réseau physique
  31. 31. Architecture Plusieurs possibilités d’architecture pour l’IoT ou le CPS Diffèrent en fonction des composants et du type de connexions Combinaisons de BBBs et serveurs « classique » Une BBB avec serveur web, afficher mesures de senseurs Une BBB se connecte à un serveur distant, envoie mesures Deux BBBs dans une relation client/serveur Des BBBs avec senseurs appellent services web PaaS 31
  32. 32. Serveur web La BBB héberge un serveur web en son sein Des clients s’y connectent pour consulter les informations... Nécessité d’être en permanence connectée à Internet Exécution du serveur web consomme de l’énergie 32
  33. 33. Client La BBB agit comme un client et se connecte à un serveur Envoie des données au serveur lorsque disponibles Ne se connecte à Internet que lorsque c’est nécessaire Doit implémenter le protocole de communication avec le serveur 33
  34. 34. Interconnexion Réseau de BBBs interconnectées entre elles Échange d’informations au sein d’un réseau de senseurs Connexions permanentes ou non, client/serveur ou P2P Possibilité d’exécuter un algorithme distribué ou données 34
  35. 35. Service web Connexions des BBBs à un serveur fournisseur de services Le monde physique est connecté au cloud BBB envoie données à un service web hébergé sur le PaaS Un autre service sur le PaaS présente et analyse les données 35
  36. 36. Connexion Nécessité d’avoir un système embarqué connecté pour l’IoT Sans quoi ce dernier ne pourra communiquer avec le monde Plusieurs types de connexion avec infrastructure existante RFID et identification, PCL et accès domestique Deux choix technologiques principaux pour la BBB Connexion câblée Ethernet ou sans fil WiFi 36
  37. 37. Standard sans fil Plusieurs standards sans fil existants sur le marché Avec différentes caractéristiques de portée, puissance, débit... Deux choix principaux pour connecter la BBB sans fil Possibilité d’un module ZigBee sur UART sur la BBB Adaptateur réseau WiFi sur dongle USB Bluetooth Zigbee WiFi Custom Standard IEEE 802.15.1 IEEE 802.15.4 IEEE 802.11 2.4 GHz custom Portée 10 m à 100 m ∼100 m 10 m à 100 m 10 m à 100 m Puissance basse très basse haute très basse Débit <2.1 Mb/s <250 kb/s 10 à 300 Mb/s 250 kb/s Topologie Étoile Mesh/étoile Étoile Étoile Organisation Bluetooth SIG ZigBee Alliance WiFi Alliance — 37
  38. 38. Dongle USB WiFi (1) Branchement du dongle USB et chargement driver par kernel Vérification du bon chargement par dmesg ou lsusb Interface réseau pour le périphérique WiFi chargée également Adresse physique MAC et autres statistiques avec ifconfig $ lsusb Bus 001 Device 002: ID 7392:7811 Edimax Technology Co., Ltd EW -7811 Un 802.11n Wireless Adapter [Realtek RTL8188CUS] Bus 001 Device 001: ID 1d6b :0002 Linux Foundation 2.0 root hub $ ifconfig -a ... wlan0 Link encap:Ethernet HWaddr 74:da :38:2e:1f:bc UP BROADCAST MULTICAST DYNAMIC MTU :1500 Metric :1 RX packets :0 errors :0 dropped :0 overruns :0 frame :0 TX packets :0 errors :0 dropped :0 overruns :0 carrier :0 collisions :0 txqueuelen :1000 RX bytes :0 (0.0 B) TX bytes :0 (0.0 B) 38
  39. 39. Dongle USB WiFi (2) Configurer interface WiFi dans /etc/network/interfaces Ajouter la ligne iface wlan0 inet dhcp Configuration de base du réseau WiFi avec ifup $ ifup wlan0 Internet Systems Consortium DHCP Client 4.3.1 Copyright 2004 -2014 Internet Systems Consortium. All rights reserved. For info , please visit https :// www.isc.org/software/dhcp/ Listening on LPF/wlan0 /74: da :38:2e:1f:bc Sending on LPF/wlan0 /74: da :38:2e:1f:bc Sending on Socket/fallback DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 12 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 14 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 19 No DHCPOFFERS received. No working leases in persistent database - sleeping. 39
  40. 40. Dongle USB WiFi (3) Générer l’authentification par WPA Ajouter la ligne iface wlan0 inet dhcp Configuration de base du réseau WiFi avec ifup $ ifup wlan0 Internet Systems Consortium DHCP Client 4.3.1 Copyright 2004 -2014 Internet Systems Consortium. All rights reserved. For info , please visit https :// www.isc.org/software/dhcp/ Listening on LPF/wlan0 /74: da :38:2e:1f:bc Sending on LPF/wlan0 /74: da :38:2e:1f:bc Sending on Socket/fallback DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 12 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 14 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 19 No DHCPOFFERS received. No working leases in persistent database - sleeping. 40
  41. 41. Rechercher un réseau Rechercher un réseau sur lequel se connecter avec iwlist Scan complet interface et caractéristiques des réseaux trouvés $ iwlist wlan0 scan wlan0 Scan completed : Cell 01 - Address: 30:D3:2D:0A:62:88 Channel :1 Frequency :2.412 GHz (Channel 1) Quality =38/70 Signal level =-72 dBm Encryption key:on ESSID :"WiFi -2.4 - AE32" Bit Rates :1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 18 Mb/s Bit Rates :24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf =00000556 f13fd214 Extra: Last beacon: 944 ms ago ... 41
  42. 42. Livres de référence ISBN 978-1-848-21140-7 ISBN 978-1-430-25740-0 ISBN 978-1-118-93512-5 42
  43. 43. Crédits Photos des livres depuis Amazon https://www.flickr.com/photos/madlabuk/7032244561 https://www.flickr.com/photos/basicgov/4029724029 https://www.flickr.com/photos/jennifer-stylls/8012538039 43

×