Dünyanın İlk MQTT Destekli Akıllı Asistanı: CEYD-A
Sayın Muharrem Taç’ın hazırladığı bu videoda, Sonoff’a kendi MQTT sunucusuna bağlanan yazılımı göndererek CEYD-A’nın MQTT desteği ile çalışması sağlandı.
CEYD-A’ nın MQTT yeteneklerini kullanmak için komut ekleme menüsünden veya https://kodla.ceyd-a.com sayfasından tanımlayabiliriz. Alternatif olarak, kod yazmadan blok geliştirmek için https://tasarla.ceyd-a.com sayfasını da kullanabilirsiniz. Bu şekilde sürükle-bırak-yap-boz ile kod yazmadan kurgular oluşturabilirsiniz.
MQTTPUBLISH formatı
1 2 3 |
{!RET mqttpublish tcp://IP_ADRES:PORT,KONU,CİHAZ_KİMLİĞİ,YAYINLANACAK_İÇERİK!} |
Örnek:
1 2 3 4 5 6 |
SORU: ada fruit SABLON: {HER}bağlan{HER} CEVAP: {!RET mqttpublish tcp://iot.eclipse.org:1883,Deneme yazısı,1,1!} |
Kod yerine tasarım yapmak istiyorsanız, aşağıdaki tasarıma benzeyen bir komutu https://tasarla.ceyd-a.com sitesinden oluşturabilirsiniz. Üst bloktaki ilk gözde içinde cümlenizin içinde mutlaka geçecek olan ada fruit yazıyorsunuz ve ikinci göze cümlenizin şablonu olan HERHANGİ İFADE yayınlama örneği HERHANGİ İFADE belirtiyorsunuz. Alt blokta ise Ada Fruit yayınlama blokunu bir YAZ bloku içine yerleştiriyorsunuz.
Şablon konusuna açıklık getirmek gerekirse cümlemizin içinde zaten ada fruit geçeceğini belirttiğimiz için yayınlama örneğini de şablonda belirttik. Bu şekilde ada fruit yayınlama örneği, yayınlama örneği ada fruit, ada fruit için yayınlama örneği yap gibi değişik söylemler şablonumuza uygun olacak ve komut devreye girecektir.
CEYD-A’ nın 6.1.9.3 sürümü ile birlikte mqttpublishauth komutu devreye girmiştir. Önceki komuta ilaveten 2 adet yeni parametre vardır: kullanıcı adı ve şifre
MQTTPUBLISHAUTH formatı
1 2 3 |
{!RET mqttpublishauth tcp://IP_ADRES:PORT,KONU,CİHAZ_KİMLİĞİ,YAYINLANACAK_İÇERİK,KULLANICI,ŞİFRE!} |
Örnek:
1 2 3 4 |
{!SET result={!RET mqttpublishauth tcp://io.adafruit.com:1883,xxxxxx/feeds/feed1,deviceid,test içerik,xxxxxx,key!}!} {!IF $result==connected??AdaFruit IO hesabınıza bağlanıp test içerik yayınını gerçekleştirdim.::Ne yazıkki sorun oluştu.!} |
CEYD-A’ nın 6.1.9.5 sürümü ile birlikte mqttsubscribeauth komutu devreye girmiştir. Parametreleri mqttpublishauth ile aynıdır. Sadece sonuç değeri olarak connected yerine subscribe olduğu alandan dönen değeri cevap olarak vermektedir.
MQTTSUBSCRIBEAUTH formatı
1 2 3 |
{!RET mqttsubscribeauth tcp://IP_ADRES:PORT,KONU,CİHAZ_KİMLİĞİ,YAYINLANACAK_İÇERİK,KULLANICI,ŞİFRE!} |
Örnek:
1 2 3 4 |
{!SET result={!RET mqttsubscribeauth tcp://io.adafruit.com:1883,xxxxxx/feeds/feed_text,deviceid,test içerik,xxxxxx,key!}!} {!IF $gosterildi==??Cevap: {!GET $result!}{!SET $gosterildi=1!}::.!} |
Not: Kendi komutlarınızı http:/ceyd-a.net/komutekle sayfasından girip güncelleyebilirsiniz.
MQTT (Message Queuing Telemetry Transport), yayınlama ve abone olma mantığına dayanan telemetry mesajlaşma protokolüdür. Makineler arası haberleşmede kullanılmaktadır. Benzer protokollerden ayrılan en önemli özelliği ise hafif (lightweight) olması ve bu sayede bir çok platformda rahatlıkla kullanılabilmesidir.
Kaynak: www.iot.gen.tr/