SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
EE3C Gestion des périphériques
Séance 8
Internet of Things
système connecté et distant
Sébastien Combéfis 28 mars 2017
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.
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
Internet of Thing
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
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
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
Histoire
Combiner capacité communication avec transmission données
Electronic Product Code (EPC), EAN.UCC...
8
Définition ITU de 2005
International Telecommunication Unit (ITU) définit IoT
Ajout d’un troisième axe “any thing” de connectivité
9
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
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
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
Donnée individuelle
Moins d’importance des données individuelles
Messages collectés et interprétés ailleurs dans le réseau
13
Objet plus « con »
Aller vers des objets simples dans l’esprit “dumber safer”
Moins de hacking et mauvaise configuration si très simple
14
Ubiquitous networking
15
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
Classification d’objets
17
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
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
IFTTT (2)
20
IFTTT (3)
21
Thingspeak
Service Thingspeak de récolte de données de senseurs
Application open source pour l’IoT et API d’analyse
22
DR et monitoring
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
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
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
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
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
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
Réseau physique
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
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
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
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
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
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
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
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
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
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
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
Livres de référence
ISBN
978-1-848-21140-7
ISBN
978-1-430-25740-0
ISBN
978-1-118-93512-5
42
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

Más contenido relacionado

La actualidad más candente

Etude et mise en place d’une solution open source de gestion de la sécurité d...
Etude et mise en place d’une solution open source de gestion de la sécurité d...Etude et mise en place d’une solution open source de gestion de la sécurité d...
Etude et mise en place d’une solution open source de gestion de la sécurité d...
Mohammed LAAZIZLI
 

La actualidad más candente (20)

Rapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc InformatiqueRapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc Informatique
 
Présentation des IoT
Présentation des IoTPrésentation des IoT
Présentation des IoT
 
Internet des objets (IoT)
Internet des objets (IoT)Internet des objets (IoT)
Internet des objets (IoT)
 
Methodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locauxMethodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locaux
 
Formation stm32
Formation stm32Formation stm32
Formation stm32
 
Rapport pfe isi_Big data Analytique
Rapport pfe isi_Big data AnalytiqueRapport pfe isi_Big data Analytique
Rapport pfe isi_Big data Analytique
 
Etude et mise en place d’une solution open source de gestion de la sécurité d...
Etude et mise en place d’une solution open source de gestion de la sécurité d...Etude et mise en place d’une solution open source de gestion de la sécurité d...
Etude et mise en place d’une solution open source de gestion de la sécurité d...
 
Introduction à l'IOT (Internet des objets) - Thomas DARIEL (PramaTALK)
Introduction à l'IOT (Internet des objets) - Thomas DARIEL (PramaTALK)Introduction à l'IOT (Internet des objets) - Thomas DARIEL (PramaTALK)
Introduction à l'IOT (Internet des objets) - Thomas DARIEL (PramaTALK)
 
Internet des Objets
Internet des ObjetsInternet des Objets
Internet des Objets
 
Projet administration-sécurité-réseaux
Projet administration-sécurité-réseauxProjet administration-sécurité-réseaux
Projet administration-sécurité-réseaux
 
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
 
Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau
 
Gateway d’un système de monitoring
Gateway d’un système de monitoringGateway d’un système de monitoring
Gateway d’un système de monitoring
 
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4 Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
 
Pfe master fst_final_decembre2015
Pfe master fst_final_decembre2015Pfe master fst_final_decembre2015
Pfe master fst_final_decembre2015
 
sécurité informatique
sécurité informatiquesécurité informatique
sécurité informatique
 
Rapport projet fin d'étude
Rapport projet fin d'étudeRapport projet fin d'étude
Rapport projet fin d'étude
 
Rapport
RapportRapport
Rapport
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
 
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSSProgrammation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
 

Destacado

Réseaux des neurones
Réseaux des neuronesRéseaux des neurones
Réseaux des neurones
Med Zaibi
 

Destacado (20)

Outils de gestion de projets
Outils de gestion de projetsOutils de gestion de projets
Outils de gestion de projets
 
Développement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbreDéveloppement informatique : Algorithmique I : Récursion et arbre
Développement informatique : Algorithmique I : Récursion et arbre
 
