İçindekiler:

Armtronix Kartlarında MQTT: 3 Adım
Armtronix Kartlarında MQTT: 3 Adım

Video: Armtronix Kartlarında MQTT: 3 Adım

Video: Armtronix Kartlarında MQTT: 3 Adım
Video: Home Automation System In Detail | Mechanically Yours | 2024, Aralık
Anonim
Armtronix Kartlarında MQTT
Armtronix Kartlarında MQTT

Bu talimatta size ilk olarak Linux (Debian veya Ubuntu) tabanlı bir sistemi nasıl kullanabileceğinizi ve üzerine Mosquitto (Mqtt Broker) kurabileceğinizi göstermek istiyoruz, ayrıca Mqtt istemcisini Telefonunuzda (Android)/ Linux Tabanlı nasıl kullanacağınızı göstermek istiyoruz. sistem, Mqtt aracılığıyla mesaj gönderme ve alma. Buna aşina olduktan sonra, kurulu bu Mqtt brokeri ile panomuzu nasıl yapılandırabileceğinizi ve bağlayabileceğinizi size göstermek istiyoruz. Ayrıca, Mqtt aracısına nasıl kimlik doğrulama ekleyebileceğinizi ve hata ayıklamak için bazı temel ipuçlarını ve püf noktalarını da göstermek istiyoruz. O halde başlayalım ………..

Adım 1: Mqtt Broker'ı Kurma:

Mqtt Broker'ı Yükleme
Mqtt Broker'ı Yükleme
Mqtt Broker'ı Yükleme
Mqtt Broker'ı Yükleme
Mqtt Broker'ı Yükleme
Mqtt Broker'ı Yükleme
Mqtt Broker'ı Yükleme
Mqtt Broker'ı Yükleme

Yükleyebileceğiniz birden çok Mqtt aracısı vardır. Bilinenlerden bazıları aşağıda belirtildiği gibidir. Bazıları bulut tabanlı hizmetlerdir.

  • HiveMQ
  • SivrisinekBulut
  • MQTT
  • Adafruit.io

Size Mosquitto'yu Linux tabanlı bir sisteme nasıl kuracağınızı göstereceğiz (Ubuntu 18.04). Bunu yapmak için önce Mosquitto'yu ubuntu kaynak listesine ekleyin. Mosquitto, Ubuntu depolarında mevcut olduğunda, onu apt-get ile kurabileceksiniz.

Sadece bir Terminal açın. Bir Terminal açmak için Ubuntu Masaüstünün Sol alt köşesine gidin, Uygulamayı göster'e tıklayın (Doted 3X3 grid). Bir Pencere açılacaktır. Orada Terminal'i ararsınız. Terminale tıklayın, aşağıdaki resimlerde gösterildiği gibi bir pencerenin açıldığını görebilmelisiniz.

  • Uygulamayı Göster (Resim 1).
  • Terminal Arayın (Resim 2).
  • Terminal Penceresi (Resim 3).

Terminali açtıktan sonra aşağıdaki komutları girin

sudo apt-add-deposu ppa:mosquitto-dev/mosquitto-ppa

sudo apt-get güncellemesi

sudo apt-get kurulum sivrisinek

Mqtt istemcisini de yükleyebilirsiniz. Bunu yapmak için komut olacak

sudo apt-get install sivrisinek istemcileri

Referans için bazı resimler

  • ppa ekleme (Resim 4).
  • Repo güncelleniyor (Resim 5).
  • Sivrisinek Kurulumu (Resim 6).
  • Mosquitto Client Kurulumu (Resim 7).

Adım 2: MQTT'yi (Sivrisinek) Test Etme

MQTT (Sivrisinek) Testi
MQTT (Sivrisinek) Testi
MQTT (Sivrisinek) Testi
MQTT (Sivrisinek) Testi
MQTT (Sivrisinek) Testi
MQTT (Sivrisinek) Testi

ubuntu (aynı sistem veya başka bir sistem) aracılığıyla mqtt'yi test etmek için daha önce sudo apt-get install mosquitto-clients komutuyla kurulmuş olan mqtt istemcisini kurmanız gerekir. Cep telefonu (android) kullanarak test etmek isterseniz, Play Store'dan MyMqtt uygulamasını yükleyebilirsiniz.

