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)?
la source
Réponses:
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é.
la source
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).
la source
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:
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.
la source
Il y a deux volets à cela:
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.
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!)
la source
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:
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é.
la source
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!
la source
flespi propose des services cloud gratuits et commerciaux:
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.
la source