Introduction à la formation Digitalent
Introduction à la formation DigitalentIntroduction à la formation Digitalent
Introduction à la formation Digitalent
 
la contribution de la résilience organisationnelle et l'agilité organisationn...
la contribution de la résilience organisationnelle et l'agilité organisationn...la contribution de la résilience organisationnelle et l'agilité organisationn...
la contribution de la résilience organisationnelle et l'agilité organisationn...
 
Johnny-Five : Robotique et IoT en JavaScript
Johnny-Five : Robotique et IoT en JavaScriptJohnny-Five : Robotique et IoT en JavaScript
Johnny-Five : Robotique et IoT en JavaScript
 
Comment Internet fonctionne-t-il ?
Comment Internet fonctionne-t-il ?Comment Internet fonctionne-t-il ?
Comment Internet fonctionne-t-il ?
 
Programmation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communicationProgrammation de systèmes embarqués : Bus et périphériques de communication
Programmation de systèmes embarqués : Bus et périphériques de communication
 
Développement informatique : Programmation concurrente
Développement informatique : Programmation concurrenteDéveloppement informatique : Programmation concurrente
Développement informatique : Programmation concurrente
 
Introduction à LaTeX : le système de composition professionnel
Introduction à LaTeX : le système de composition professionnelIntroduction à LaTeX : le système de composition professionnel
Introduction à LaTeX : le système de composition professionnel
 
Python avancé : Qualité de code et convention de codage
Python avancé : Qualité de code et convention de codagePython avancé : Qualité de code et convention de codage
Python avancé : Qualité de code et convention de codage
 
Python avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiersPython avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiers
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
 
Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
 
Réseaux des neurones
Réseaux des neuronesRéseaux des neurones
Réseaux des neurones
 
UKO-JAVA1001-slides
UKO-JAVA1001-slidesUKO-JAVA1001-slides
UKO-JAVA1001-slides
 
Développement informatique : Programmation réseau
Développement informatique : Programmation réseauDéveloppement informatique : Programmation réseau
Développement informatique : Programmation réseau
 
Modélisation avec UML
Modélisation avec UMLModélisation avec UML
Modélisation avec UML
 
Laboratoire de transmission numérique : Présentation du projet
Laboratoire de transmission numérique : Présentation du projetLaboratoire de transmission numérique : Présentation du projet
Laboratoire de transmission numérique : Présentation du projet
 
Python avancé : Tuple et objet
Python avancé : Tuple et objetPython avancé : Tuple et objet
Python avancé : Tuple et objet
 

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

Cisco discovery-module-final-v4
Cisco discovery-module-final-v4Cisco discovery-module-final-v4
Cisco discovery-module-final-v4
r2ch
 
Cours réseaux informatiques iia2
Cours réseaux informatiques  iia2Cours réseaux informatiques  iia2
Cours réseaux informatiques iia2
Amel Morchdi
 
Glossaire accompagner usager
Glossaire accompagner usagerGlossaire accompagner usager
Glossaire accompagner usager
Yassinho55
 
ReMix11 Paris: Windows Azure & développement mobile
ReMix11 Paris: Windows Azure & développement mobileReMix11 Paris: Windows Azure & développement mobile
ReMix11 Paris: Windows Azure & développement mobile
Thomas Conté
 

Similar a Programmation de systèmes embarqués : Internet of Things : système connecté et distant (20)

IoT (M2M) - Big Data - Analyses : Simulation et Démonstration
IoT (M2M) - Big Data - Analyses : Simulation et DémonstrationIoT (M2M) - Big Data - Analyses : Simulation et Démonstration
IoT (M2M) - Big Data - Analyses : Simulation et Démonstration
 
Mrnc n7 2019
Mrnc n7 2019Mrnc n7 2019
Mrnc n7 2019
 
Cisco discovery-module-final-v4
Cisco discovery-module-final-v4Cisco discovery-module-final-v4
Cisco discovery-module-final-v4
 
Nuit du Hack 2K16 - Scénarios d'attaques sur un système industriel
Nuit du Hack 2K16 - Scénarios d'attaques sur un système industrielNuit du Hack 2K16 - Scénarios d'attaques sur un système industriel
Nuit du Hack 2K16 - Scénarios d'attaques sur un système industriel
 
