SQMTT aracılığıyla iletişim | Haberler Online

semaver

New member
Son bölümde, genellikle bir Arduino'nun hem teknik detaylar hem de programlama açısından Ethernet-Chief aracılığıyla iletişimini inceledik. Sistemle ilgili iletişim protokolleri sadece Nesnelerin İnterneti için uygundur, bu nedenle bu sonuç MQTT uygulama ile ilgili protokolü inceler.



Sistem ile uygulama seviyesi arasındaki çeviri için programlama çabalarının çoğu, sistemle ilgili protokollerle çok ileri gitmeyelim. Neyse ki, uygulama ile ilgili çok sayıda alternatif vardır. Bunlardan biri SQMTT.

SQMTT bir zamanlar telemetri SQM taşınmasını temsil etti ve bugün standart bir vaha veya ISO tanımlıyor (ISO/IEC PRF 20922). Arkasında, kullanıcıların müşteriler aracılığıyla konular belirleyebilecekleri hafif bir kamu/geçiş-disction yayını var ( Yayıncılar) Mesajlar ve diğer müşteriler (rolünde Abone) Mesajları kaldırın. Bir konu, herkes yönetim kurulu hakkında bilgi yayınlamak isteyenlerin yanı sıra mesajları okumak isteyenler için kayıt yaptırması gereken hafif envanter numarasına sahip siyah bir kart olarak yorumlanabilir.





Hive OMQ.com



MQTT Yayın/Kayıt Modelini takip ediyor


(Resim: Hive cmmq.com)



Müşterilerin her iki rolü de olabilir. MQTT, haberlerin türü ve içeriği ile ilgilenmez. Bu uygulamalara bırakılmıştır.

SQMTT'nin merkezi bileşeni, içinde yer alan mesajlar da dahil olmak üzere konuları yöneten ve konuya erişimi düzenleyen çok sayıda SQM komisyoncusudur. Veri güvenliği için karşılık gelen mekanizmalar mevcuttur. Bu, hizmetin kalitesi (QoS) için de geçerlidir.

QOS, haberlerin transferinin anlambilimini belirtir.

  • En düşük seviye 0 prensip olarak Ateş-Semantics. Dolayısıyla, mesajın hiç geleceğine dair bir garanti yoktur.
  • Qos 1 seviyesinde, mesajın en az bir kez konuların kuyruğunda bitmesini sağlar (Bir kez-Semantics).
  • Maksimum Seviye 2'de, broker ayrıca Kesinlikle: Yani mesaj tam olarak bir kez, artık sık ve daha az değil.


Kullanılan güvenlik protokollerine bağlı olarak, bir MQTT komisyoncusu birkaç erişim kapısı sunar. Kesinlikle garantili olmayan erişim genellikle Porta 1883 aracılığıyla gerçekleşir.





SQMTT ile Ethernet Kalkanı aracılığıyla iletişim



Bluemix IBM ortamında SQMTT brokeri ile etkileşim



Bir MQTT komisyoncusuna her bağlantı bir oturumun bir parçası olarak yapılır. Bağlantı hataları internette nadir olmadığından, SQMTT brokerleri müşterilerin durumunu kalıcı bir şekilde garanti edebilir ve gerekirse müşteriler orijinal oturumlarına devam etmek istedikleri anda bunları geri yükleyebilir. MQTT ayrıca her seferinde yeni bir oturumla başlamanıza izin verir.

Müşteriler ayrıca son vasiyetlerini de belirtebilirler. Bu, söz konusu müşteri ile bağlantı beklenmedik bir şekilde kesintiye uğradığında komisyoncunun bir konuya gönderdiği bir mesajdır.

Ayrıca var Mesajlar (Haberleri tuttu). Bunlar bir dizi Fermo ile mesajlar. Konuların kayıtlarına yeni bir katılımcı önce bu bayrakla konuya gelen son mesajı alacaksa. Bu, söz konusu konuyu içeren Joker karakterleri olan abonelikler için de geçerlidir.

MQTT-SN ile TCP/IP olmadan Zigbee protokolü için bir SQMTT çözümü vardır. MQTT'nin HTML5 standardının bir bileşeni olan Webockels aracılığıyla uygulanması da spesifikin bir parçasıdır. Bu, tarayıcı ve web sunucusu aracılığıyla metrekare kullanımını sağlar.

