Introduction à l'IoT: du capteur à la donnée_Presentation Mix-IT2015

Preview:

Citation preview

Introduction à l’IoT: Du capteur à la donnée

Sameh Ben Fredj & Philippe Antoine2015

@PhilippeAntoine @SamehBenF #IoT

#IoT

Speakers

Philippe ANTOINE

Sameh Ben Fredj Consultante IoT/Data Xebia @SamehBenF

Philippe Antoine Consultant Front Xebia @PhilippeAntoine

@PhilippeAntoine @SamehBenF #IoT

#IoT

QUOI ?

@PhilippeAntoine @SamehBenF #IoT

#IoT

Definition

PAS DE DEFINITION

OFFICIELLE !

@PhilippeAntoine @SamehBenF #IoT

#IoT

Definition

@PhilippeAntoine @SamehBenF #IoT

#IoT

Definition

“Objets physiques capables de se connecter à l’infrastructure de l’Internet,

de faire des mesure de environnement physique (capteurs)

et/ou d’agir sur environnement (actionneurs).”

@PhilippeAntoine @SamehBenF #IoT

#IoT

C’est Partout !

source: http://blog.algoengines.com/

@PhilippeAntoine @SamehBenF #IoT

#IoT

Ma maison

@PhilippeAntoine @SamehBenF #IoT

#IoT

Ma santé et bien-être

@PhilippeAntoine @SamehBenF #IoT

#IoT

Ma Ville

@PhilippeAntoine @SamehBenF #IoT

#IoT

B2B

@PhilippeAntoine @SamehBenF #IoT

#IoT

En France !

Source IFOP

@PhilippeAntoine @SamehBenF #IoT

#IoT

POURQUOI ?

@PhilippeAntoine @SamehBenF #IoT

#IoT

Nombre d’objets

Cisco, 2011

@PhilippeAntoine @SamehBenF #IoT

#IoT

Complexity

Ericsson

@PhilippeAntoine @SamehBenF #IoT

#IoT

Data !

• Le volume des données digitales double chaque 2 ans.

• 35 % des données digitales seront produites par l’IoT en 2020.

• Un pourcentage faible des données est analysé et monétisé.

Source : EMC, IDC, 2013

@PhilippeAntoine @SamehBenF #IoT

#IoT

Money !

Source : EMC, IDC, 2013

@PhilippeAntoine @SamehBenF #IoT

#IoT

Acteurs

@PhilippeAntoine @SamehBenF #IoT

#IoT

COMMENT ?

@PhilippeAntoine @SamehBenF #IoT

#IoT

L’écosystème IoT

objet Application data

action

data

action

@PhilippeAntoine @SamehBenF #IoT

#IoT

L’écosystème IoTcollecter et actionner

@PhilippeAntoine @SamehBenF #IoT

#IoT

Step 1: Collecter

Maison

Gateway

Step 2: Communiquer

Step 3: Executer

Step 4: Visualiser

Step 1: Collecter

et actionner

Capteurs /Actionneurs GatewaysProtocols de communications+ +

@PhilippeAntoine @SamehBenF #IoT

#IoT

Step 1: Collecter

Step 2: Communiquer

Step 3: Executer

Step 4: Visualiser

Step 1: Collecter

et actionner

433 MHz

@PhilippeAntoine @SamehBenF #IoT

#IoT

Step 2: Communiquer

Step 3: Executer

Step 4: Visualiser

Step 1: Collecter

et actionner

@PhilippeAntoine @SamehBenF #IoT

#IoT

@PhilippeAntoine @SamehBenF #IoT

#IoT

RaspberryPi Arduino

Nano Computer Micro Controller

Step 2: Communiquer

Step 3: Executer

Step 4: Visualiser

Step 1: Collecter

et actionner

@PhilippeAntoine @SamehBenF #IoT

#IoT

Step 2: Communiquer

Step 3: Executer

Step 4: Visualiser

Step 1: Collecter

et actionner

http://readwrite.com/2014/05/07/arduino-vs-raspberry-pi-projects-diy-platform

@PhilippeAntoine @SamehBenF #IoT

#IoT

Leds

Grove Sensors + GrovePI

DS18b20

boutons

Step 2: Communiquer

Step 3: Executer

Step 4: Visualiser

Step 1: Collecter

et actionner

@PhilippeAntoine @SamehBenF #IoT

#IoT

Lecture de donnée de capteur temperature

ssh

Lecture des données à partir du GPIO

Step 2: Communiquer

