Entwicklung von MQTT-SN Clients Guide

Einleitung

Die Entwicklung von MQTT-SN Clients Guide bietet einen Schritt für Schritt gestartete Anleitung für Entwicklung IoT-Geräte-Agenten, die MQTT-SN verwenden, veröffentlichen abonnierte Messaging-Protokolle (MQTfür Sensornetze) nach Oasis-Standard von MQTT-Technical Committee.

MQTT-SN ist eine Protokollversion, mit der Sie IoT-Sensor erstellen können Mittel für geringe energieverbrauchende IoT-Geräte. Das MQTT-SN Protokoll (SN MQTT für Sensor) kann sein Programmplanung über eingebettete Geräte in nicht TCP/IP-Netzwerke kommunizieren, wieZickbecher,Bluetooth Lautsprecher, z-Welle, oder jedes andere Medium einschließlich drahtgebundener und drahtloser Sensornetze. Dieses Protokoll ist nicht brauchen vernetzte Umgebung wie MQTT. Aber alle bidirektional & verlustreiche Netzwerkprotokolle unterstützen MQTT und MQTT-SN. MQTT SN Spezifikation ist verfügbar untermqt.org.

Erste Schritte

Machine-to-Machine, Machine-to-User, Machine-to-Mobile Kommunikation kann nicht passieren ohne mächtiger zentraler Server. MQTT Kantengeräte und Anwendungen kommunizieren über den MQTT Broker die als zentraler Server fungiert. Sie können herunterladenUnternehmendie laufen kann unter Windows und Linux jetzt und starten.


Vorteile gegenüber MQTT

Der Hauptvorteil der SN ist die Paketgrößenreduktion und verbindungslos, um sicherzustellen, dass die Transaktion nimmt weniger Energie. Die folgenden sind:Technische Daten In den Warenkorb MQTT-SN über MQTT.

  • Die WILL-Nachricht ist optional und kann als separates Paket gesendet werden. Der MQTT-SN hat geteilt die CONNECT-Nachricht in drei Nachrichten. Sie können einfach nur das Verbindungspaket alleine senden. wenn Sie WILL Topic and Message nicht einstellen.
  • Die langen Themanamen müssen nicht mit jeder Nachricht gesendet werden. Stattdessen kann das Thema ID verwendet werden in der Veröffentlichung. Dies reduziert die Paketgröße in größerem Maße.
  • Vordefinierte Topic IDs / Namen helfen Ihnen, alle Ihre Themen im Gateway zu definieren. Die Thema Diese Themen können direkt genutzt werden. In ähnlicher Weise kurze Themennamen, die weniger sind Artikel 2 Bytes können direkt ohne Thema ID verwendet werden.
  • Discovery ist einer der wichtigsten Vorteile von MQTT-SN. Die Kunden müssen nicht wissen, IP die Adresse oder den DNS-Namen des Gateways oder des Brokers zu starten. Die Werbung/Gateway Entdeckung wird helfen, es nahtlos zu erreichen.
  • Die Clean Session wird auf WILL-Details erweitert, in denen WILL-Details wie ein Abschriften des Kunden.
  • Die Sensoren können schlafen, nachdem sie das Gateway für eine bestimmte Zeit informiert haben. Die Gateway/Server die für den jeweiligen Client vorgesehenen Nachrichten zwischenspeichern und ! wenn der Klient aufwacht. Deshalb hat es eine geringe Verarbeitungsleistung, die es macht geeignet für batteriebetriebener Sensor.
  • MQTT-SN ist nicht abhängig von TCP/IP-Netzwerken zu bedienen und es ist über UDP. Das minimiert die Datentransfervolumen und die benötigte Leistung.
  • Im Gegensatz zu MQTT unterstützt MQTT-SN vier Arten von QoS (Servicequalität ), QoS 0,1,2,-1 oder 3 während MQTT QoS 0,1,2 unterstützt.
Datenstruktur

Feste Kopfzeile

  • Der erste Byte eines MQTT-SN Fixed Headers ist die Länge der Nachricht
  • Der zweite Byte ist der Nachrichtentyp. Die Länge wird von 0 Bytes betrachtet.

Variabler Header

ThemaIdType Sauberkeit wird Rest Qo DUP
0, 1 2. 3 ANHANG 5,6 7

Die DUP, Retain, WILL, CleanSession sind die gleichen wie MQTT.

Sie werden auf 0 oder eine nach Bedarf eingestellt.