Basitlik nedeniyle, aşağıdaki örnekler için garantili olmayan haber kaçakçılığını kullanıyorum. Aksi takdirde, ormanı ağaçlar için daha fazla tanırlardı. Ancak pratikte bu iyi bir fikir olmaz.

Büyüleyici sivrisinek


SQMTT'yi kullanmak için, yayıncıların haberlerini kabul eden ve bunları konuyla ilgili olarak muhabirlere veya abonelere ileten bir broker gereklidir. Broker SQMTT olmadan mesaj gönderemeyiz veya alamayız.

Haber forumlarına gelince, SO -CONDLED konuları, sonunda kuyruklar gibi net bir adla davranan bir SQMTT brokerine ayarlanabilir. Bir mesaj aldığınızda ve gönderdiğinizde, istenen konu her zaman belirtilmelidir. Konular hiyerarşik olarak yapılandırılabilir. Bir örnek:

Lieschen.Müller/Wohnung/Wohnzimmer/LEDStreifen42

Lieschen Müller'in dairesinde bir LED şerit.

Müşteriler ayrıca neşeli karakterlerle istenen konulara kaydolabilir. Örneğin aşağıdakiler gibi ifadelerle:

  • Lieschen.Müller/Wohnung/# => alle Topics von IoT-Geräten in Lieschen Müller's Wohnung.
  • Lieschen.Müller/Wohnung/+/Temperatur => alle Topics von Temperatursensoren in Lieschen Müller's Wohnung.
Beispiel: MQTT-Test-Broker mosquitto


Der Test-Broker ist über die Adresse test.mosquitto.org erreichbar.

Angebotene Ports sind:

  • 1883 : MQTT, unverschlüsselt
  • 8883 : MQTT, verschlüsselt
  • 8884 : MQTT, verschlüsselt, Client Zertifikat notwendig
  • 8080 : MQTT über WebSockets, unverschlüsselt
  • 8081 : MQTT über WebSockets, verschlüsselt
Die verschlüsselten Ports unterstützen TLS v1.2, v1.1 oder v1.0 mit x509-Zertifikaten und benötigen Kooperation des Clients. In allen Fällen sollten Entwickler die Trustcenter-Datei mosquitto.org.crt verwenden, um Serververbindungen zu verifizieren. Port 8884 verpflichtet Clients zur Bereitstellung eines Zertifikats, um ihre Verbindung zu authentisieren.

Zertifikate sind auf direkte Anfrage bei mosquitto.org verfügbar.


Neben kommerziellen MQTT-Broker-Lösungen wie HiveMQ gibt es auch eine kostenlose Open-Source-Lösung namens Mosquitto. Sie ist leistungsfähig, schlank, und kostenlos. Sie können natürlich alternativ einen der verfügbaren dauernd laufenden Test-MQTT-Broker im Internet benutzen (siehe separate Textbox). Allerdings ist es dann jedem möglich, Ihre Nachrichten mitzulesen.

Installationsdateien und -hinweise für diverse Betriebssysteme finden Sie im Download-Bereich von mosquitto. Sobald mosquitto auf Ihrem Computer läuft, können Sie im nächsten Schritt dem Arduino beibringen, Nachrichten über MQTT zu senden oder zu empfangen.

Arduino Client


Das Arduino Uno Board soll nun mit Hilfe des Ethernet-Shields Verbindung zu einem MQTT-Broker aufnehmen, dort Nachrichten über "outTopic" versenden, und Nachrichten über "inTopic" empfangen. Um selbst kein MQTT-Protokoll für Arduino entwickeln zu müssen, verwenden wir die Open-Source-Lösung von Nick O'Leary. Diese ist als PubSubClient auf seiner Webseite verfügbar. Die Bibliothek plus Beispiele können Sie über GitHub herunterladen. Und wie immer gilt, dass wir die Bibliothek der Arduino-IDE über das Menü Sketch | Include Library | Add .ZIP Library bekannt machen müssen.

Im nachfolgenden Sketch habe ich mich hemmungslos bei Nick O'Leary bedient. Das Demo-Programm geht von einer statischen Adressvergabe aus. Sie können für den Arduino aber auch die dynamische Adresszuweisung über DHCP aus dem vorherigen Sketch (der letzten Folge) verwenden.

Vergessen Sie nicht bei Ausführung des Sketches den seriellen Monitor der Arduino-IDE zu öffnen, und die Übertragungsrate auf 57.600 einzustellen. Diese Baudrate gibt das Arduino-Programm in der Methode setup() vor.

