Introduction aux flux de données

Analyse de données IoT avec Python

Matthias Voppichler

IT Developer

Qu'est-ce qu'un flux de données

  • Flux de données continu
  • Exemples
    • Messages Twitter
    • Articles d'actualité en ligne
    • Flux vidéo
    • Données de capteurs (IoT)
    • Ordres de marché (finance)
Analyse de données IoT avec Python

Qu'est-ce qu'un flux de données

  • Flux de données continu
  • Exemples
    • Messages Twitter
    • Articles d'actualité en ligne
    • Flux vidéo
    • Données de capteurs (IoT)
    • Ordres de marché (finance)
Analyse de données IoT avec Python

MQTT

  • Protocole de messagerie
  • Publication / abonnement
  • Faible empreinte

Serveur -> Sert d'agent de messages

Client :

  • Se connecte à un agent
  • Publie des données
  • S'abonne à des sujets

Message Queuing Telemetry Transport

Flux MQTT — Du producteur -> à l'agent -> aux consommateurs

Analyse de données IoT avec Python

Bibliothèque Python

Client Python Eclipse Paho™ MQTT

# Importer la bibliothèque MQTT
import paho.mqtt

Plus d'information et documentation sur GitHub https://github.com/eclipse/paho.mqtt.python

Analyse de données IoT avec Python

Message unique

import paho.mqtt.subscribe as subscribe
msg = subscribe.simple("paho/test/simple", 
                       hostname="test.mosquitto.org")

print(f"{msg.topic}, {msg.payload}")

Résultat :

paho/test/simple, {"time": 1549481572, "humidity": 77, "temp": 21}
Analyse de données IoT avec Python

Rappel (callback)

def on_message(client, userdata, message):

print(f"{message.topic} : {message.payload}")

Arguments

  • client - instance du client
  • userdata - données privées de l'utilisateur
  • message - instance de MQTTMessage
Analyse de données IoT avec Python

Rappel (callback)

import paho.mqtt.subscribe as subscribe


subscribe.callback(on_message, topics="datacamp/roomtemp", hostname="test.mosquitto.org")
Analyse de données IoT avec Python

Abonnement MQTT

import paho.mqtt.subscribe as subscribe

def on_message(client, userdata, message): print("{} : {}".format(message.topic, message.payload))
subscribe.callback(on_message, topics="datacamp/roomtemp", hostname="test.mosquitto.org")
datacamp/roomtemp : b'{"time": 1543344857, "hum": 34, "temp": 24}'
datacamp/roomtemp : b'{"time": 1543344858, "hum": 35, "temp": 23}'
datacamp/roomtemp : b'{"time": 1543344860, "hum": 36, "temp": 22}'
datacamp/roomtemp : b'{"time": 1543344946, "hum": 37, "temp": 22}'
datacamp/roomtemp : b'{"time": 1543345010, "hum": 36, "temp": 13}'
Analyse de données IoT avec Python

Passons à la pratique !

Analyse de données IoT avec Python

Preparing Video For Download...