MQTT



Açıklama

Bu Bağlayıcı bir Arduino çiziminde MQTT kullanarak iletişim kurmaya izin verir. MQTT bağlayıcısını kullanmak için izlemeniz gereken adımların altında:

  • Kabuk bağlayıcısını kurun;
  • konektörü etkinleştirin;
  • basit bir eskiz yaz;
  • taslağı yükleyin ve keyfini çıkarın.

Kurulum konektörü

MQTT Bağlayıcı yapılandırma dosyasını aşağıdaki yolda bulabilirsiniz: /usr/lib/python2.7/ciao/connectors/mqtt/mqtt.json.conf

{
"name" : "mqtt" ,
"description" : "Ciao Core için MQTT (v3.1) konektörü" ,
"sürüm" : "0.0.1" ,
"ciao" : {
"host" : "127.0.0.1" ,
"bağlantı noktası" : 8900
} ,
"params" : {
"host" : "YOUR_MQTT_IP_OR_HOSTNAME" ,
"bağlantı noktası" : 1883 ,
"kullanıcı adı" : "USERNAME_IF_REQUIRED" ,
"password" : "PASSWORD_IF_REQUIRED" ,
"clean_session" : doğru ,
"qos" : 2 ,
"Subscribed_topic" : [ "TOPIC_TO_SUBSCRIBE" ] ,
"client_id" : "" ,
"lwt_topic" : "" ,
"lwt_message" : ""
}
}

Başlangıçtaki parametreler dahili kullanım içindir, ne yaptığınızı tam olarak bilmiyorsanız bunları (ad, açıklama, sürüm, ciao) düzenlemeyin.

Yapılandırılabilir kısım, "params" tuşu ile tanımlanan kısımdır:

  • host (gerekli): kullanmak istediğiniz MQTT sunucusunun IP'si veya host adı (bir dize olmalıdır)
  • port (zorunlu): MQTT sunucunuzun dinlediği portu belirtir (bir tam sayı olmalıdır)
  • kullanıcı adı ve şifre: mesaj panosunda kullanılacak kullanıcı adını ve şifresini girin (dize olmalıdır)
  • clean_session: (boolean), bekleyen iletilerin bir önceki oturuma göre silinip silinmeyeceğini belirtir. Varsayılan ayar DOĞRU olarak ayarlanmıştır.
  • qos: (integer) varsayılan bu değer 2 olarak ayarlanır, düşük değerler verimliliği artırır ancak gecikmeyi artırır.
  • Subscribed_topic (zorunlu): MQTT aracılığıyla yürütmesi gereken konuyu belirtir.
  • client_id (zorunlu): bir kullanıcı adı belirtir, tek odaklı olmalıdır.
  • lwt_topic: (son vasiyetname konusu), bağlantınız kesilirse mesaj yazılacağı bir konuyu belirtir.
  • lwt_message: (son vasiyetname mesajı): bağlantınız kesilirse yazılacağı mesajı belirtir.

Bağlayıcıyı etkinleştir

Her Ciao bağlayıcısında Ciao Core için bir yapılandırma dosyası bulunmalıdır; bağlayıcıyı etkinleştirmek için bu basit dosya zorunludur.

MQTT bağlayıcısını etkinleştirmek için lütfen dosyayı aşağıdaki yolda düzenleyin: /usr/lib/python2.7/ciao/conf/mqtt.ciao.json.conf

{
"name" : "mqtt" ,
"etkin" : doğru ,
"type" : "yönetilen" ,
[ ... ]
}

Etkinleştirilen anahtar true (boole değeri) olarak ayarlanmalıdır.

Bu, MQTT bağlayıcısını etkinleştirmek için düzenlemeniz gereken tek parametredir. Bittiğinde, LininoOS'unuz Ciao Core ve MQTT konnektörü kullanacak şekilde hazır olacak ve yapılandırılacaktır.

Misal

#include <Ciao.h>

#define LED 13
String TOPIC = "topic_subscribed";

void setup() {
  pinMode(LED, OUTPUT);
  Ciao.begin();
}

void loop() {

  CiaoData data = Ciao.read("mqtt");

  if (!data.isEmpty() && !data.isError()) {

    String id = data.get(0);
    String sender = data.get(1);
    String message = data.get(2);

    message.toLowerCase();

    if (message == "ciao" )
      Ciao.write("mqtt", TOPIC, "Hello, i'm Arduino :-) ");
    else if ( message == "led on") {
      digitalWrite(LED, HIGH);
      Ciao.write("mqtt", TOPIC, "LED ON");
    }
    else if ( message == "led off") {
      digitalWrite(LED, LOW);
      Ciao.write("mqtt", TOPIC, "LED OFF");
    }
    else
      Ciao.write("mqtt", TOPIC, "Sorry i don't understand :-( ");
  }
}