#include <SPI.h> // Serial Peripheral Interface
#include <Ethernet.h> // Ethernet Bibliothek
#include <PubSubClient.h> // MQTT Bibliothek
// Tragen Sie hier die Parameter für Ihr Netzwerk ein:


byte mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
IPAddress ip(192, 168, 178, 72);
IPAddress server(192, 168, 178, 40);

/*

Die nachfolgende Methode wird aufgerufen, sobald eine Nachricht für das angegebene Topic eintrifft:

*/


void callback(char* topic, byte* payload, unsigned int length) {
Serial.print("Nachricht eingetroffen [");
Serial.print(topic);
Serial.print("]: ");
for (int i=0;i<length;i++) {
Serial.print((char)payload);
}
Serial.println();
}
EthernetClient ethClient;
PubSubClient client(ethClient);

void reconnect() {
// Solange wiederholen bis Verbindung wiederhergestellt ist
while (!client.connected()) {
Serial.print("Versuch des MQTT Verbindungsaufbaus...");



//Verbindungsversuch:
if (client.connect("arduinoClient")) {
Serial.println("Erfolgreich verbunden!");
// Nun versendet der Arduino eine Nachricht in outTopic ...
client.publish("outTopic","Arduino nach Hause telefonieren");


// und meldet sich bei inTopic für eingehende Nachrichten an:
client.subscribe("inTopic");
} else { // Im Fehlerfall => Fehlermeldung und neuer Versuch
Serial.print("Fehler, rc=");
Serial.print(client.state());
Serial.println(" Nächster Versuch in 5 Sekunden");
// 5 Sekunden Pause vor dem nächsten Versuch
delay(5000);
}
}
}
void setup()
{
Serial.begin(57600);
// Broker erreichbar über ip-Adresse = server, port = 1883
client.setServer(server, 1883); // Adresse des MQTT-Brokers
client.setCallback(callback); // Handler für eingehende Nachrichten
// Ethernet-Verbindung aufbauen
Ethernet.begin(mac, ip);
// Kleine Pause
delay(1500);
}

void loop()
{


// Solange probieren bis es klappt:
if (!client.connected()) {
reconnect();
}
client.loop();
}
Sqmtt.fx


Üst eskiz başlatırsanız, göreceksiniz ... hiçbir şey! Şaşırtıcı olmamalı çünkü henüz bir iletişim ortağı geliştirmedik. En iyi ihtimalle, Arduino şu anda arabalara liderlik edebilir.

Her şeyi programınız olmadan test etmek için çeşitli test istemcileri SQMTT vardır. Bu amaçla mqtt.fx.'yi seçtim. Windows, OS X, Linux için indirmeler bu sayfada mevcuttur.

Programın kurulumundan ve başlangıcından sonra MQTT.FX penceresi görüntülenir görünmez, çalışmak istediğiniz SQMTT komisyoncusunu girin, bizim durumumuzda yerel Zation Broker. SQMTT.FX size otomatik olarak "yerel sivrisinek" seçeneğini sunar, böylece yalnızca kullanabilirsiniz bağlamak Tıklamalıyım.





Sqmtt.fx, Arduino ve Mosquitto eylemde



Sqmtt.fx, Arduino ve Mosquitto eylemde



MQTT.FX'ten menü çubuğunda önce menü öğesini kullanabilirsiniz Brokerin durumu Menü öğesi aracılığıyla SQMTT Broker verilerine olan bağlantıya abone olun Abone Belirli konulardan veya menü öğesinden mesajlara kaydolun Yayınlamak Mesajları konularda yayınlayın. Girmek için En iyi isim VE Haberler Uygulamanın ilgili metin alanlarını kullanın. Bu nedenle her ikisinde de yayınlar aksaklıkArduino'ya mesaj göndermek için. Veya haberlerin alınması için kaydedildi açık Böylece Arduino mesajlarını da gönderebilir.

JavaScript arıyor


İlk kendi ölçekli SQM istemcimiz JavaScript'i temel olarak kullanır. Node.js için karşılık gelen bir SQMTT paketi zaten var. Her zaman olduğu gibi, ilk olarak SQM desteğini başlıklı paket yöneticisi aracılığıyla yüklüyoruz.

npm install mqtt --save

