Quels services IoT sont disponibles pour stocker / envoyer / publier des données génériques dans le cloud?


16

Quels services IoT sont disponibles pour stocker / envoyer / publier (et les opérations opposées) une petite quantité générique de données dans le cloud?

Je recherche par exemple un service où un appareil pourrait stocker une valeur dans le cloud. Et une autre entité (un autre appareil, un site Web avec du code JS, un serveur Web, une application mobile) pourrait récupérer cette valeur.

Il peut s'agir d'une sorte de communication asynchrone, par exemple pour stocker et récupérer quelque chose d'aussi petit qu'une paire clé / valeur, <255 octets, un entier, une chaîne, tout au plus un petit objet JSON. Le service pourrait offrir une API REST (donc accessible à une grande variété de langues) avec un jeton à authentifier et la clé et la valeur à stocker.

Un exemple détaillé d'un cas d'utilisation est:

Il y a un capteur de température à la maison, et je veux qu'il stocke la valeur dans le nuage ( quelque part en dehors de la maison ). De cette façon, je pouvais y accéder, que ma connexion à domicile soit en panne ou non. De plus, cela éviterait de conserver et de maintenir un serveur + portForwarding + DynamicDNS dédié.

Jusqu'à présent, je n'ai pas pu trouver quelque chose comme ça, mais parfois, j'ai trouvé quelques exemples de ce que je veux décrire:

Quelles sont les autres alternatives similaires (gratuites / ouvertes)?


@BenceKaulics Je pense que les deux cas d'utilisation s'appliqueraient. La solution professionnelle pourrait impliquer plus de standardisation et de fiabilité. La solution expérimentale pourrait être un projet open source intéressant à rejoindre.
urnenfeld

Je déteste être un sport gâté, mais je ne vois pas cela comme une demande IoT, plus comme des services Web, pour lesquels nous avons d'autres sites. Utilisez ce que vous voulez - votre propre site, hébergement gratuit, Amazon Web Services, etc. Vous ne nous avez pas vraiment dit ce que vous essayez de réaliser. Par exemple, voulez-vous coder l'un des logiciels serveur? Pas de détails, juste une sensation chaleureuse et floue, il sera donc très difficile de vous répondre.
Mawg dit de réintégrer Monica le

2
@Mawg Il a la balise de service Web (que je n'ai pas créée). Le cas d'utilisation est axé sur l'IoT, tout comme les références fournies. Il demande les services disponibles, alors que cela pourrait être réalisé par un simple php + db, l'intention n'est pas de réinventer la roue et de savoir quels services la communauté IoT connaît. Mais faites-moi savoir dans quelle communauté vous pensez que cela correspond le mieux.
urnenfeld

C'est un appel serré. J'avoue que je poste parfois sur Stack Overflow, où un autre site serait plus correct. MAIS, SO a un public plus large, donc j'ai plus de chance de répondre. Il y a toujours un peu de chevauchement avec d'autres sites et nous devrons travailler au fur et à mesure. +1 pour ne pas vous offenser et maintenant vous connaissez le site de sécurité. La question * pourrait encore utiliser un peu plus de détails, cependant :-)
Mawg dit réintégrer Monica le

2
@Mawg bien sûr, aucune infraction :). J'ai vraiment passé un peu de temps à réfléchir où placer la question ... J'ai essayé de façonner davantage la question avant, Voyons maintenant, j'ai ajouté le cas d'utilisation exact et des solutions provisoires.
urnenfeld

Réponses:


10

Jetez un œil à ces services:

Ces deux services acceptent les données de clé / valeur simples d'un appareil. Je crois qu'ils ont tous les deux des bibliothèques prêtes à importer pour les appareils à particules depuis que vous en avez parlé.


7

De nombreux fournisseurs de cloud comme Amazon, Microsoft, Google, IBM, etc., tentent d'attirer l'espace IoT en fournissant des moyens plus faciles d'envoyer / stocker / analyser les données des capteurs vers leur cloud. Même ils doivent acquérir des fournisseurs de matériel pour augmenter leur portée dans l'IoT.

Je n'ai utilisé aucun service autre qu'AWS, je peux donc expliquer mon expérience avec AWS et comment nous l'avons intégré pour une utilisation en production.


Scénario:

Nous avons des centaines de capteurs, chacun envoyant 184-428 octets de données chaque minute à la passerelle locale qui agrège les données et les stocke localement et envoie les mêmes données au cloud AWS. Nous avons également des capteurs à boîtier spécial qui envoient des données directement au cloud.

Services cloud

