Úvod do datových proudů

Analýza dat z IoT v Pythonu

Matthias Voppichler

IT Developer

Co je datový proud

  • Nepřetržitý proud dat
  • Příklady
    • Zprávy na Twitteru
    • Online zpravodajské články
    • Videostreamy
    • Data ze senzorů (IoT)
    • Tržní příkazy (finance)
Analýza dat z IoT v Pythonu

Co je datový proud

  • Nepřetržitý proud dat
  • Příklady
    • Zprávy na Twitteru
    • Online zpravodajské články
    • Videostreamy
    • Data ze senzorů (IoT)
    • Tržní příkazy (finance)
Analýza dat z IoT v Pythonu

MQTT

  • Protokol pro zasílání zpráv
  • Publikování / odběr
  • Malá paměťová náročnost

Server -> funguje jako zprostředkovatel zpráv

Klient:

  • Připojuje se k brokeru
  • Publikuje data
  • Přihlašuje se k odběru témat

Message Queuing Telemetry Transport

Tok dat MQTT – od producenta přes broker ke spotřebitelům

Analýza dat z IoT v Pythonu

Knihovna pro Python

Eclipse Paho™ MQTT Python Client

# Import MQTT library
import paho.mqtt

Další informace a dokumentace jsou dostupné na GitHubu https://github.com/eclipse/paho.mqtt.python

Analýza dat z IoT v Pythonu

Jedna zpráva

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

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

Výstup:

paho/test/simple, {"time": 1549481572, "humidity": 77, "temp": 21}
Analýza dat z IoT v Pythonu

Callback

def on_message(client, userdata, message):

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

Argumenty

  • client - instance klienta
  • userdata - soukromá uživatelská data
  • message - instance třídy MQTTMessage
Analýza dat z IoT v Pythonu

Callback

import paho.mqtt.subscribe as subscribe


subscribe.callback(on_message, topics="datacamp/roomtemp", hostname="test.mosquitto.org")
Analýza dat z IoT v Pythonu

MQTT Subscribe

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}'
Analýza dat z IoT v Pythonu

Pojďme cvičit!

Analýza dat z IoT v Pythonu

Preparing Video For Download...