Bu şekilde en ağır engelden geçtik. Şimdi Arduino kartı ile mesaj alışverişi yapmaya başlayabiliriz. Basit bir senaryo ne kadar kolay olduğunu gösterir:

var mqtt = require('mqtt');
var client = mqtt.connect('mqtt://localhost:1883');
// Verbindung zum Broker aufbauen:
client.on('connect', function () {


// Nachrichten aus outTopic abonnieren:
client.subscribe('outTopic');

// Nachrichten auf inTopic publizieren:
client.publish('inTopic', 'Hallo Arduino, hier ist JavaScript!');
});


// client.on enthält eine Ereignisbehandlung für eingehende Nachrichten:

client.on('message', function (topic, message) {

// Eingegangene Nachricht auslesen:
console.log(message.toString());
client.end(); // Verbindung kappen
});

Gördüğünüz gibi, SQMTT aracılığıyla JavaScript ve Arduino arasındaki iletişim büyük bir sorun değil, bu yüzden bir sonraki engele, biraz daha ağır olabiliriz.

Java arıyor


Bu noktada biraz daha karmaşık bir SQMTT projesini göstermek istiyorum. Fikir oldukça basit: Bir Java programı, posta kutumda hala okunmayan e -posta sayısını belirler. Bu sayı Ardino MQTT aracılığıyla devam ediyor. Oradaki yürütmedeki taslak mesajı alır e

  • Okunmamış mesaj yoksa yeşil bir LED'i 3 saniye bırakın veya
  • Haber okumadığında kırmızı bir LED flaş.
Bunun için tüm mesajlar konu hakkında yapılmalıdır aksaklık Arduino tarafından oradan gönderilir veya alınır.

Mosquitto SQM komisyoncusu olarak kullanılır. Eskizinizi veya Java programınızı test etmek için yeni sqmt.fx'i test platformu olarak kullanmalısınız.

Arduino eskiz


Kod, esasen bir Arduino istemcisi SQMTT'yi kodlamak için zaten kullandığımız koddan türemiştir. Farklılıklar vurgulanır ve yağ basıncı ile yorumlanır.

#include <SPI.h>
#include <Ethernet.h>
#include <PubSubClient.h>

// Wir schließen eine grüne LED an Digital-Pin 6
// und eine rote LED an Digital-Pin 7 an.

const int greenLED = 6;
const int redLED = 7;
// Passen Sie die folgenden Werte an Ihre eigene Systemumgebung an:
byte mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
IPAddress ip(192, 168, 178, 72);
IPAddress server(192, 168, 178, 40);


// Die nachfolgende Methode wird aufgerufen,
// sobald eine Nachricht für das angegebene Topic eintrifft

void callback(char* topic, byte* payload, unsigned int length) {
Serial.print("Nachricht eingetroffen [");
Serial.print(topic);
Serial.print("]: ");
for (int i=0;i<length;i++) {
Serial.print((char)payload);
}
Serial.println();

// Zusätzlich zur Ausgabe über den seriellen Monitor
// konvertieren wir die Nachricht in eine Zeichenkette
// und anschließend in eine Ganzzahl:

char *buffer = (char *) malloc(length);
strcpy(buffer, (char *)payload);
int blinks = String(buffer).toInt();

// Kam als Wert 0, gibt es keine ungelesenen Nachrichten
// => Wir lassen die grüne LED für 3 Sekunden leuchten:

if (blinks == 0) {
digitalWrite(redLED, LOW);
digitalWrite(greenLED, HIGH);
delay(3000);
digitalWrite(greenLED, LOW);
}
// Kam als Wert > 0, soll die rote LED so oft blinken
// wie es ungelesene Nachrichten gibt:

else {
digitalWrite(greenLED, LOW);
for (int i = 0; i < blinks; i++) {
digitalWrite(redLED, HIGH);
delay(1000);
digitalWrite(redLED, LOW);
delay(1000);
}
}

}

EthernetClient ethClient;
PubSubClient client(ethClient);

void reconnect() {
// Solange wiederholen bis Verbindung wiederhergestellt ist
while (!client.connected()) {
Serial.print("Versuch des MQTT Verbindungsaufbaus...");
//Versuch die Verbindung aufzunehmen
if (client.connect("arduinoClient")) {
Serial.println("Erfolgreich verbunden!");
// Nun versendet der Arduino eine Nachricht in outTopic ...
client.publish("outTopic","Arduino nach Haue telefonieren");
// und meldet sich für bei inTopic für eingehende Nachrichten an
client.subscribe("inTopic");
} else {
Serial.print("Fehler, rc=");
Serial.print(client.state());
Serial.println(" Nächster Versuch in 5 Sekunden");
// 5 Sekunden Pause vor dem nächsten Versuch
delay(5000);
}
}
}

