Welche IoT-Dienste stehen zum Speichern, Senden und Veröffentlichen von allgemeinen Daten in der Cloud zur Verfügung?


16

Welche IoT-Dienste stehen zum Speichern / Senden / Veröffentlichen (und für entgegengesetzte Vorgänge) kleiner Datenmengen in der Cloud zur Verfügung?

Ich suche zum Beispiel nach einem Dienst, bei dem ein Gerät einen Wert in der Cloud speichern kann. Und eine andere Entität (ein anderes Gerät, eine Website mit JS-Code, ein Webserver, eine mobile App) könnte diesen Wert abrufen.

Es kann sich um eine asynchrone Kommunikation handeln, beispielsweise zum Speichern und Abrufen von Daten, die so klein sind wie ein Schlüssel-Wert-Paar, <255 Byte, eine Ganzzahl, eine Zeichenfolge oder höchstens ein kleines JSON-Objekt. Der Service könnte eine REST-API (auf die von einer Vielzahl von Sprachen zugegriffen werden kann) mit einem zu authentifizierenden Token und dem zu speichernden Schlüssel und Wert anbieten.

Ein detailliertes Beispiel für einen Anwendungsfall ist:

Zu Hause gibt es einen Temperatursensor, und ich möchte, dass er den Wert in der Cloud speichert ( irgendwo außerhalb von zu Hause ). Auf diese Weise könnte ich darauf zugreifen, unabhängig davon, ob meine Heimverbindung unterbrochen ist oder nicht. Darüber hinaus würde dies die Beibehaltung und Pflege eines dedizierten Servers + portForwarding + DynamicDNS vermeiden.

Bisher konnte ich so etwas noch nicht finden, aber gelegentlich habe ich einige Beispiele dafür gefunden, was ich beschreiben möchte:

Welche ähnlichen (freien / offenen) Alternativen gibt es?


@BenceKaulics Ich denke, dass beide Anwendungsfälle zutreffen würden. Die professionelle Lösung könnte zu mehr Standardisierung und Zuverlässigkeit führen. Die experimentelle Lösung könnte ein interessantes Open-Source-Projekt sein.
Urnenfeld

Ich hasse es, eine Spielverderber-Sportart zu sein, aber ich sehe dies nicht als eine IoT-Anfrage, sondern eher als Web-Serives, für die wir andere Websites haben. Verwenden Sie, was immer Sie möchten - Ihre eigene Website, kostenloses Hosting, Amazon Web Services usw. Sie haben uns nicht wirklich mitgeteilt, was Sie erreichen möchten. Möchten Sie beispielsweise die Serversoftware codieren? Keine Details, nur ein warmes, verschwommenes Gefühl, daher wird es sehr schwierig sein, dir zu antworten.
Laut Mawg wird Monica am

2
@Mawg Es hat das Web-Service-Tag (das ich nicht erstellt habe). Der Anwendungsfall ist, wie die angegebenen Referenzen, auf das Internet der Dinge ausgerichtet. Es fragt nach verfügbaren Diensten, während dies durch eine einfache PHP + DB erreicht werden könnte. Die Absicht ist jedoch nicht, das Rad neu zu erfinden und herauszufinden, welche Dienste der IoT-Community bekannt sind. Aber lassen Sie mich wissen, in welche Community es Ihrer Meinung nach besser passt.
Urnenfeld

Es ist ein enger Anruf. Ich gebe zu, dass ich manchmal auf Stack Overflow poste, wo eine andere Site korrekter wäre. ABER SO hat ein größeres Publikum, also habe ich mehr Chancen auf eine Antwort. Es gibt immer ein bisschen Überlappung mit anderen Websites und wir müssen es im Laufe der Zeit herausarbeiten. +1 für nicht beleidigend & jetzt sind Sie sich der Sicherheits-Website bewusst. Die Frage * könnte allerdings noch ein bisschen detaillierter sein :-)
Mawg sagt, Monica am

2
@Mawg natürlich nichts für ungut :). Ich habe wirklich einige Zeit damit verbracht zu überlegen, wo die Frage platziert werden soll. Ich habe zuvor versucht, die Frage genauer zu formulieren. Mal sehen, ich habe den genauen Anwendungsfall und vorläufige Lösungen hinzugefügt.
Urnenfeld