Nous utilisons AWS IoT , AWS S3, AWS DynamoDB, AWS Lambda, AWS API Gateway, AWS SNS, AWS Cloudwatch, AWS RedShift pour créer une solution complète. Fondamentalement, ceux-ci ne sont pas spécifiques à l'IoT (sauf AWS IoT) car nous pouvons les utiliser pour le Web mobile.

Gateway utilise AWS IoT SDK pour se connecter, authentifier et échanger des messages avec AWS IoT à l'aide des protocoles MQTT, HTTP ou WebSockets (nous utilisons la connexion du nœud JS SDK via MQTT). Nous sommes un courtier MQTT localement sur la passerelle de l'appareil et le pontons vers le point de terminaison AWS IoT à partir de là, nous exécutons des vérifications instantanées sur les données reçues (à l'aide du moteur de règles, des fonctions AWS Lambda) et les stockons dans l'archivage DynamoDB dans S3, Glacier (le stockage est effectué sans écrire une seule ligne de fait en utilisant simplement des déclencheurs AWS pour stocker les données).


6

Il est destiné à un usage expérimental ou de test uniquement, mais peut-être que cela changera à l'avenir.

Ma suggestion est donc d'utiliser MQTT , plus précisément son implémentation Mosquitto . Ils hébergent un courtier de test auquel vous pouvez connecter vos clients abonnés et éditeurs. ( Voici un guide sur le processus d'installation sous Windows 7. )

Notez les points suivants:

Vous êtes libre de l'utiliser pour n'importe quelle application, mais veuillez ne pas en abuser ou vous y fier pour quelque chose d'important. Vous devez également créer votre client pour faire face au redémarrage du courtier.

Mais en gros, vous pouvez publier des données de température sur ce courtier.

Côté abonné-client, j'ai récemment utilisé cette application Android . C'est une application très basique, encore en développement mais à des fins de test, elle est très bonne. Les messages reçus sont affichés sur un tableau de bord, rien de spécial uniquement les valeurs nues.

J'ai commencé à utiliser les deux comme première étape d'un processus d'apprentissage MQTT et j'ai trouvé les deux parfaits pour les débutants.


1
MQTT ne serait-il pas une solution plus adaptée dans un contexte LAN? Pour des problèmes comme la confidentialité / sécurité / multi-utilisateurs?
urnenfeld

@urnenfeld MQTT peut prendre en charge votre site Web, application mobile et "autre appareil", car vous pouvez vous abonner à chacun d'eux. Vous souhaitez également envoyer des données à partir d'autres appareils à l'avenir et pas seulement la température, donc la capacité multi-utilisateur est bonne IMO même s'il ne s'agit que d'un réseau d'abonné unique multi-éditeur. De plus, la sécurité et la confidentialité devraient toujours être un problème. En ce qui concerne le LAN, il convient peut-être mieux, mais si vous prenez soin de la sécurité, vous pouvez rendre votre courtier disponible de partout, pas un expert en la matière.
Bence Kaulics

1
Euh, ce courtier de test est un courtier de test et ne doit donc pas être utilisé pour une application en cours d'exécution. Mais l'idée est là: vous pouvez ouvrir le port de votre courtier MQTT depuis votre pare-feu et vous connecter de partout.
Goufalite

Je suis désolé mais OP veut stocker des données, MQTT n'est qu'un messager mais vous pouvez l'utiliser pour envoyer des données à un serveur dédié. Pour récupérer une valeur, le client doit envoyer une requête à MQTT pour récupérer la valeur via une publication. MQTT est génial mais un webservice a un meilleur endroit ici ...
Goufalite

@Goufalite Oui, le stockage des données est plus compliqué.
Bence Kaulics

5