void setup()
{
pinMode(redLED, OUTPUT); // rote LED
pinMode(greenLED, OUTPUT); // grüne LED

Serial.begin(57600);
// Broker = ip-Adresse= ip und port = 1883
client.setServer(server, 1883);
client.setCallback(callback);

Ethernet.begin(mac, ip);
// Kleine Pause
delay(1500);
}

void loop()
{
if (!client.connected()) {
reconnect();
}
client.loop();
}


Bu çizimi Arduino'dan indirin. Arduino'ya "hayali" "hayali" SQMT.FX mesajlarıyla mesaj gönderebilirsiniz. Unutmayın: Eskiz bir tamsayı bekler> = 0.

SQM istemcisi olarak Java


SQM kapasitesine sahip bir Java istemcisi oluşturmak için ilgili bir kitapçıya ihtiyacımız var. En iyi bilinen çözüme Paho denir, bir tutulma inkübatör projesidir ve müşterilere olası tüm platformlar ve programlama dilleri için sağlar. Daha önce sunulmuş olan Node.js için JavaScript genişlemesi de bu kaynaktan geliyor.

Java için Paho'yu kullanmak için JAR kütüphanesine ihtiyacınız var

org.eclipse.paho.client.mqtt<version>-<paho version>.<paho unterversion>.jar

Kütüphaneyi Build Java rotasında harici bir kavanoz olarak bağlar. Maven ile kod oluşturabilirsiniz. Parçanın sürüm deposundan indirilmesi daha uygundur.

Müşteri, adreste bulunan SQMTT brokerine bağlanır Tcp: // localhost: 1883 Bağlantı isteklerini bekliyorum. Müşteriye adı verelim Arduinosample. Değişken kalıcılık Damlalar söz konusu olduğunda eski bir devlete tekrar koyabilmek için bilgi tasarrufu sağlayabilir. Ancak yapılandırma seçeneği Connopts.setCleanSession (True)Her programda yeni bir oturumla çalışıyoruz.

Çağrıya UnadeadMessages.GetNoofunnedMessages ("Gelen Kutusu") Posta kutusu sınıfına erişir ve okunmamış mesajların sayısını alırsak. Daha sonra daha fazla bilgi.

Hizmetin kalite parametresi olarak Message.setqos (QoS) değer QoS = 2 Kullanarak, mesajın konuya tam bir kez geldiğinden emin olmak istiyoruz.

Bu yüzden bağlantıyı açıyoruz ve mesajımızı bir araya getiriyoruz. Böylece program mesajı gönderir (Sampleclient.Publish (Konu, Mesaj)) ve komisyoncuya olan bağlantıyı kesin (Sampleclient.Disconnect ()).

Her şey işe yaradısa, mesaj şimdi Arduino tarafından alınmalıdır.

package de.stal.mqttdemo;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

public class MqttPublishSample {

public static void main(String[] args) {

String topic = "inTopic";
int qos = 2;
String broker = "tcp://localhost:1883";
String clientId = "arduinoSample";
String msg = "";
MemoryPersistence persistence = new MemoryPersistence();

try {


// Daten der Verbindung spezifizieren:

MqttClient javaClient = new MqttClient(broker, clientId, persistence);

// Konfiguration vornehmen:
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true);
System.out.println("Verbindungsaufbau zum MQTT-Broker: " + broker);

// Verbinden:
javaClient.connect(connOpts);
System.out.println("Verbindungsaufbau erfolgreich!");

// Hier erfolgt der Zugriff auf die Inbox:
msg += UnreadMessages.getNoOfUnreadMessages("Inbox");
System.out.println("Neue Nachricht in topic schreiben: "+ msg);

// und hier wird die Nachricht zusammengesetzt:
MqttMessage message = new MqttMessage(msg.getBytes());
message.setQos(qos);

// Publizieren der Nachricht:
javaClient.publish(topic, message);
System.out.println("Message published");

// und Verbindung kappen:
javaClient.disconnect();
System.out.println("Verbindung geschlossen!");
System.exit(0); // Erfolg!!

}

catch(MqttException me) {
System.out.println("reason "+me.getReasonCode());
System.out.println("msg "+me.getMessage());
System.out.println("loc "+me.getLocalizedMessage());
System.out.println("cause "+me.getCause());
System.out.println("excep "+me);
me.printStackTrace();
}
}
}
Java'da postaya erişim


