Wprowadzenie do strumieni danych

Analiza danych IoT w Pythonie

Matthias Voppichler

IT Developer

Czym jest strumień danych

  • Ciągły strumień danych
  • Przykłady
    • Wiadomości na Twitterze
    • Artykuły z serwisów informacyjnych
    • Strumienie wideo
    • Dane z czujników (IoT)
    • Zlecenia rynkowe (finanse)
Analiza danych IoT w Pythonie

Czym jest strumień danych

  • Ciągły strumień danych
  • Przykłady
    • Wiadomości na Twitterze
    • Artykuły z serwisów informacyjnych
    • Strumienie wideo
    • Dane z czujników (IoT)
    • Zlecenia rynkowe (finanse)
Analiza danych IoT w Pythonie

MQTT

  • Protokół komunikatów
  • Publikuj / subskrybuj
  • Małe wymagania zasobowe

Serwer -> pełni rolę brokera komunikatów

Klient:

  • Łączy się z brokerem
  • Publikuje dane
  • Subskrybuje tematy

Message Queuing Telemetry Transport

Przepływ danych MQTT – od producenta przez brokera do konsumentów

Analiza danych IoT w Pythonie

Biblioteka Python

Eclipse Paho™ MQTT Python Client

# Import MQTT library
import paho.mqtt

Więcej informacji i dokumentacja dostępne na GitHub https://github.com/eclipse/paho.mqtt.python

Analiza danych IoT w Pythonie

Pojedyncza wiadomość

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

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

Wyjście:

paho/test/simple, {"time": 1549481572, "humidity": 77, "temp": 21}
Analiza danych IoT w Pythonie

Callback

def on_message(client, userdata, message):

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

Argumenty

  • client - instancja klienta
  • userdata - prywatne dane użytkownika
  • message - instancja MQTTMessage
Analiza danych IoT w Pythonie

Callback

import paho.mqtt.subscribe as subscribe


subscribe.callback(on_message, topics="datacamp/roomtemp", hostname="test.mosquitto.org")
Analiza danych IoT w Pythonie

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}'
Analiza danych IoT w Pythonie

Czas na ćwiczenia!

Analiza danych IoT w Pythonie

Preparing Video For Download...