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

Preview:

Citation preview

EE3C Gestion des périphériques

Séance 8

Internet of Thingssystème connecté et distant

Sébastien Combéfis 28 mars 2017

Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative CommonsAttribution – 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/ watchdogcrw ------- 1 root root 10, 130 Mar 27 20:02 /dev/ watchdog

$ cat > /dev/ watchdogThis 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>45 # define WATCHDOG "/dev/ watchdog "67 int main () {8 int fd , interval = 30, state ;9 if (( fd = open (WATCHDOG , O_RDWR )) < 0) {

10 perror (" Watchdog : Failed to open watchdog device \n");11 return 1;12 }1314 if ( ioctl (fd , WDIOC_SETTIMEOUT , & interval ) != 0) {15 perror (" Watchdog : Failed to set the watchdog interval \n");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’);1415 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.4GHz customPortée 10m à 100m ∼100m 10m à 100m 10m à 100mPuissance basse très basse haute très basseDébit <2.1Mb/s <250 kb/s 10 à 300Mb/s 250 kb/sTopologie Étoile Mesh/étoile Étoile ÉtoileOrganisation 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

$ lsusbBus 001 Device 002: ID 7392:7811 Edimax Technology Co., Ltd EW -7811 Un802.11 n 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:2 e:1f:bc

UP BROADCAST MULTICAST DYNAMIC MTU :1500 Metric :1RX packets :0 errors :0 dropped :0 overruns :0 frame :0TX packets :0 errors :0 dropped :0 overruns :0 carrier :0collisions :0 txqueuelen :1000RX 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 wlan0Internet Systems Consortium DHCP Client 4.3.1Copyright 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:2 e:1f:bcSending on LPF/ wlan0 /74: da :38:2 e:1f:bcSending on Socket / fallbackDHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 12DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 14DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 19No 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 wlan0Internet Systems Consortium DHCP Client 4.3.1Copyright 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:2 e:1f:bcSending on LPF/ wlan0 /74: da :38:2 e:1f:bcSending on Socket / fallbackDHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 12DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 14DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 19No 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 scanwlan0 Scan completed :

Cell 01 - Address : 30: D3 :2D:0A :62:88Channel :1Frequency :2.412 GHz ( Channel 1)Quality =38/70 Signal level = -72 dBmEncryption key:onESSID :" 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/sBit Rates :24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/sMode: MasterExtra :tsf =00000556 f13fd214Extra : Last beacon : 944 ms ago

...

41

Livres de référence

ISBN978-1-848-21140-7

ISBN978-1-430-25740-0

ISBN978-1-118-93512-5

42

Crédits

Photos des livres depuis Amazonhttps://www.flickr.com/photos/madlabuk/7032244561https://www.flickr.com/photos/basicgov/4029724029https://www.flickr.com/photos/jennifer-stylls/8012538039

43

Recommended