Antworten:


10

Werfen Sie einen Blick auf diese Dienste:

Beide Dienste akzeptieren einfache Schlüssel- / Wertdaten von einem Gerät. Ich glaube, beide haben Bibliotheken, die für Partikelgeräte importiert werden können, seit Sie das erwähnt haben.


7

Viele Cloud-Anbieter wie Amazon, Microsoft, Google, IBM usw. versuchen, IoT-Speicherplatz zu gewinnen, indem sie einfachere Methoden zum Senden / Speichern / Analysieren von Sensordaten an ihre Cloud bereitstellen. Sogar sie sollen Hardwarehersteller erwerben, um ihren Umfang im Internet der Dinge zu erweitern.

Ich habe keine anderen Services als AWS verwendet, daher kann ich meine Erfahrungen mit AWS erläutern und erläutern, wie wir diese für die Produktionsnutzung integriert haben.


Szenario:

Wir haben Hunderte von Sensoren, die jede Minute 184-428 Datenbytes an das lokale Gateway senden, das die Daten aggregiert und lokal speichert und dieselben Daten an die AWS Cloud sendet. Wir haben auch spezielle Sensoren, die Daten direkt in die Cloud senden.

Cloud-Services

Wir verwenden AWS IoT , AWS S3, AWS DynamoDB, AWS Lambda, AWS API-Gateway, AWS SNS, AWS Cloudwatch und AWS RedShift, um die gesamte Lösung zu erstellen. Grundsätzlich sind diese nicht IoT-spezifisch (außer AWS IoT), da wir sie für Mobilgeräte und das Internet verwenden können.

Gateway verwendet das AWS IoT SDK, um über die Protokolle MQTT, HTTP oder WebSockets eine Verbindung mit dem AWS IoT herzustellen, Nachrichten zu authentifizieren und auszutauschen. Wir sind lokaler MQTT-Broker auf dem Gerätegateway und überbrücken ihn zum AWS IoT-Endpunkt. Von dort aus führen wir eine sofortige Überprüfung der empfangenen Daten durch (unter Verwendung der Rules Engine, AWS Lambda-Funktionen) und speichern sie in der DynamoDB-Archivierung in S3, Glacier (Speicherung erfolgt) ohne eine einzige Zeile zu schreiben (nur mit AWS-Triggern zum Speichern von Daten).


6

Es ist nur für experimentelle oder Testzwecke gedacht, wird sich aber möglicherweise in Zukunft ändern.

Mein Vorschlag ist daher, MQTT zu verwenden , genauer gesagt die Mosquitto- Implementierung. Sie hosten einen Testbroker, mit dem Sie Ihre Abonnenten- und Publisher-Clients verbinden können. ( Hier finden Sie eine Anleitung zum Installationsvorgang unter Windows 7. )

Beachten Sie das Folgende:

Es steht Ihnen frei, es für jede Anwendung zu verwenden, aber bitte missbrauchen Sie es nicht und verlassen Sie sich nicht darauf, wenn etwas von Bedeutung ist. Sie sollten Ihren Client auch so erstellen, dass er den Neustart des Brokers bewältigt.

Grundsätzlich können Sie jedoch Temperaturdaten für diesen Broker veröffentlichen.

Auf Abonnenten-Client-Seite habe ich kürzlich diese Android-Anwendung verwendet . Es ist eine sehr einfache Anwendung, die sich noch in der Entwicklung befindet, aber zu Testzwecken sehr gut ist. Empfangene Nachrichten werden auf einem Dashboard angezeigt, nichts Besonderes, nur die nackten Werte.

Ich habe damit begonnen, beides als erste Stufe meines MQTT-Lernprozesses zu verwenden und fand beides großartig für Anfänger.


1
Wäre MQTT nicht eine passendere Lösung in einem LAN-Kontext? Bei Problemen wie Datenschutz / Sicherheit / Mehrbenutzer?
Urnenfeld

