MQTT Mosquitto Kurulumu

iotmqtt
2 min readDec 29, 2016

--

Mosquitto (open source) açık kaynak MQTT Broker yazılımıdır.

Eclipse tarafından EPL/EDL lisansı ile geliştirilmektedir. MQTT de asenkron haberleşme protokolü kullanılmaktadır. Mesaj yayıncıları ve mesaj alıcılar arasında eşzamansız olarak veri taşınmaktadır. Diğer haberleşme yapılarına göre basit oluşu ve minimum kaynak tüketmesi sebebiyle “machine-to-machine” (M2M) makineden makineye veri iletiminde ve (IOT) “Internet of Things” İnternete bağlı nesnelerin mesajlaşmasında tercih edilmektedir. Daha fazla bilgi için iot.eclipse.org adresine bakılmalıdır.

Kurulum:

Mosquitto kurulumu için kaynak kod veya kullanılan işletim sistemi için paket dosyası kullanılabilir.

Kaynak koddan kurulum için;
Github üzerinden
Diğer dosyalar için
sayfaları incelenmelidir.

Paho-mqtt:

Paho mqtt Python programlama dili için Mosquitto tarafından oluşturulmuş kütüphanedir. Paho yu pip ile kurmak için:

pip install paho-mqtt

veya

virtualenv paho-mqtt
source paho-mqtt/bin/activate
pip install paho-mqtt

kaynak koddan kurulum için;

git clone https://github.com/eclipse/paho.mqtt.python
cd paho.mqtt.python
python setup.py install

Örnek:

Mqtt publisher ve subscribe örneği;

iot-dashboard/dinle.py

Github:

import paho.mqtt.client as mqtt

count=0

# Define Variables

# MQTT_HOST = “iot.eclipse.org”

MQTT_HOST = “localhost”

MQTT_PORT = 1883

MQTT_KEEPALIVE_INTERVAL = 45

MQTT_TOPIC = “/45/sahin/”

MQTT_MSG = “”

# Define on connect event function

# We shall subscribe to our Topic in this function

def on_connect(mosq, obj, rc):

mqttc.subscribe(MQTT_TOPIC, 0)

# Define on_message event function.

# This function will be invoked every time,

# a new message arrives for the subscribed topic

def on_message(mosq, obj, msg):

global count

print count

count += 1

print “Topic: “ + str(msg.topic)

print “QoS: “ + str(msg.qos)

print “Payload: “ + str(msg.payload)

print “ — — — — — — — — — “

def on_subscribe(mosq, obj, mid, granted_qos):

print(“Subscribed to Topic: “ +

MQTT_MSG + “ with QoS: “ + str(granted_qos))

def on_log(mqttc, obj, level, string):

print(string)

# Initiate MQTT Client

mqttc = mqtt.Client()

# Assign event callbacks

mqttc.on_message = on_message

mqttc.on_connect = on_connect

mqttc.on_subscribe = on_subscribe

# Connect with MQTT Broker

mqttc.on_log = on_log

mqttc.username_pw_set(username=”mese”, password=”mese”)

mqttc.connect(MQTT_HOST, MQTT_PORT, MQTT_KEEPALIVE_INTERVAL)

# Continue monitoring the incoming messages for subscribed topic

mqttc.loop_forever()

iot-dashboard/gonder.py
Github:

# Import package

import paho.mqtt.client as mqtt

import time

# Define Variables

# MQTT_HOST = “iot.eclipse.org”

MQTT_HOST = “localhost”

MQTT_PORT = 1883

MQTT_KEEPALIVE_INTERVAL = 45

MQTT_TOPIC = “/45/sahin/”

MQTT_MSG = “/gonder/kalorifer/33/”

def on_connect(client, userdata, flags, rc):

print(“Connected flags “,str(flags),”result code “,str(rc))

print(userdata)

print(“Baglanti saglandi…”)

# Define on_publish event function

def on_publish(client, userdata, mid):

print(userdata)

print “Mesaj gonderildi…”

def on_log(mqttc, obj, level, string):

print(string)

# Initiate MQTT Client

mqttc = mqtt.Client()

# Register publish callback function

mqttc.on_publish = on_publish

# Connect with MQTT Broker

mqttc.on_log = on_log

mqttc.username_pw_set(username=”mese”, password=”mese”)

mqttc.connect(MQTT_HOST, MQTT_PORT, MQTT_KEEPALIVE_INTERVAL)

while True:

# Publish message to MQTT Broker

mqttc.publish(MQTT_TOPIC, MQTT_MSG)

# mqttc.publish(MQTT_TOPIC,MQTT_MSG, qos=2) # mesaj alma protokolu

time.sleep(3)

# Disconnect from MQTT_Broker

mqttc.disconnect()

MQTT ve IOT projeleri geliştiren Meşe bilişim IOT makaleleri ile yayınlarına devam edecek. İyi çalışmalar.

Kaynak : http://mesebilisim.com/

--

--

iotmqtt

IoT, Endüstriyel IoT ve MQTT ile projeler geliştiriyoruz.