Das 0 und 1’st Bit der Fahne wird verwendet, um die Thema id type.

  • Für ein normales Thema wird das 0, 1 Bit 00
  • Für ein vordefiniertes Thema id 0, 1 Bit wird 01
  • Für einen kurzen Themanamen 0, 1 Bit wird 10

Das 5, 6 Bit wird verwendet, um das QoS anzugeben.

  • Für QoS 0 – 5, 6 Bit muss 00 sein
  • Für QoS 1 – 5, 6 Bit muss 01 sein
  • Für QoS 2 -5, 6 Bit muss 10 sein
  • Für QoS -1 -5, 6 Bit muss 11 sein
Gateway Discovery

Ein neuer Client auf einem Netzwerk muss ein Searchgw-Paket senden, um die Adresse eines Gateway. Ein Client kann auch direkt anschließen, wenn er die Adresse eines MQTT-SN-Gateway kennt.

Struktur einer Suche GW-Paket

ANHANG Diese Nachricht ist drei Bytes lang. Der erste Byte ist der Länge. Die zweiter Byte ist der 0x01 Nachrichtentyp. Der dritte Byte ist der Radius der Sendung die auch auf dem zugrunde liegenden Netzwerk gesetzt werden.

2. Diese Nachricht muss in einem Netzwerk in einem Zeitintervall und es wird eine Antwort-Nachricht als GWINFO erhalten.

  • Die GWINFO-Nachricht wird anders sein, als wer die Nachricht gesendet hat.
  • Wenn es von einem Gateway gesendet wird, wird es 3 Bytes lang und wenn es von einem anderen gesendet wird SN_CLIENT it eine variable Länge mit der Adresse eines Gateways.
Sensoranschluss

Der Client kann in zwei Methoden verbunden werden.

ANHANG Verbindung ohne Willen - Die Antwort wird connack message

2. Verbindung mit Willen - Die Antwort wird ein Wille Thema sein Bitte.

INHALT
  • Es wird von einem Client gesendet, um eine Verbindung zum Gateway aufzubauen.
  • es hat die folgende Struktur

Länge MsgType (0x04) Flaggen Protokoll Id Dauer Kunden
0) 1 2. 3 4.5. 6-N

Will zum Thema

Länge MsgType (0x07) Flaggen Will zum Thema
0) 1 2. 3-N
Will Nachricht

Nach der erfolgreichen Einstellung eines Willensthemas sendet das Gateway eine Nachricht Anfrage und der Kunde muss senden Die Willensnachricht.

Länge Msgtype (0x09) Willmsg
0) 1 2-N
Publizieren

Es gibt vier Möglichkeiten, wie ein MQTT-SN-Paket veröffentlicht werden kann.

Mit registrierter Topic ID –Die Kunden müssen Registrieren Sie den Themanamen mit dem Gateway und starten Sie dann die Veröffentlichung mit dem empfangenen Thema Ausweis.

Mit freundlicher Genehmigung Themen –Die Kunden können direkt mit einem Themennamen veröffentlichen, wenn die Länge des Themennamens kleiner als 2 ist Bytes.

Vorname Themen und Themen - Ja.Die Gateway wird ein vorgegebenes Thema haben, dessen Thema-ID vom Client zum Veröffentlichen verwendet werden kann. Die vor Thema ID, bei der sowohl für Server als auch für Client die Thema-ID eines Themas bekannt ist nicht müssen sich registrieren

Das geht nicht. –Das ist ein Sonderangebot wenn der Client muss keine Verbindung zum Gateway erstellen, kann es einfach starten Veröffentlichungen Setzen der QoS-Flag -1 keine Verbindungseinrichtung oder Beendigung des Gateways ! eine separate MQTT-Verbindung zum Broker, um diese Art von Veröffentlichungen zu handhaben. In QoS -1 veröffentlichen die Client kann nur vordefiniertes Thema id oder kurz Thema Name verwenden, es gibt keine Verbindung so Registrierungsthema ist nicht möglich

Paketstruktur für das Register und das Verlagswesen sind wie folgt.

Register

Länge Msgtype(0x0A) Thema Msgid Über uns
0) 1 2,3 GHT oder mehr 4,5 GHT 5-N

Die Thema-ID muss bei der Registrierungsnachricht als 0 codiert werden gesandt die Client.

Der Client kann die Thema-ID von regack mit folgenden Paket Struktur

Verordnung

Länge Msgtype(0x0B) Thema Msgid Über uns
0) 1 2,3 GHT oder mehr 4,5 GHT 6

