Ana içeriğe atla

Mosquitto Ile Mqtt

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.
Paho-mqtt:
Paho mqtt Python programlama dili için Mosquitto tarafından oluşturulmuş kütüphanedir.
Paho kütüphanesini 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; 
Örnek:
Mqtt publisher ve subscribe örneği;
iot-dashboard/dinle.py
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

# 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.

Yorumlar

Bu blogdaki popüler yayınlar

Meşe Bilişim Software Testing Dersi

Manisa Celal Bayar Üniversitesi Bilgisayar Mühendisliği Bölümü ile bazı özel ve kamu kurumları ortaklığında gerçekleştirilen Software Testing Dersi dahilinde bugün Meşe Bilişim şirketinde şirket kurucusu Şahin Mersin ile ilk dersimizi gerçekleştirdik.

Üniversitenin Bilgisayar Mühendisliği bölümünde okuyan 3 veya 4'üncü sınıf öğrencileri tarafından tercih edilebilen Software Testing dersi intörn eğitim modelini temelinde barındıran bir ders ve bence öğrenciler için müthiş bir fırsat.

Manisa Teknokent içerisinde yer alan Meşe Bilişim şirketinde bir dönem süresince Software Testing dersini almaya devam edeceğiz. Şirket benimle birlikte 10 kişilik bir öğrenci kadrosuna bu dönem ev sahipliği yapacak.

Dersin ilk gününde Meşe Bilişim şirket kurucusu Şahin Mersin, biz öğrencilerine dönem süresince ders dahilinde yapacaklarımızdan bahsetti. Yaklaşık 5 farklı projeden söz eden Şahin Bey'in açık kaynaklı projelere katkıda bulunmak hedefi açıkcası beni etkiledi. Bu doğrultuda, ürettiğimiz…

Mqtt Nedir?

Message Queuing Telemetry Transport (MQTT) kelimelerinin baş harfleri ile tanıdığımız bu teknoloji mesajın karşı tarafa ulaştırılması için kullanılan haberleşme protokolüdür.  Haberleşme için mesaj yayınlayan, mesaja abone olan ve mesaj trafiğini kontrol eden yöneticiden oluşmaktadır. Mesaj trafiğini kontrol eden yöneticiye BROKER, mesaj yayınına PUBLISH ve aboneye SUBSCRIBE denir. Mesaj alışverişi publisher dan subscriber lara doğru yani yayıncılardan abonelere doğru olmaktadır. 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.   MQTT IBM de çalışan Dr Andy Stanford-Clark ve Arcom da çalışan Arlen Nipper (şu an Eurotech) tarafından 1999 yılında oluşturulmuştur…

Meşe Bilişim Logolar