This Presentation is an introduction to the Internet of Things where we define what is IoT, illustrate some use cases and usages and detail the different parts of an IoT eco-system. We also present some examples of DIY projects with code and tools to help you start your own IoT project !
16. @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
29. @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
30. @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.
35. @PhilippeAntoine @SamehBenF#IoT
#IoT
Temperature sensor (DS1810)
+ Raspberry Pi
+ MQTT Client (Mosquitto) +
+ MQTT Broker (CloudMQTT)
+ Node js server
Cloud
Server
MQTT
HTTP
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
36. @PhilippeAntoine @SamehBenF#IoT
#IoT
Step 1:
Collecter
Step 3:
Executer
Step 4:
Visualiser
Step 2:
Communiquer
Step 1:
Collecter
et actionner
mqttc = mosquitto.Mosquitto()
# Assign event callbacks
mqttc.on_message = on_message
mqttc.on_connect = on_connect
mqttc.on_publish = on_publish
mqttc.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)
# Connect
mqttc.username_pw_set(url.username, url.password)
mqttc.connect(url.hostname, url.port)
# Continue the network loop, exit when an error occurs
rc = 0
while 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 callbacks
def 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
37. @PhilippeAntoine @SamehBenF#IoT
#IoT
Local
Local network
Local
Connectivity Cloud
Infrastructure
Rest
API
MQTT
COAP
IoT Platform
Storage
Data
analysis
Real
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