Mqtt, Konular adlı bir şey üzerinde çalışır. Kolay anlaşılması için bu konuları bilgisayarın sabit diskindeki bir klasör olarak düşünün. Bu bilgisayarı bir bilgisayar sunucusu olarak ele alalım (mqtt dünyasında bir Mqtt Broker'dır). Bu sunucuda bir klasöre sahip olduğumuzu düşünelim.

Klasör adı: /Folder_one/

Şimdi iki farklı sistemden (PC/Dizüstü) bu sunucuya dosya okumak, dosya göndermek/dökmek veya her ikisini birden yapmak için erişen iki kişiyi düşünelim.

İki kişiyi/sistemi System X, System Y olarak adlandıracağız (Bunlar Mqtt Dünyasındaki Mqtt İstemcileridir).

Şimdi diyelim ki System X bir dosyayı (dosya adı: sıcaklık) “/Folder_one/” klasörüne gönderir/döker, buna mqtt dünyasında bu yayınlama diyebiliriz (dosya yerine bir mesaj/yük göndeririz).

Şimdi, diyelim ki Sistem Y bu dosyayı veya herhangi bir yeni dosyayı almak/okumak veya bu klasörde güncelleme yapmak istiyor, ilk ihtiyacı olan klasör adını ve yolunu bilmek, ki bu bizim durumumuzda “/Folder_one/”. Şimdi bu klasöre gidecek ve o dosyayı okuyacak/alacak (dosya adı: sıcaklık). Yolu/Konuyu bilmek ve Mqtt dünyasındaki dosya/yeni dosyalardaki değişiklikleri kontrol etmek o konuya abone olmaktır.

Yukarıdaki örnek dikkate alındığında, System X, "/Folder_one" klasörüne yayın yapıyor ve System Y, "/Folder_one" klasörüne abone oluyor

Ayrıca System X'in “/Folder_one” klasörüne abone olabileceğini ve System Y'nin “/Folder_one” klasörüne de Yayınlayabileceğini unutmayın. Akıllıca olduğu gibi, Sunucu sistemi bile (The Mqtt Broker), şu anda yaptığımız gibi Mqtt istemcisini yükleyerek “/Folder_one” yayınlayabilir/abone olabilir. Hatırlanması gereken diğer şey, Mqtt Broker'ın IP adresini bilmeniz gereken bir konuyu yayınlamak veya abone olmaktır.

İlk önce, aracı kurumla aynı sistemde kurulu olan ubuntu istemcisi aracılığıyla test edeceğiz. Biri yayınlayacak diğeri abone olacak iki terminal penceresi açacağız. Örnek için /Folder_one konusunu konu olarak kullanacağız. Bir konuya pub/sub göndermeden önce ubuntu'nun IP adresini bulmanız gerekir. Bunu yapmak için ekranın sağ üst köşesine tıklayın, wifi ayarını seçin, oradan ubuntu sisteminin IP adresini (şu anda komisyoncu IP'si) bulabileceksiniz. Referans için paylaşılan ekran görüntüsü (Resim 8).

Veya aracının IP adresini bulmak için, terminalde aşağıdaki komutu kullanarak net araçları yükleyerek IP adresini bulabilirsiniz.

sudo apt net araçları yükleyin

Ağ araçlarının kurulumu (Resim 9). Bundan sonra sadece ipconfig komutunu yazın, mac ve IP adresiyle birlikte bir ağ arayüzü listesi alacaksınız.

sudo ipconfig

Sistemimin IP adresi 192.168.1.67 (Resim 10)

Yayımlamak

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m pub_to_folderone

Burada, mosquitto_pub komuttur, ardından ana bilgisayar/aracı IP adresi olan -h parametre tanımlayıcı öğesi (bizim durumumuzda 192.168.1.67), ardından yayıncıya konu adı olan -t (bizim durumumuzda /Folder_one), ardından -m bu, gönderilecek mesaj/yük anlamına gelir (Bizim durumumuzda pub_to_folderone).

Abone olmak için

mosquitto_sub -h 192.168.1.67 -t /Folder_one

Yayıncı tarafından gönderilen mesaj: pub_to_folderone

Yayın için örnek

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m “merhaba test mqtt”

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m “mqtt çalışıyor”

Konuya abone olurken alınan yanıt örneği

