Skip to content

mqtt client pahonun python kütüphanesi kullanılarak cloudmqtt servisi üzerinde bir örnek

mqtt için her geçen yeni bir client, kütüphane yayınlanmaya devam ediyor. bunlardan en kullanışlarından bir tanesi kesinlikle paho .

sitesinde an itibariye mqtt için C/C++, Java, Javascript, Python, Go ve C# .NET destekleri olduğu görülmekte.

paho nun python kütüphaneleri kullanarak basit bir örnek yapalım. öncelikle gerekli kütüphaleri raspberry üzerine yükleyelim.

pi@cicek ~ $ sudo pip install paho-mqtt

eğer sisteminiz üzerinde pip kurulu değilse tabiki öncelikle pip kurulumunu yapmanız gerekmektedir.

pi@cicek ~ $ sudo apt-get install python-pip

gerekli kurulumları yaptıktan sonra kodumuzu yazarak gerekli testleri yapabiliriz. bu örnekte lokal bir broker kullanmak yerine cloudmqtt.com üzerinde yer alan servisi kullanalım. böylelikle uygulamalarımızı diğer sistemlere entegrasyonu konusunda ufak bir atmış oluruz. cloudmqtt üzerinde bir hesap oluşturak yeni bir servis oluşturalım.

cloudmqtt

yukarıdaki gibi bize kullanıcı adı şifre v.b. verecektir. sitesinde yer alan şablona uygun olarak test kodumuzu yazalım.

mport mosquitto, os, urlparse
import paho.mqtt.client as paho

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_subscribe(mosq, obj, mid, granted_qos):
    print("Subscribed: " + str(mid) + " " + str(granted_qos))

def on_log(mosq, obj, level, string):
    print(string)

mqtt_pahoclient = paho.Client()
mqtt_pahoclient.on_message = on_message
mqtt_pahoclient.on_connect = on_connect
mqtt_pahoclient.on_publish = on_publish
mqtt_pahoclient.on_subscribe = on_subscribe

mqtt_pahoclient.on_log = on_log

url_str = os.environ.get('CLOUDMQTT_URL', 'mqtt://iskarfwb:tRi1l3nkuCCa@m20.cloudmqtt.com:11440')
#mqtt://USER:PASSWORD@host:port
url = urlparse.urlparse(url_str)

mqtt_pahoclient.username_pw_set(url.username, url.password)
mqtt_pahoclient.connect(url.hostname, url.port)

mqtt_pahoclient.subscribe("hello/world", 0)

mqtt_pahoclient.publish("hello/world", "my message")

rc = 0
while rc == 0:
    rc = mqtt_pahoclient.loop()
print("rc: " + str(rc))

dosyamızı cloudmqtt_test.py olarak kaydedelim. site üzerinden websocket kısmını açalım ve

pi@cicek ~ $ python cloudmqtt_test.py 

kodumuzu çalıştıralım. websocket arayüzünde

cloudmqtt2

yukarıdaki gibi raspberrymiz üzerinden gelen mesajlarımızı görebileceğiz.

Back To Top