Upload
sameh-ben-fredj
View
738
Download
1
Tags:
Embed Size (px)
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