mosquitto_sub -h 192.168.1.67 -t /Folder_one

Yayıncı tarafından gönderilen mesaj:

  • pub_to_folderone
  • merhaba test mqtt
  • mqtt çalışıyor

Pub Sub iki ayrı terminal penceresinde yan yana (Resim 11)

Android'de Mqtt'yi test etme (mqtt'm)

Android telefonunuza play store'dan mymqtt uygulamasını yükleyin (Resim 12)

Uygulamayı açın ve sol üst köşeye tıklayın (Resim 13, Resim 14).

Ayarlar'a tıklayın ve aracı IP adresini girin, varsayılan olarak bağlantı noktası 1883 olacaktır. Şu anda kimliği doğrulanmış mqtt aracısı kullanmıyoruz, bu nedenle kullanıcı adı ve parola boş olacaktır. Sadece kaydedin ve uygulamanın sol üst köşesine tekrar tıklayın (< Ayarlar) çekmece yeniden açılacaktır (Resim 15).

Çekmecenin üstünde, size aracı IP adresini ve uygulamanın bağlı olduğu bağlantı noktasını gösterecektir (Resim 16).

Şimdi Abone Ol'a tıklayarak abone olmak istediğiniz konuyu ekleyin. Burada konuyu /Folder_one olarak ekleyeceğiz (Resim 17, Resim 18).

Bunu yaptıktan sonra ubuntu sisteminden terminal kullanarak konuya yayın yapacağız. Yayınlarken, bu mobil uygulamada yayınlanan yükü/mesajı almalısınız. Örneğin, “ARM -Automation Robotics & Mechatronics” olarak payload yayınlamak. Komut daha önce belirtildiği gibidir.

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m “ARM -Otomasyon Robotik ve Mekatronik”

ubuntu sisteminden yayınlama (Resim 19).

Kontrol panelinde yayınlanan mesaj alındı (Resim 20).

Şimdi android telefondan (My mqtt) yayınlayalım ve ubuntu sistemine abone olalım. Bu örnek için “/mymqtt_to_pub” konusunu kullanıyoruz.

Bunu yapmak için önce ubuntu sisteminizden bir terminal açın ve aşağıdaki komutu kullanarak “/mymqtt_to_pub” konusuna abone olun (Resim 21)

mosquitto_sub -h 192.168.1.67 -t /mymqtt_to_pub

Şimdi mymqtt uygulamasının çekmecesine gidin ve yayınla'ya tıklayın. Yayınlama konusunu ekleyin (Bizim durumumuzda “/mymqtt_to_pub”) ve “hi Ubuntu” göndereceğiz gibi bir mesaj gönderin, gönder düğmesine basın (Resim 22, Resim 23).

Mesaj, ubuntu sisteminin terminal penceresinde görünmelidir (Resim 24).

Hem ubuntu sisteminin hem de android telefonun aynı ağda olması veya 1883 numaralı bağlantı noktasının açık olması gerektiğini ve mqtt'nin çalışması için yönlendiricinizin/ağ geçidinizin IP adresini bilmeniz gerektiğini unutmayın. Eğer mqtt aracınıza kimlik doğrulama eklemek istiyorsanız, aşağıda belirtilen blog bağlantısını https://medium.com/@eranda/setting-up-authenticat takip ederek yapabilirsiniz… Bu blogun ikinci adımını takip edin. Aracımızın kimlik doğrulamasını etkinleştirdik ve panolarımız için kimliği doğrulanmış aracıyı kullanacağız.

Adım 3: Armtronix Board & Mqtt ile Çalışmak

Armtronix Board & Mqtt ile Çalışmak
Armtronix Board & Mqtt ile Çalışmak
Armtronix Board & Mqtt ile Çalışmak
Armtronix Board & Mqtt ile Çalışmak
Armtronix Board & Mqtt ile Çalışmak
Armtronix Board & Mqtt ile Çalışmak

Şu anda bu talimat için, sinüs dalgasını kesmek için Triyak kullanan ve ardından ampulü karartan veya fanın hızını kontrol eden Wifi Tek Dimmer Kartımızı kullanıyoruz. Ayrıca mqtt kimlik doğrulama türü ile bağladık.

Başlangıçta tahtayı yapılandırdık. Yapılandırma adımları aşağıda belirtildiği gibidir.

Kartı açın, bir Wifi Erişim Noktası barındırmaya başlayacaktır.

Bir android telefon veya dizüstü bilgisayar kullanarak bu AP'ye bağlanın (Resim 25).

Bu AP'ye bağlandıktan sonra, AP'ye bağlı sistemden/Telefondan bir tarayıcı (chrome/firefox) açarak 192.168.4.1 yazın. Veri bağlantınızı (3G/4G) kullanmadığınızdan emin olun.

IP yazıldığında, aşağıdakilerin girilmesi gereken bir web sayfası açılacaktır (Resim 26).

  • SSID: Wifi AP adı.
  • Şifre: SSID Şifresi.
  • IoT modu Mqtt veya Http (Mqtt Seçin).
  • Mqtt Broker IP (Bizim durumumuzda 192.168.1.67).
  • Mqtt kullanıcı adı ve şifresi, kimlik doğrulama tipini kullandığımız için Naren, xxxx kullandık
  • Mqtt yayın konusu: Bu, kurulun da hangi konuda yayın yaptığı olacaktır, /testpub kullandık.
  • Mqtt abone olma konusu: Bu, triyakı tetiklemek için komutların hangi konuyu dinleyeceği olacaktır, /testsub kullandık.
  • Cihaz adı: Kartı tetiklemek için alexa'ya çağırdığınız isimdir, biz corvi kullandık.

Ayrıntıları girdikten sonra Gönder düğmesine basın, bunu yaptığınızda Resim 27'de gösterildiği gibi bir ekran göreceksiniz, yönetim kurulu AP'yi barındırmayı bırakana kadar bir süre bekleyin.

Lütfen kartımızı Uart üzerinden Arduino IDE'nin seri monitörüne bağladığımızı unutmayın. Böylece sol tarafta Uart aracılığıyla yazdırdığı hata ayıklama mesajlarını göreceksiniz (bu sadece referansınız içindir).

Bu yapıldıktan sonra hata ayıklama ekranını görüntüleyebilirsiniz. Ayrıntıların çoğu orada görünecek. Bundan sonra, debug (seri) ekranında brokere başarıyla bağlanacaktır, bunu görebilirsiniz.

Kimlik doğrulama ile MQTT aracısına bağlandı. 1. konuya abone oldum.

Bunu yazdırdıktan sonra, artık abone olduğu konuyla ilgili mqtt aracılığıyla komutlar göndermeye başlayabilirsiniz, yani /testsub/

Bu pano komutları için:

  • R13_ON: Triyakı %100 olarak açmak için.
  • R13_OFF: Triyakı %0'a kapatmak için.
  • Dimmer:xx: Burada, xx karartma değeridir ve 0 ile 99 arasında değiştirilebilir.
  • Sıfırla: Kartın yapılandırmasını temizlemek için.
  • Durum: Panonun dimmer durumunu panonun yayınlanma konusuna yazdırın.

Bu komutu mqtt istemcisinin kurulu olduğu ubuntu tabanlı bir sistemden göndermek için aşağıda gösterildiği gibi yazmanız yeterlidir. Kimlik doğrulama nedeniyle buraya iki ek parametre eklenir - yani kullanıcı adı olan -u ve -P paroladır, lütfen bunların büyük/küçük harfe duyarlı olduğunu unutmayın.

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m R13_OFF

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m Dimmer:50

Not: 50 dimmer değeridir

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m Durum

En son durum için durum, bizim durumumuzda /testpub olan panonun yayın başlığına yazdırılır. Panomuzda cihazdaki herhangi bir değişiklik panonun yayın konusuna yazdırılır. Örneğin, Dimmer:50'yi panoya abone olunan konuda fiziksel olarak yürütmek yerine geçersek, pano, yayınlama konusundaki karartılmış seviyeyi belirten bir mesaj gönderecektir. Örnek aşağıda gösterilmiştir, Ubuntu sisteminizden panonun yayınlama konusuna abone olmak için aşağıdaki komutu girin

mosquitto_sub -h 192.168.1.67 -u Naren -P xxxx -t /testpub

aldığımız mesaj

DimmerIS50

aynısının birkaç ekran görüntüsü aşağıdadır (Resim 28, Resim 29)

Önerilen: