MQTT Configuration and Applications

From Mikrodev Documentation
Jump to navigation Jump to search

1. MQTT CONFIG BLOĞU[edit | edit source]

MQTT ayarlarını yapılandırmak için öncelikle projenize Mqtt Config bloğunu eklemeniz gerekir.

Mqtt Config Bloğu


Pin Açıklamaları[edit | edit source]

I1: Tcp soket bloğu bağlantısı için kullanılır. Mqtt Config bloğu Tcp soket bloğu olmadan kullanılamaz.


TCP Soket Bloğu Bağlantısı

MQTT Configuration and UBIDOTS Application2.png


TCP Soket bloğunun çıkışı Mqtt Config bloğunun I1 girişine bağlanır. TCP Soket bloğunun özel ayarları mqtt bağlantısı için şu şekilde yapılmalıdır;

  •       Soket tipi olarak TCP Client seçilmeli,
  •       Server IP kısmına bağlanılacak mqtt server IP’si girilmeli,
  •       Server Port Kısmına mqtt server port bilgisi girilmeli,
  •       Medya tipi ise kullanılan mikrodev cihazın özelliğine göre Ethernet, GSM veya WI-FI seçilebilir.
IP: 192.168.2.200, Port:1883 olan Mqtt Server için Ethernet bağlantısıyla TCP Soketi özel ayarları

I2: Periyodik data transferi yapılmak istenildiğinde, bu girişten mqtt config bloğuna tetik verilmelidir. Eğer bu giriş boş bırakılırsa veriler belirlenen diğer koşullara göre iletilir.

#Mqtt0: Q1 çıkışıdır. Bu çıkıştan gelen bilgiler şu şekildedir;

  •        0: TCP_DISCONNECTED;
  •       1: TCP_CONNECTING,
  •        2: MQTT_CONNECTING,
  •        3: MQTT_CONNECTED.

Q2: Q1 çıkışından gelen bilgilere göre, Q2 çıkışından gelen bilgiler şu anlama gelir; 

  •         0: E_MQTT_SEND_CONNPACK,
  •         1: E_MQTT_STATE_IDLE,
  •         2: E_MQTT_STATE_SUBSCRIBING
  •         3: E_MQTT_STATE_PUBLISHING

Q3: Bu çıkıştan Data Publish için Timeout bilgisi okunur.

Blok Özel Ayarları[edit | edit source]

Mqtt Config bloğuna çift tıklanara özel ayarlar penceresi açılır. Burdan Bağlanılacak mqtt server için Cliend id, Username, Password gibi değişkenler girilebilir. Ayrıca Keep Alive süresi (saniye cinsinden) ve Clean Session da burdan ayarlanır. Bu ekrandaki seçeneklerden Use Device Serial as UserName seçilirse, cihazın seri numarası Username olarak tanımlanmış olur.

Mqtt Config Bloğu Özel Ayarları

2. MQTT TABLOSU AYARLARI[edit | edit source]

Mqtt Tablosu

Topics to Publish[edit | edit source]

Bu tabloda verileri brokera publish etmek için Publish topic girilir. Tabloda Add Topic butonuna basılarak çıkan ekrandan topic name girilir. Qos, Retain ve payload ayarları da bu sayfadan yapılır.

Topic Tanımlanan Ekran

Publish Blocs For Topic[edit | edit source]

Bu toplada ilgili Topic için Publish yapılacak bloklar seçilir. Publish to topic tablosunda topic tıklandıktan sonra, Add Entry butonu aktif olur bu butona basılarak projede publish edilmek istenen blok seçilir. Gelen ekrandan Verinin nasıl iletileceği de seçilebilir. Seçilen bloğun hat etiketi ile publish edilmesi isteniyorsa, bloğunun özel ayarlarından Mqtt Format kısmından view and set seçilmelidir.

MQTT Configuration and UBIDOTS Application9.png

Bu ekranda, Send On Change seçimi yapılır. Change value değerin ne kadar değiştiğinde gönderilmesi isteniyorsa o değerin girilmesi içindir. Örneğin 5 girilirse değer 5 birim değişince veri gönderilir. 0 yazılırsa her değişimde veri iletilir.

MQTT Configuration and UBIDOTS Application10.png

Blok özel ayarları, burda eğer hat etiketi ile değer gönderilmek isteniyorsa view and set seçilir.

Örnek Konfigürasyon

Topics To Subscribe[edit | edit source]

Bu tabloda brokerdan cihaza veri gönderilmek için ilgili subscribe topic girilir. Add Topic butonuyla gelen ekrandan topic name, Qos ve Parse Format ayarlanır.

Topic to Subscribe Ekranı


Subscribed Block values for Topic[edit | edit source]

Bu ekrandan subscribe topic için ilişkilendirilecek bloklar eklenir. Hat etiketlerini kullanmak için yine ilgili bloğun özel ayarlarından mqtt formatı view and set olacak şekilde seçilmelidir.

MQTT Configuration and UBIDOTS Application13.png

Bütün ayarlar tanımladıktan sonra proje cihaza gönderilebilir. Bağlantı kontrolü için Mqtt Config bloğunun Q1 çıkışı gözlemlenebilir. Ya da mqtt config bloğuna bağlı olan TCP soket bloğuna, mikroterminal programından AT+SOCKET=<TCP bloğu blok numarası>,? Sorgusu gönderilerek Mqtt server bağlantısı kontrol edilebilir. Yine mikroterminal programından AT+PROTOCOLMAP=? Sorgusu gönderilerek, cihaza gönderilen projedeki topicler ve bloklar kontrol edilebilir.

ÖZEL UYGULAMALAR[edit | edit source]

UBIDOTS[edit | edit source]

Mikrodev PLC  ubidots mqtt ile kullanılmak istenildiğinde, yukarıda anlatılan ayarlara ilaveten şu adımlar izlenmelidir;

1.      Mqtt Config bloğu özel ayarlarından Username kısmına Ubidots da oluşturulmuş hesabın Access Key  girilmelidir.

2.      Publish Topic: /v1.6/devices/<Device Name> olarak girilir. İlişkilendirilecek bloklar için ubidots hesabında değişken tanımlamaya gerek yoktur. İlk Gönderilen data ile değişkenler Ubidots tarafında otomatik oluşturulur. Veri blok numarasıyla veya hat etiketiyle Ubidots serverinde okunur.

3.      Subscribe Topic: /v1.6/devices/<Device Name>/<Value Name>  olarak girilir. Her subscribe edilecek veri için ayrı ayrı bağlık tanımlanması gerekir. Veriler Ubidots ortamında tanımlanmalıdır. Eğer Hat etiketi kullanılacaksa Ubidots da oluşturulan değişken hat etiketiyle aynı isimde olmalıdır, eğer hat etiketi kullanılmadan sadece blok numarası ile iletim yapılacaksa blok numarası ile aynı isimli değişken ubidots ortamında tanımlanmalıdır.

Antares.id[edit | edit source]

Antares.id mqtt server için, kullanıcı hesabı oluşturulduktan sonra şu adımlar izlenir;

1.      Mqtt Config bloğu özel ayarlarından Username kısmına Antares.id de oluşturulmuş hesabın Access Key girilmelidir.

2.      Publish Topic: /<Project Name>/<Device Name> olarak girilir.

3.      Subscribe Topic: /oneM2M/resp/antares-cse/<Antares.id Key>/json olarak tanımlanır.

Diğer Kaynaklar İçin;[edit | edit source]

https://wiki.mikrodev.com/wiki/MQTT_Communication

https://mikrodev.miraheze.org/wiki/Main_Page

Adreslerini kullanabilirsiniz.