@urnenfeld MQTT unterstützt Ihre Website, Ihre mobile App und die Anforderungen für "andere Geräte", da Sie alle abonnieren können. Natürlich möchten Sie auch in Zukunft Daten von anderen Geräten und nicht nur von der Temperatur senden, sodass die Mehrbenutzerfähigkeit eine gute IMO ist, auch wenn es sich nur um ein Netzwerk mit mehreren Herausgebern und einem Abonnenten handelt. Auch Sicherheit und Privatsphäre sollten immer ein Problem sein. Was das LAN betrifft, passt es vielleicht besser, aber wenn Sie sich um die Sicherheit kümmern, können Sie Ihren Broker von überall her verfügbar machen, nicht von einem Experten in dieser Angelegenheit.
Bence Kaulics

1
Ähm, dieser Testbroker ist ein Testbroker und sollte daher nicht für eine laufende Anwendung verwendet werden. Aber die Idee ist hier: Sie können den Port Ihres MQTT-Brokers von Ihrer Firewall aus öffnen und von überall aus eine Verbindung herstellen.
Goufalite

Es tut mir leid, aber OP möchte Daten speichern . MQTT ist nur ein Messenger, aber Sie können ihn verwenden, um Daten an einen dedizierten Server zu senden. Um einen Wert abzurufen, muss der Client eine Abfrage an MQTT senden, um den Wert über eine Veröffentlichung abzurufen. MQTT ist großartig, aber ein Webservice hat hier einen besseren Platz ...
Goufalite

@Goufalite Ja, das Speichern von Daten ist komplizierter.
Bence Kaulics

5

Dazu gibt es zwei Komponenten:

  1. Wie möchten Sie Ihre Daten speichern? Es gibt keine echte Möglichkeit, einen "generischen" Datendienst zu erstellen, der wirklich alle Anforderungen erfüllt. Was Sie möchten, wird als "Zeitreihendatenbank" bezeichnet , und es gibt Hunderte davon, da jedes Detail, wie Sie Daten speichern, in großem Maßstab von Bedeutung ist. (Wenn Sie nicht in der Größenordnung sind, speichern Sie es einfach in einer alten Datenbank, es wird eine Weile funktionieren.)

    Jede Zeitreihendatenbank wurde geschrieben, weil die anderen nicht genau das taten, was sie wollten. Stellen Sie sich beispielsweise vor, wie Graphite seine Daten speichert: Jede Metrik (z. B. Temperatur aus einer Quelle) wird in einer Datei mit fester Größe gespeichert. Unabhängig davon, wie oft Sie Metriken senden oder wie lange Sie sie senden, hat die Datei eine konstante Größe.

    Der Nachteil ist, dass ältere Daten eine geringere Auflösung haben und nach einem festgelegten Intervall (z. B. 1 Jahr) die Daten verworfen werden. Der Vorteil ist jedoch, dass es genauso schnell ist, einen Tag wie ein Jahr zu zeichnen, und die Größe der Messdaten mit der Zeit nicht zunimmt.

    In anderen Speichersystemen kann das Generieren eines Diagramms für ein Jahr das Abrufen von Millionen von Datenpunkten umfassen und eine enorme Menge an Datenspeicher erfordern.

    Der große Nachteil von Graphite ist, dass mit jeder Metrik eine neue Datei erstellt wird. Wenn Sie also dynamische Metriken haben (z. B. das Kommen und Gehen von Cloud-Boxen), ist dies möglicherweise keine gute Anpassung.

    Vergleichen Sie das mit Prometheus , wo Metriken meist nach Zeit gespeichert werden. Sie können viele dynamische Metriken haben, und es ist in Ordnung. Versuchen Sie jedoch nicht, diese Metriken langfristig zu speichern. Es wird ewig dauern, bis Sie sie erneut lesen.

    Keine Größe passt für alle.

    PS Graphana ist eine hervorragende Möglichkeit, Ihre Daten zu visualisieren. Es verfügt über Plug-Ins für die meisten Zeitreihendatenbanken.

  2. Wer speichert Ihre Daten? Es gibt Tausende von Orten wie die , die Sie erwähnt haben. Es ist so einfach, eine Zeitreihen-DB in der Cloud aufzubauen, aber es ist WIRKLICH schwierig, damit Geld zu verdienen. Die meisten dieser Unternehmen werden nach einer Weile ihre Geschäftstätigkeit einstellen oder mit der Preisberechnung beginnen. (Selbst wenn die Preise stabil bleiben, sinken die Kosten ständig.) Oft stellen sie fest, dass sie nicht so viele neue Kunden anziehen können, wie sie möchten, und versuchen daher, die Preise zu erhöhen (unter dem Deckmantel) Änderung ihres Preismodells). Es stellt sich heraus, dass es eine Menge Geld kostet, alle Daten zu speichern ...

    Ich empfehle, sich selbst zu hosten oder einen seriösen Cloud-Anbieter wie AWS CloudWatch zu verwenden . (Teuer, wenn Sie viele Metriken haben, aber kostenlos für unter 50 Metriken!)