Step 3: Executer

Step 4: Visualiser

Step 1: Collecter

et actionner

Example:Capteur DS18b20 + resistance 4,3 k Ohm + Raspberry Pi

@PhilippeAntoine @SamehBenF #IoT

#IoT

import os import glob import time os.system('modprobe w1-gpio') os.system('modprobe w1-therm') base_dir = '/sys/bus/w1/devices/' device_folder = glob.glob(base_dir + '28*')[0] device_file = device_folder + '/w1_slave' def read_temp_raw(): f = open(device_file, 'r') lines = f.readlines() f.close() return lines def read_temp(): lines = read_temp_raw() while lines[0].strip()[-3:] != 'YES': time.sleep(0.2) lines = read_temp_raw() equals_pos = lines[1].find('t=') if equals_pos != -1: temp_string = lines[1][equals_pos+2:] temp_c = float(temp_string) / 1000.0 return temp_c

while True: print(read_temp()) time.sleep(1)

Step 2: Communiquer

Step 3: Executer

Step 4: Visualiser

Step 1: Collecter

et actionner

Import Library

Communicate with the sensor via GPIO

Localize the sensor and get it is ID

Read raw data from the sensor

Check for bad message, extract value and convert it to Celcius.

Print data every 1 second.

@PhilippeAntoine @SamehBenF #IoT

#IoT

Local

Local network

Cloud

Step 1: Collecter

Step 3: Executer

Step 4: Visualiser

Step 2: Communiquer

Step 1: Collecter

et actionner

Infrastructure Réseau Cloud+

@PhilippeAntoine @SamehBenF #IoT

#IoT

Local

Local network

Cloud

MQTT

COAP

HTTP

Step 1: Collecter

Step 3: Executer

Step 4: Visualiser

Step 2: Communiquer

Step 1: Collecter

et actionner

@PhilippeAntoine @SamehBenF #IoT

#IoT

Broker

Step 1: Collecter

Step 3: Executer

Step 4: Visualiser

Step 2: Communiquer

Step 1: Collecter

et actionner

@PhilippeAntoine @SamehBenF #IoT

#IoT

Step 1: Collecter

Step 3: Executer

Step 4: Visualiser

Step 2: Communiquer

Step 1: Collecter

et actionner

@PhilippeAntoine @SamehBenF #IoT

#IoT

Temperature sensor (DS1810) + Raspberry Pi + MQTT Client (Mosquitto) + + MQTT Broker (CloudMQTT) + Node js server

Cloud Server

MQTTHTTP

Step 1: Collecter

Step 3: Executer

Step 4: Visualiser

Step 2: Communiquer

Step 1: Collecter

et actionner

Envoi de données de capteur vers un broker MQTT et affichage de données

Example :

+

Publisher Broker Subscriber

@PhilippeAntoine @SamehBenF #IoT

#IoT

Step 1: Collecter

Step 3: Executer

Step 4: Visualiser

Step 2: Communiquer

Step 1: Collecter

et actionnermqttc = mosquitto.Mosquitto()# Assign event callbacksmqttc.on_message = on_messagemqttc.on_connect = on_connectmqttc.on_publish = on_publishmqttc.on_subscribe = on_subscribe

# Uncomment to enable debug messages#mqttc.on_log = on_log

# Parse CLOUDMQTT_URL (or fallback to localhost)url_str = os.environ.get('CLOUDMQTT_URL', 'mqtt://localhost:1883')url = urlparse.urlparse(url_str)

# Connectmqttc.username_pw_set(url.username, url.password)mqttc.connect(url.hostname, url.port)

# Continue the network loop, exit when an error occursrc = 0while rc == 0: line = ser.readline() #split line as it contains V,temp list = line.split(",") #second list element is temp temp = list[0].rstrip() print("Temp is "+temp) mqttc.publish(« sensors/temp", temp) pass

import mosquitto, os, urlparse

# Define event callbacksdef on_connect(mosq, obj, rc): print("rc: " + str(rc))

def on_message(mosq, obj, msg): print(msg.topic + " " + str(msg.qos) + " " + str(msg.payload))

def on_publish(mosq, obj, mid): print("mid: " + str(mid))

def on_log(mosq, obj, level, string): print(string)

Topic where to publish

URL Broker

Connect

@PhilippeAntoine @SamehBenF #IoT

#IoT

Local

Local network

Local

Connectivity Cloud Infrastructure

Rest API

MQTT

COAP

IoT Platform

StorageData

analysisReal Time