Der Client muss die entsprechende REGACK-Nachricht an die Register Paket mit Hilfe von Message-ID. Der Client muss den Rückgabecode von REGACK überprüfen und wenn seine 0 die Kunden kann das Thema id verwenden, sonst muss es das Registerpaket erneut geben.

Länge MsgType(0x0C) Flaggen Thema Msgid Daten
0) 1 2. 3,4, 5,6 7
Abonnieren / Abmelden

Ein Client kann das Thema id verwenden, um ein Thema zu abonnieren, wenn es zuvor in einem Thema. Es kann den Namen des Themas oder den kurzen Themanamen abonnieren. Es wird ein Suback erhalten Nachricht mit Thema id. Das Abmeldepaket ist das gleiche wie Abmelden. Die Paketstruktur von abonnieren und Abmelden ist unten angegeben

Struktur

Länge MsgType (Abonnent (0x12) / Abonnieren (0x14) Flaggen MsgId ThemaId oder Thema Name
0) 1 2. 3,4 5,6,5-N

Das Paket Abonnieren wird eine variable Länge haben, wenn es Abonniert Verwendung TopicName sonst wird es 7 Bytes sein.

Sensor Disconnect

Es gibt zwei Möglichkeiten, wie ein Client vom Gateway trennen kann.

Deconnect dauerhaft

Der Client muss ein Trennpaket senden, um zu trennen dauerhaft. Es wirkt wie MQTT.

Trennen mit Schlaf

Der Client sendet eine Trennnachricht mit Zeitdauer und gehen zu Schlaf für diese Zeitdauer wird das Gateway die Nachrichten für diesen Client speichern Zeit Zeitraum. Der Client muss eine Ping-Nachricht senden, um die gepufferte Nachricht zu erhalten und es wird empfangen Nachrichten aus dem Puffer veröffentlichen. Der Client erhält ein Ping bzw. wenn der Puffer leer. Die Client muss eine Ping vor der angegebenen Periode senden oder das Gateway wird als ein verloren Client.

Länge MsgType (0x18) Dauer(Optional)
0) 1 2-3
WILL Thema und Nachricht

Die MQTT-SN hat eine Bestimmung, das WILL-Thema und die Nachricht jederzeit zu aktualisieren. Das ist eine erweiterte Funktionalität über das MQTT-Nachrichtprotokoll.

ENTWICKLUNG

Der Client muss ein Trennpaket senden, um zu trennen dauerhaft. Es wirkt wie MQTT.

Trennen mit Schlaf

Der Client sendet eine Trennnachricht mit Zeitdauer und gehen zu Schlaf für diese Zeitdauer wird das Gateway die Nachrichten für diesen Client speichern Zeit Zeitraum. Der Client muss eine Ping-Nachricht senden, um die gepufferte Nachricht zu erhalten und es wird empfangen Nachrichten aus dem Puffer veröffentlichen. Der Client erhält ein Ping bzw. wenn der Puffer leer. Die Client muss eine Ping vor der angegebenen Periode senden oder das Gateway wird als ein verloren Client.

Länge MsgType(0x1A) Flaggen Will Topic
0) 1 2. 3-N

Die Flagge wird habenQoundZurück zur Übersicht.

Eine Antwortnachricht von Will Topic wird als Antwort in der ANHANG Struktur


Länge MsgType(willtopicresp (0x1B) / willmessageresp (0x1D)) Zurück zur Übersicht
0) 1 2.

Wenn der Return-Code ist anders als 0, muss es die Willtopicupd.

WILLMSGUPD

Länge MsgType(0x1C) WillMsg
0) 1 2-N
Verschiedenes

Der Client muss zusätzlich zu dem bestätigt es sendet.

ANHANG Paket anzeigen

2.SearchGW

3.Register

Werbepaket

Die Gateways im Netzwerk senden ein Werbepaket in einem Sicherheit Zeitraum. Der Client muss die Liste der aktiven Gateways im Netzwerk durch die beworbene Dauer.

Suche und Suche

Der Client muss auf eine Suchmaschinen-Nachricht reagieren, indem er sendet eine Gwinfo Nachricht. Es muss eine aktive Gateway-Adresse von seiner Gateway-Adressenliste senden.

Register

Wenn ein Client wieder angeschlossen ist, erhält er eine Registernachricht mit Thema Name und Thema ID für seine vorherigen Registrierungen und Abo muss es speichern die Name und IDs.

Mehr über unsere
Unternehmen MQTT Broker?