Die Idee war, eine Auswahl der besten dieser "Tausenden von Orten" zusammenzustellen. Ich habe bereits eine Sammlung gesammelt (auch meine eigene), die irgendwann hier veröffentlicht wird
urnenfeld

3

uBeac ist ein neues Freeware-Visualisierungswerkzeug, das wir entwickelt haben und es ist eine Beta-Version. Es ist keine Open Source, aber völlig kostenlos zu benutzen.

Sie können ein Gateway definieren und erhalten eine eindeutige URI. Sie können den URI in Ihrem Gateway oder Gerät so einstellen, dass HTTP / MQTT-Daten an gesendet werden.

Dies sind einige seiner Funktionen:

  • Team, Gebäude, Grundrissdefinition
  • Echtzeit-Datenvisualisierung
  • Benutzerdefiniertes Dashboard-Design mit verschiedenen Widgets
  • Definieren Sie Sensortypen, Einheiten und Präfixe
  • ...

Es unterstützt auch das generische Json-Datenformat und verschiedene vordefinierte Gateways. Wenn Sie keine vordefinierten Payload-Formate verwenden möchten, können Sie Ihre benutzerdefinierte Payload-Verarbeitung entwickeln.


Hallo @Amir, wir haben festgestellt, dass Ihre Antworten sich bisher verdoppelt haben und für Ihr Produkt werben. Die Beantwortung der Frage, wo Ihr Produkt relevant ist, ist in Ordnung. Lesen Sie jedoch unbedingt die Richtlinien zur Eigenwerbung in der Hilfe. Es ist auch eine gute Idee, Ihre Antworten auf die jeweilige Frage zuzuschneiden, anstatt identischen Text zu veröffentlichen, um sicherzustellen, dass Sie die Frage tatsächlich vollständig beantworten, anstatt nur für Ihr Produkt zu werben. Vielen Dank.
Aurora0001

1

Ich bin überrascht, dass hier niemand Dweet erwähnte . Dies ist eine sehr einfache und unterhaltsame Möglichkeit, die Kommunikation zu verbessern. Sie sollten es auf jeden Fall ausprobieren, denn hey, es ist kostenlos!


1
Es wurde zwar vorgeschlagen, aber die Mäßigung beseitigte es. Eine der coolen Sachen dieses Dienstes ist, dass Sie sich nicht einmal registrieren müssen, und sie zeigen eine grafische Darstellung Ihrer Daten. Auf der Gegenseite sind Ihre Daten ziemlich öffentlich :)
Urnenfeld

0

flespi bietet kostenlose und kommerzielle Cloud-Dienste an:

  • MQTT Broker - Service für PUB / SUB - Operationen und Sie können speichern die Daten sogar in den Nachrichten behalten ;
  • Speicher-Engine für Schlüssel- / Wertevorgänge, speziell für Zeitreihendaten und generische Dateispeicherung (CDN). Arbeitet über die REST-API .

Haftungsausschluss: Ich arbeite für das Unternehmen, das die flespi-Plattform entwickelt. Ich habe zwar mein Bestes getan, um objektiv zu bleiben, aber bitte überprüfen Sie alle Informationen in dieser Antwort, um Verzerrungen auszuschließen, die sich auf Ihre Entscheidung auswirken könnten.


Erklären Sie erneut eine Verbindung zu einem Dienst, wenn Sie ihn empfehlen (z. B., dass Sie für flespi arbeiten)
hardillb
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.