Pengantar Data Stream

Menganalisis Data IoT dengan Python

Matthias Voppichler

IT Developer

Apa itu Data Stream

  • Aliran data konstan
  • Contoh
    • Pesan Twitter
    • Artikel berita online
    • Streaming video
    • Data sensor (IoT)
    • Order pasar (keuangan)
Menganalisis Data IoT dengan Python

Apa itu Data Stream

  • Aliran data konstan
  • Contoh
    • Pesan Twitter
    • Artikel berita online
    • Streaming video
    • Data sensor (IoT)
    • Order pasar (keuangan)
Menganalisis Data IoT dengan Python

MQTT

  • Protokol pesan
  • Publish / subscribe
  • Jejak kecil

Server -> Bertindak sebagai Broker pesan

Klien:

  • Terhubung ke Broker
  • Menerbitkan data
  • Berlangganan topik

Message Queuing Telemetry Transport

Alur data MQTT - Dari produsen -> ke Broker -> ke konsumen

Menganalisis Data IoT dengan Python

Pustaka Python

Klien Python Eclipse Paho™ MQTT

# Import pustaka MQTT
import paho.mqtt

Info dan dokumentasi tersedia di GitHub https://github.com/eclipse/paho.mqtt.python

Menganalisis Data IoT dengan Python

Satu pesan

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

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

Keluaran:

paho/test/simple, {"time": 1549481572, "humidity": 77, "temp": 21}
Menganalisis Data IoT dengan Python

Callback

def on_message(client, userdata, message):

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

Argumen

  • client - instance klien
  • userdata - data pengguna privat
  • message - instance MQTTMessage
Menganalisis Data IoT dengan Python

Callback

import paho.mqtt.subscribe as subscribe


subscribe.callback(on_message, topics="datacamp/roomtemp", hostname="test.mosquitto.org")
Menganalisis Data IoT dengan Python

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}'
Menganalisis Data IoT dengan Python

Ayo berlatih!

Menganalisis Data IoT dengan Python

Preparing Video For Download...