Il y a deux volets à cela:

  1. Comment voulez-vous que vos données soient stockées? Il n'existe aucun moyen réel de créer un service de données "générique" qui répondra vraiment à tous les besoins. Ce que vous voulez s'appelle des "bases de données de séries chronologiques" , et il y en a des centaines parce que chaque détail de la façon dont vous stockez les données compte à grande échelle. (Si vous n'êtes pas à l'échelle, stockez-le simplement dans une ancienne base de données, cela fonctionnera pendant un certain temps.)

    Chaque base de données de séries chronologiques a été écrite parce que les autres n'ont pas fait exactement ce qu'elles voulaient. Par exemple, considérez comment Graphite stocke ses données: chaque métrique (disons la température d'une source) est stockée dans un fichier de taille fixe. Quelle que soit la fréquence d'envoi des métriques ou la durée de leur envoi, le fichier a une taille constante.

    L'inconvénient est que les données plus anciennes sont à une résolution inférieure, et après un intervalle défini que vous définissez (comme 1 an), les données sont jetées. Mais l'avantage est qu'il est aussi rapide de représenter graphiquement un jour qu'un an, et que les mesures n'augmentent pas avec le temps.

    Dans d'autres systèmes de stockage, la génération d'un graphique pour une année peut impliquer la récupération de millions de points de données et peut nécessiter des quantités massives de stockage de données.

    Le gros inconvénient de Graphite est que chaque métrique crée un nouveau fichier, donc si vous avez des métriques dynamiques (disons que les boîtes de cloud vont et viennent), cela pourrait ne pas être un bon ajustement.

    Comparez cela avec Prometheus , où les mesures sont stockées principalement par le temps. Vous pouvez avoir beaucoup de métriques dynamiques, et ça va. Mais n'essayez pas de stocker ces métriques à long terme, il vous faudra une éternité pour revenir en arrière et les lire.

    Aucune taille ne conviendra à tous.

    PS Graphana est un excellent moyen de visualiser vos données. Il a des plug-ins pour la plupart des bases de données de séries chronologiques.

  2. Qui va stocker vos données? Il y a des milliers d' endroits comme ceux que vous avez mentionnés. Il est si facile de faire tourner une base de données chronologique dans le cloud, mais il est VRAIMENT difficile de faire de l'argent avec elle.La plupart de ces entreprises cesseront leurs activités après un certain temps ou commenceront à faire des prix. (Même maintenir leurs prix stables est une hausse des prix - car le coût de l'informatique baisse constamment.) Plusieurs fois, ils trouvent qu'ils ne peuvent pas attirer autant de nouveaux clients qu'ils le pensaient, alors ils essaient d'augmenter les prix (sous couvert de changer leur modèle de tarification). Il s'avère qu'il en coûte BEAUCOUP d'argent pour stocker les données de tout le monde ...

    Je recommande l'auto-hébergement ou j'utilise un fournisseur de cloud réputé comme AWS CloudWatch . (Cher si vous avez beaucoup de métriques, mais gratuit pour moins de 50 métriques!)


L'idée était d'obtenir un ensemble des meilleurs de ces "milliers d'endroits". J'ai déjà rassemblé une collection (même faite la mienne) qui sera
publiée

3

uBeac est un nouvel outil de visualisation freeware que nous avons développé et c'est une version Beta. Il n'est pas open source, mais entièrement gratuit.

Vous pouvez définir une passerelle et vous obtiendrez un URI unique. Vous pouvez définir l'URI de votre passerelle ou appareil sur lequel envoyer les données HTTP / MQTT.

Voici certaines de ses fonctionnalités:

  • Équipe, bâtiment, définition du plan d'étage
  • Visualisation des données en temps réel
  • Conception de tableau de bord personnalisée à l'aide de différents widgets
  • Définissez les types de capteurs, les unités et les préfixes Visualisation de la carte
  • ...

Il prend également en charge le format de données Json générique et différentes passerelles prédéfinies. Si vous ne souhaitez pas utiliser des formats de charge utile prédéfinis, ils sont ouverts pour développer votre traitement de charge utile personnalisé.


Bonjour @Amir, nous avons remarqué jusqu'à présent que vos réponses sont des doublons les unes des autres et font la promotion de votre produit. Répondre à votre produit est correct, mais assurez-vous de lire les directives d'auto-promotion dans le centre d'aide. C'est également une bonne idée d'adapter vos réponses à la question posée plutôt que de publier un texte identique pour vous assurer que vous répondez réellement à la question plutôt que de simplement promouvoir votre produit. Merci.
Aurora0001

1

Je suis surpris que personne ici n'ait mentionné Dweet . C'est un moyen super simple et super amusant de faire communiquer les choses. Vous devriez certainement l'essayer, car bon, c'est gratuit!


1
Il a bien été proposé, mais la modération l'a supprimé. L'une des choses intéressantes de ce service est que vous n'avez même pas besoin de vous inscrire, et ils montrent un certain traçage de vos données. En contrepartie, vos données sont assez publiques :)
urnenfeld

0

flespi propose des services cloud gratuits et commerciaux:

  • Service Broker MQTT pour les opérations PUB / SUB et vous pouvez même stocker les données dans les messages de conservation ;
  • Moteur de stockage pour les opérations clé / valeur, destiné en particulier aux données de série temporelle et au stockage de fichiers génériques (CDN). Fonctionne via l' API REST .

Clause de non-responsabilité obligatoire: je travaille pour l'entreprise qui développe la plateforme flespi. Bien que j'ai fait de mon mieux pour rester objectif, comme toujours sur Internet, veuillez vérifier toutes les informations dans cette réponse pour exclure les biais qui pourraient affecter votre décision.


Encore une fois, veuillez déclarer toute connexion à un service lorsque vous le recommandez (par exemple, que vous travaillez pour flespi)
hardillb
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.