Wie wählt man einen einfachen IoT-Server für die Entwicklung aus?

13

Wir untersuchen die verschiedenen IoT-Anwendungsfälle und -Lösungen. Um das Erkunden, Experimentieren, Entwerfen, Entwickeln und Testen möglicher Lösungen zu erleichtern, untersuche ich die Möglichkeit, einen einfachen IoT-Server lokal einzurichten.

Daher möchte ich die zugrunde liegende Architektur von Servern verstehen, die IoT-Geräte bedienen. Allgemein gesagt, verbinden IoT-Geräte Dienste, die Daten bereitstellen und die Informationen zur Verwendung durch andere Geräte verfügbar machen. Das ist ziemlich einfach.

Derzeit werden die möglichen IoT-Edge-Geräte Wi-Fi verwenden, planen jedoch die Migration auf ein Protokoll mit niedriger Datenrate und geringem Stromverbrauch wie ZigBee, BLE oder möglicherweise Z-Wave. Zu diesem Zeitpunkt benötige ich eine Art Hub . Die Datennutzlast beträgt ungefähr 100 Bytes, zu Spitzenzeiten kann die Übertragung bis zu einer Transaktion pro Minute betragen. Die IoT-Edge-Geräte laden meistens Daten hoch, gelegentlich auch auf die Geräte.

Es wurde vorgeschlagen, dass ich mir MQTT und RabbitMQ als mögliche Optionen anschaue . Außerdem wurde ich zum Thema " Anzeigen von MQTT-Nachrichten in einem Browser in Echtzeit " weitergeleitet, auf das ich mich zum Zeitpunkt des Schreibens beziehe.

Hier sind ein paar Fragen, von denen ich glaube, dass sie zusammenhängen:

  • Was unterscheidet einen IoT-Server von einem Webserver, Mailserver oder FTP-Server?
  • Was ist die zugrunde liegende Architektur eines grundlegenden IoT-Servers?
  • Welche Eigenschaften sind wichtig, wenn einfache, leichte IoT-Server in Betracht gezogen werden?
Mahendra Gunawardena
quelle

Antworten:

6

Ich werde Ihre erste Frage beantworten. Ich denke, es wäre besser, nur eine einzige Frage pro ... Frage zu stellen :)

Was unterscheidet einen IoT-Server von einem Webserver, Mailserver oder FTP-Server?

  • Ein Webserver kommuniziert mit HTTP, um Webseiten bereitzustellen.
  • Ein Mailserver kommuniziert mit POP / IMAP / SMTP, um E-Mails auszutauschen.
  • Ein FTP-Server spricht das FTP-Protokoll für die Dateiübertragung.

Im Grunde sind es nur alle Möglichkeiten, Informationen zwischen einem Client und einem Server zu übertragen. Ein IoT-Server ist nicht anders, er spricht lediglich ein IoT-Protokoll für die Kommunikation zwischen Client und Server. Bei den übermittelten Informationen handelt es sich nicht um Webseiten, E-Mails oder Dateien, sondern um Meldungen wie "Die aktuelle Temperatur beträgt 20 ° C". Beispiele für IoT-Protokolle sind MQTTund CoAP.

ralight
quelle
Beispielsweise könnte Ihr "IoT" -Server der "MQTT-Broker" sein, und dies würde ihn zu einem IoT-Server machen, wenn Sie MQTT verwenden, um Daten über die Geräte in Ihrer IoT-Infrastruktur zu übertragen.
m4l490n
5

Was unterscheidet einen IoT-Server von einem Webserver, Mailserver oder FTP-Server?

Wie @ralight zeigte, arbeitet der IoT-Server mit dem IoT-Protokollstapel. Dies ist nicht auf eine OSI-Schicht beschränkt. Tatsächlich ist oder kann jede Stufe für die Verwendung im Internet der Dinge optimiert werden, und natürlich sind neue Protokolle erforderlich.

Es ist auch möglich, dass die Hardware untypisch ist: In kleinen Setup-Datenkollektoren wie Raspberry PI können die Aufgaben des Servers ganz oder teilweise übernommen werden.

Teilweise bedeutet Nebel-Computing, bei dem Daten dort verarbeitet werden, wo sie gesammelt werden und nur die Endergebnisse an den Hauptserver gesendet werden.

Was ist die zugrunde liegende Architektur eines grundlegenden IoT-Servers?

Von dieser Seite aus einige Hardwarespezifikationen:

Nehmen wir an, 300 Clients werden gleichzeitig auf dem Server geöffnet, und jeder Client sendet 10 msg / s, was 3000 Nachrichten pro Sekunde entspricht. Glauben Sie mir, selbst ein Broker, der auf einem Dual-Core-System mit 2 GB RAM gehostet wird, wird keinen nennenswerten Verbrauch haben.

Also, grundlegende Serverhardware.

Welche Eigenschaften sind wichtig, wenn einfache, leichte IoT-Server in Betracht gezogen werden?

Ich habe nicht viel Einblick, aber ich würde mich persönlich dafür interessieren, ob Raspberry PI als eine Art MQTT-Server ausreicht. Ich habe irgendwo in Quora gelesen, dass es sich bei Esp8266 nicht handelt, aber ich habe ein normales Desktop-Linux gesehen, das an RPI arbeitet. Warum sollte es nicht auch als Server fungieren?

Was zu beachten ist, bevor Sie Raspberry ausprobieren, sind die Hardwareanforderungen des ausgewählten Service-Stacks. Bei normaler Serverhardware sind die Speichermengen heutzutage so hoch, dass es keine Probleme geben wird.

Die angegebenen 3000 msg / s sind im Vergleich zu IoT-Testfällen relativ hoch, und RPI3 verfügt über 1 GB RAM. Das ist die Hälfte, also hängt es davon ab, ob die Nachrichten in diesem Fall den Speicher füllen oder wie viel der reine MQTT benötigt. Das wirkt sich darauf aus, wie geeignet es wäre.

mico
quelle
1
Scheint, dass es kein Problem mit RPI als Server gibt: iot.stackexchange.com/questions/1858/…
mico