yaptığımız iot uygulamalarını bir adım ileri taşımak ve standartlara uydurmak için cihazlar arasında kabul gören standartlardan bir tanesini kullanmakta fayda var.
bu konuda en büyük çalışmaları yapan ibm inde arkasında olduğu mqtt ve amqp, coap, lwm2m gibi bir kaç protokol daha mevcut.
konu hakkında detaylı bilgi edinilmek istenirse
OASIS Committee Categories: IoT/M2M
MQTT
siteleri incelenebilir. maalesef konu hakkında henüz çok fazla Türkçe doküman mevcut değil.
temel olarak yapılan uygulamalarda
– bilgilerin hızlı bir şekilde iletilebiliyor olması
– iletilen bilgilerin sorunsuz olarak iletiliyor olması
– iletimin güvenli bir şekilde olması
– iletimin performansının yüksek olması ve ölçeklendirilebilir olması
– basitleştirilmiş bir yönetim ve denetimin olması
– maliyetin düşük olması
– yazılım dili şartı olmaksızın geliştirilmeye açık olması
…
vb istenmektedir. bu istekleri karşılayacak bir veri iletim standartı geliştirilmesi zorunluluğundan dolayı mqtt ve benzeri protokoller ortaya çıkmıştır.
mqtt ile çalışmaya başlamadan önce bu kadar temel bilgi yeter.
mqtt de cihazlar doğrudan birbiri ile iletişim kurmak yerine broker olarak isimlendirilen bir sunucu ile irtibata geçer ve bu sunucu üzerinden iletim sağlarlar. bu sunucu ile iletim kuran cihazlar yaptığı işe göre publisher veya subscriber olarak isimlendirilirler. publisher veri sensörler gibi veri gönderen uç birimleri temsil ederken subscriber veri talebinde bulunan veya değer gönderen uç birimdir.
temel mantık bu şekildedir. işin mantığını pratik yaparak öğrenmeye devam edelim. mqtt standartı için yazılmış bir çok kütüphane vb mevcuttur. bunlardan kullanımı oldukça kolay olan mosquitto ile kod yazmadan bir kaç uygulama yapalım.
kullanacağımız yazılımları mosquitto adresinden edineceğiz.
ben test sırasında
gateway – sensor : raspberry pi – 192.168.2.37
broker – sunucu : ubuntu server – 192.168.126.128
istemci – kullanıcı : windows 7 – 192.168.2.23
şeklinde bir ağ kullanacağım.
gerekli yazılımları sırası ile kuralım…
fcicek@ubuntu:~$ sudo apt-get install mosquitto mosquitto-clients
ile ubuntu server için gerekli kurulu yapalım. eğer mosquitto repository niz içerisinde yok ise aşagıdaki şekilde ekleyebilirsiniz.
fcicek@ubuntu:~$ sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
fcicek@ubuntu:~$ sudo apt-get update
raspberry üzerinde kullandığımız raspbian da debian kökenli olduğu için ubuntuda olduğu gibi raspberry içinde gerekli adımları uygulayalım
pi@cicek ~ $ sudo apt-get install mosquitto mosquitto-clients
şimdi sıra windows için olan kuruluma geldi. şu anki en güncel sürüm olan mosquitto-1.4.2-install-win32.exe ı indirelim ve setup dosyasını çalıştıralım. kurulum sırasında aşagıdaki ekran görüntüsünde görüleceği üzere bağımlı olduğu bir kaç dosyalarıda bilgisayarımıza kurmamız gerekmektedir.
Win32 OpenSSL v1.0.2d Light ssl uygulamasını pcmize kuralım pthreadVC2.dll dll dosyasını da mosquitto kurduğumuz dizine ekleyelim.
C:\Program Files (x86)\mosquitto>dir *.exe
Directory of C:\Program Files (x86)\mosquitto
07.05.2015 16:25 120.832 mosquitto.exe
07.05.2015 16:24 13.824 mosquitto_passwd.exe
07.05.2015 16:24 30.208 mosquitto_pub.exe
07.05.2015 16:24 28.160 mosquitto_sub.exe
26.07.2015 01:27 62.913 Uninstall.exe
5 File(s) 255.937 bytes
0 Dir(s) 428.300.537.856 bytes free
gerekli kurulumları yaptıktan sonra her üç sistemimiz üzerinde mosquitto, mosquitto_pub ve mosquitto_sub olarak çalıştırılabilir üç dosyamız olacak. herşey tamam kod yazmadan mosquitto nın nasıl çalıştığını test edelim.
ubuntu üzerinden brokerimizin çalıştığından emin olalım.
fcicek@ubuntu:~$ ps aux | grep mosquitto
mosquit+ 4792 0.0 0.0 14912 964 ? Ss 03:15 0:05 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
raspberry üzerinde cicek isimli bir kanal oluşturarak “test_mesaji_raspberry” şeklinde bir mesaj gönderelim.
pi@cicek ~$ mosquitto_pub -h 192.168.126.128 -t cicek -m test_mesaji_raspberry
pi@cicek ~$ mosquitto_pub -h 192.168.126.128 -t cicek -m test_mesaji_raspberry_2
pi@cicek ~$ mosquitto_pub -h 192.168.126.128 -t cicek -m test_mesaji_raspberry_3
windows tarafından cicek kanalından gelen mesajları almak için
C:\Program Files (x86)\mosquitto>mosquitto_sub.exe -h 192.168.126.128 -t cicek
test_mesaji_raspberry
test_mesaji_raspberry_2
test_mesaji_raspberry_3
yukarıdaki komut takımını giriyoruz. artık raspberry tarafından girilen komut satırındaki mesajları windowsda görebiliyoruz…