TelCar : Solution de lecture des informations de bord de véhicule
TelCar : Solution de lecture des informations de bord de véhiculeTelCar : Solution de lecture des informations de bord de véhicule
TelCar : Solution de lecture des informations de bord de véhicule
 
IOT-1.pdf
IOT-1.pdfIOT-1.pdf
IOT-1.pdf
 
Crouzet Automation - em4 Ethernet Brochure, version française
Crouzet Automation - em4 Ethernet Brochure, version françaiseCrouzet Automation - em4 Ethernet Brochure, version française
Crouzet Automation - em4 Ethernet Brochure, version française
 
VISEO Shake the Microsoft business - comment rapidement batir une solution IoT
VISEO Shake the Microsoft business - comment rapidement batir une solution IoTVISEO Shake the Microsoft business - comment rapidement batir une solution IoT
VISEO Shake the Microsoft business - comment rapidement batir une solution IoT
 
InternetdesObjets
InternetdesObjetsInternetdesObjets
InternetdesObjets
 
Cours réseaux informatiques iia2
Cours réseaux informatiques  iia2Cours réseaux informatiques  iia2
Cours réseaux informatiques iia2
 
Iot & cloud
Iot & cloudIot & cloud
Iot & cloud
 
Glossaire accompagner usager
Glossaire accompagner usagerGlossaire accompagner usager
Glossaire accompagner usager
 
Iot juin 2017
Iot juin 2017Iot juin 2017
Iot juin 2017
 
SdE 11 - Reseau
SdE 11 - ReseauSdE 11 - Reseau
SdE 11 - Reseau
 
SDE 10 - Reseau
SDE 10 - ReseauSDE 10 - Reseau
SDE 10 - Reseau
 
Développez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows AzureDéveloppez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows Azure
 
186333.ppt
186333.ppt186333.ppt
186333.ppt
 
Biztalk summit - IOT
Biztalk summit - IOTBiztalk summit - IOT
Biztalk summit - IOT
 
IoT (l'Internet des Objets) et le protocole de telecommunication LoRaWan
IoT (l'Internet des Objets) et le protocole de telecommunication LoRaWanIoT (l'Internet des Objets) et le protocole de telecommunication LoRaWan
IoT (l'Internet des Objets) et le protocole de telecommunication LoRaWan
 
ReMix11 Paris: Windows Azure & développement mobile
ReMix11 Paris: Windows Azure & développement mobileReMix11 Paris: Windows Azure & développement mobile
ReMix11 Paris: Windows Azure & développement mobile
 

Más de ECAM Brussels Engineering School

Más de ECAM Brussels Engineering School (14)

Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéProgrammation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
 
Développement informatique : Programmation graphique
Développement informatique : Programmation graphiqueDéveloppement informatique : Programmation graphique
Développement informatique : Programmation graphique
 
Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...
 
Intelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleIntelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielle
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...
 
Qualité de code et bonnes pratiques
Qualité de code et bonnes pratiquesQualité de code et bonnes pratiques
Qualité de code et bonnes pratiques
 
Arbre et algorithme de recherche
Arbre et algorithme de rechercheArbre et algorithme de recherche
Arbre et algorithme de recherche
 
HTML, CSS et Javascript
HTML, CSS et JavascriptHTML, CSS et Javascript
HTML, CSS et Javascript
 
Type abstrait de données
Type abstrait de donnéesType abstrait de données
Type abstrait de données
 
Polymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraitePolymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraite
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielle
 
Héritage et redéfinition de méthode
Héritage et redéfinition de méthodeHéritage et redéfinition de méthode
Héritage et redéfinition de méthode
 

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

  • 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. 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. 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
  • 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. 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. 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. Histoire Combiner capacité communication avec transmission données Electronic Product Code (EPC), EAN.UCC... 8
  • 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. 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. 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. 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. Donnée individuelle Moins d’importance des données individuelles Messages collectés et interprétés ailleurs dans le réseau 13
  • 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
  • 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
  • 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. 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
  • 22. Thingspeak Service Thingspeak de récolte de données de senseurs Application open source pour l’IoT et API d’analyse 22
  • 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. 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. 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. 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. 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. 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
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  • 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