Alan nedenleriyle, Java'ya posta kutunuza nasıl erişileceğine dair tüm ayrıntılarla yüzleşemiyorum. Uygulamamdan aşağıdaki kodu çıkardım. Doldurmak için, bu sayfadan indirebileceğiniz harici Javamail kütüphanesine ihtiyacınız var. Bu vazo kütüphanesi aynı zamanda yapı java yoluna aittir.

package de.stal.mqttdemo;
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;

public class UnreadMessages {

public static int getNoOfUnreadMessages(String folderName) {
// Setzen Sie hier die Daten Ihres Providers ein:
String host = "imap.gmail.com";


// An dieser Stelle brauchen Sie Ihren Benutzernamen (meistens

// mit der email-Adresse identisch:

String username = "[email protected]";

// und hier geben Sie Ihr Passwort ein:
String password = "passwort";
Folder folder = null;
Store store = null;
int count = 0; // Nachrichtenzähler

// Ich benutze imap zum Zugriff
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
try {
Session session = Session.getDefaultInstance(props, null);


// Session und Mailbox-Zugriff kreieren:
store = session.getStore("imaps");
store.connect(host, username, password);

// Auf den Ordner folderName zugreifen:
folder = (Folder) store.getFolder(folderName);
if(!folder.isOpen())
folder.open(Folder.READ_WRITE);
// Zahl der ungelesenen Nachrichten ermitteln:
count = folder.getUnreadMessageCount();
} catch (NoSuchProviderException exc) {
exc.printStackTrace();
System.exit(1);
} catch (MessagingException exc) {
exc.printStackTrace();
System.exit(2);
} catch (Exception exc) {
exc.printStackTrace();
System.exit(2);
} finally {
try {
if (folder != null && folder.isOpen()) { folder.close(true); }
if (store != null) { store.close(); }
}
catch(MessagingException exc) {
exc.printStackTrace();
System.exit(2); // Fehlermeldung
}
}


// Ermittelte Zahl ungelesener Nachrichten zurückgeben:
return count;
}
}

Örnek kod bir yarıştan sonra sona erer. Programın posta kutusunu her saniyede arayacak ve SQMTT aracılığıyla bilgileri Arduino eskizine iletmesi için kodu değiştirebilirsiniz.

Bu arada, program e -mail alımının iş akışının sürekli kesintilerine nasıl yol açabileceğini belirlemek için iyi bir psikolojik yardımdır.

SQMTT alternatifleri


IoT geliştiricileri için, elbette, aralarından seçim yapabileceğiniz sadece metrekare yok. Başka alternatifler de var:

  • ETHF'nin lekeli uygulama protokolü daha az miktarda dinlenme belirtir. IoT cihazlarına ve hizmetlerine erişim, Kaynaklar (URI) aracılığıyla uygulamanın belirli protokolünde gerçekleştirilir. Bu dizi daha sonraki bir bölümde CoAP ile ilgileniyor.
  • XMPP kapsamlı bir mesajlaşma ve varlık protokolü olarak iletişimi XML bazlı haberlere göre tanımlar. Ancak şu anda, bu standardın IoT için önemi sınırlıdır.
  • Bu aynı zamanda nötr nötr bir mesaj-middleware sunan AMQP (gelişmiş mesajlaşma protokolü) için de geçerlidir. AMQP'nin şu anda IoT açısından ilgili bir dağılımı yoktur.
Çözüm


Bu ve son bölümde, IoT cihazlarıyla internette çok fazla iletişim bilme fırsatımız oldu. Olasılıklar farklıdır ve mikrodenetleyici üzerindeki bir mini web sitesinin işleyişinden M2 ile genel/ışık abonesine kadar değişir. Uygulamada hangi teknolojiyi kullandığınız tamamen gereksinimlerinize ve tercihlerinize bağlıdır.

Bununla birlikte, metrekare olarak standart olarak standart bir avantaja sahiptir, çünkü genellikle çok sayıda uygulama sunarlar ve özellikle heterojen manzaralar Sethr'i destekler.




()
 
Üst