Service management

service search

Scripting

Step 1: Collecter

Step 3: Executer

Step 4: Visualiser

Step 2: Communiquer

Step 1: Collecter

et actionner

Big data

@PhilippeAntoine @SamehBenF #IoT

#IoT

La Guerre des plateformes !

Step 1: Collecter

Step 3: Executer

Step 4: Visualiser

Step 2: Communiquer

Step 1: Collecter

et actionner

@PhilippeAntoine @SamehBenF #IoT

#IoT

Temperature sensor (DS1810) + Raspberry Pi + MQTT Client + MQTT Broker + Amazon Kinesis

MQTT HTTP

Step 1: Collecter

Step 3: Executer

Step 4: Visualiser

Step 2: Communiquer

Step 1: Collecter

et actionner

Envoi des données à Amazon KinesisExample :

Kinesis

@PhilippeAntoine @SamehBenF #IoT

#IoT

Setup of Amazon Kinesis

Step 1: Collecter

Step 3: Executer

Step 4: Visualiser

Step 2: Communiquer

Step 1: Collecter

et actionner

1

2

@PhilippeAntoine @SamehBenF #IoT

#IoT

Setup of Amazon Kinesis

Step 1: Collecter

Step 3: Executer

Step 4: Visualiser

Step 2: Communiquer

Step 1: Collecter

et actionner

3

4

@PhilippeAntoine @SamehBenF #IoT

#IoT

Step 1: Collecter

Step 3: Executer

Step 4: Visualiser

Step 2: Communiquer

Step 1: Collecter

et actionner

@PhilippeAntoine @SamehBenF #IoT

#IoT

Step 1: Collecter

Step 3: Executer

Step 4: Visualiser

Step 2: Communiquer

Step 1: Collecter

et actionner

@PhilippeAntoine @SamehBenF #IoT

#IoT

Actionner !Hacker vos objets !

The FadoNet Lamp: Arduino UNO + Arduino Ethernet Shield + RGB LED !

http://www.ikeahackers.net/2011/10/fadonet.html

@PhilippeAntoine @SamehBenF #IoT

#IoT

Use case: Smart Dev

• Fast Dev Feedback • Automatisation des

déploiements • Qualité

@PhilippeAntoine @SamehBenF #IoT

#IoT

Industrial Use case: IoT

@PhilippeAntoine @SamehBenF #IoT

#IoT

Industrial Use case: IoT

@PhilippeAntoine @SamehBenF #IoT

#IoT

Challenges techniques

• Sécurité • Bande passante vers

le cloud • Pas de standard pour

les messages • Polling / WebHook /

REST Streaming • Haute Dispo

• Volumétries • Realtime • 3d Prototyping

@PhilippeAntoine @SamehBenF #IoT

#IoT

Où ?

@PhilippeAntoine @SamehBenF #IoT

#IoT

Now !

@PhilippeAntoine @SamehBenF #IoT

#IoT

Futur ?

Intel

@PhilippeAntoine @SamehBenF #IoT

#IoT

Futur ?

Intel

@PhilippeAntoine @SamehBenF #IoT

#IoT

Usages futurs

Recommandation et assistance proactive

Assistance santé à distancePrediction des maladies

@PhilippeAntoine @SamehBenF #IoT

#IoT• Prediction du traffic et retards• Meilleur management de l’énergie et monitoring de l’environnement.• Sécurité

Usages futurs

@PhilippeAntoine @SamehBenF #IoT

#IoT

ChallengesData security

Heterogeneity Scalability and

real time data processing

Cloud

Storage

Big Data

Data Analysis Prediction

Machine Learning Artificial Intelligence

Data Visualization

Privacy

Large IoT platformes

@PhilippeAntoine @SamehBenF #IoT

#IoT

Decentralized IoT ?

@PhilippeAntoine @SamehBenF #IoT

#IoT

Blockchain ?

@PhilippeAntoine @SamehBenF #IoT

#IoT

Objets connectés autonomes

@PhilippeAntoine @SamehBenF #IoT

#IoT

Hackathon Ethereum

Raspberry Pi meetup

@PhilippeAntoine @SamehBenF #IoT

#IoT

Définition de l’IoT

Présentation des usages

Presentation de l’écosystème

Présentation de quelques DIY exemples

Le futur de l’IoT ?

Smart Studio project:

@PhilippeAntoine @SamehBenF #IoT

#IoT

@PhilippeAntoine @SamehBenF #IoT

#IoT

MERCI !Q&A