Quali servizi IoT sono disponibili per l'archiviazione / invio / pubblicazione di dati generici nel cloud?


16

Quali servizi IoT sono disponibili per l'archiviazione / invio / pubblicazione (e operazioni opposte) di piccole quantità generiche di dati nel cloud?

Sto cercando, ad esempio, un servizio in cui un dispositivo potrebbe memorizzare un valore nel cloud. E qualche altra entità (un altro dispositivo, un sito Web con un codice JS, un server Web, un'app mobile) potrebbe recuperare questo valore.

Potrebbe essere una sorta di comunicazione asincrona, ad esempio per archiviare e recuperare qualcosa di piccolo come una coppia chiave e valore, <255 byte, un numero intero, una stringa, al massimo un piccolo oggetto JSON. Il servizio potrebbe offrire un'API REST (in modo che sia accessibile da una grande varietà di lingue) con alcuni token per l'autenticazione e la chiave e il valore da archiviare.

Un esempio dettagliato di un caso d'uso è:

C'è un sensore di temperatura a casa e voglio che memorizzi il valore nel cloud ( da qualche parte fuori casa ). In tal modo, potrei accedervi, indipendentemente dalla mia connessione domestica interrotta o meno. Inoltre, ciò eviterebbe di mantenere e mantenere un server dedicato + portForwarding + DynamicDNS.

Finora non sono stato in grado di trovare qualcosa del genere, ma a volte ho trovato alcuni esempi di ciò che intendo descrivere:

Quali altre alternative simili (libere / aperte) ci sono?


@BenceKaulics Penso che si applicherebbero entrambi i casi d'uso. La soluzione professionale potrebbe implicare una maggiore standardizzazione e affidabilità. La soluzione sperimentale potrebbe essere un interessante progetto open source da unire.
urnenfeld,

Odio essere uno sport avariato, ma non lo vedo come una richiesta IoT, più come i Web Serive, per i quali abbiamo altri siti. Usa quello che ti piace: il tuo sito, hosting gratuito, Amazon Web Services, ecc. Non ci hai davvero detto cosa stai cercando di ottenere. Ad esempio, vuoi codificare qualcuno dei software server? Nessun dettaglio, solo una sensazione calda e sfocata, quindi sarà molto difficile risponderti.
Mawg dice di ripristinare Monica il

2
@Mawg Ha il tag del servizio web (che non ho creato). Il caso d'uso è incentrato sull'IoT, come lo sono i riferimenti forniti. Richiede i servizi disponibili, mentre ciò potrebbe essere ottenuto con un semplice php + db, l'intenzione non è quella di reinventare la ruota e conoscere i servizi di cui la comunità IoT è a conoscenza. Fammi sapere in quale comunità ritieni che si adatti meglio.
urnenfeld,

È una chiamata vicina. Devo ammettere che a volte pubblico su StackTranslate.it, dove un altro sito sarebbe più corretto. MA, SO ha un pubblico più vasto, quindi ho più possibilità di una risposta. C'è sempre un po 'di sovrapposizione con altri siti e dovremo risolverli mentre procediamo. +1 per non esserti offeso e ora sei a conoscenza del sito di sicurezza. La domanda * potrebbe ancora usare un po 'più di dettagli, però :-)
Mawg dice di ripristinare Monica il

2
@Mawg ovviamente senza offesa :). Ho davvero trascorso un po 'di tempo a pensare a dove posizionare la domanda ... Ho provato a modellare di più la domanda prima, vediamo ora, ho aggiunto il caso d'uso esatto e le soluzioni provvisorie.
urnenfeld,

Risposte:


10

Dai un'occhiata a questi servizi:

Entrambi questi servizi accettano dati chiave / valore semplici da un dispositivo. Credo che entrambi abbiano librerie pronte per l'importazione per i dispositivi Particle da quando lo hai menzionato.


7

Molti fornitori di servizi cloud come Amazon, Microsoft, Google, IBM ecc., Cercano di attirare lo spazio IoT fornendo modi più semplici per inviare / archiviare / analizzare i dati dei sensori nel loro cloud. Anche loro devono acquisire i fornitori di hardware per aumentare il loro campo di applicazione in IoT.

Non ho utilizzato servizi diversi da AWS, quindi posso spiegare la mia esperienza con AWS e come lo abbiamo integrato per l'utilizzo in produzione.


Scenario:

Disponiamo di centinaia di sensori ciascuno che invia 184-428 byte di dati ogni minuto al gateway locale che aggrega i dati e li archivia localmente e invia gli stessi dati al cloud AWS. Abbiamo anche sensori con involucro speciale che inviano i dati direttamente al cloud.

Servizi cloud

Utilizziamo AWS IoT , AWS S3, AWS DynamoDB, AWS Lambda, AWS API Gateway, AWS SNS, AWS Cloudwatch, AWS RedShift per creare l'intera soluzione. Fondamentalmente, questi non sono specifici per l'IoT (tranne AWS IoT) in quanto possiamo usarli per dispositivi mobili, Web.

Il gateway utilizza AWS IoT SDK per connettersi, autenticare e scambiare messaggi con AWS IoT utilizzando i protocolli MQTT, HTTP o WebSocket (stiamo usando il nodo JS SDK che si connette tramite MQTT). Siamo broker MQTT localmente sul gateway del dispositivo e collegandoli all'endpoint AWT IoT da lì eseguiamo controlli istantanei sui dati ricevuti (utilizzando il motore delle regole, funzioni AWS Lambda) e li memorizziamo nell'archiviazione DynamoDB in S3, Glacier (l'archiviazione è fatta senza scrivere una sola riga di fine semplicemente usando i trigger AWS per memorizzare i dati).


6

È solo per uso sperimentale o di prova ma forse cambierà in futuro.

Quindi il mio suggerimento è di usare MQTT , più precisamente la sua implementazione Mosquitto . Ospitano un broker di test al quale è possibile connettere i clienti abbonati ed editori. ( Ecco una guida sul processo di installazione su Windows 7. )

Nota quanto segue:

Sei libero di usarlo per qualsiasi applicazione, ma per favore non abusare o fare affidamento su di esso per qualcosa di importante. Dovresti anche costruire il tuo client per far fronte al riavvio del broker.

Ma fondamentalmente puoi pubblicare i dati di temperatura su questo broker.

Sul lato abbonato-client ho recentemente utilizzato questa applicazione Android . Si tratta di un'applicazione molto semplice, ancora in fase di sviluppo ma a scopo di test è davvero eccezionale. I messaggi ricevuti vengono visualizzati su una dashboard, niente di speciale solo i valori nudi.

Ho iniziato a utilizzare entrambi questi come prima fase di un processo di apprendimento MQTT e ho trovato entrambi ottimi per i principianti.


1
MQTT non sarebbe una soluzione più adatta in un contesto LAN? Per problemi come privacy / sicurezza / multiutente?
urnenfeld,

@urnenfeld MQTT può supportare il tuo sito Web, l'app mobile e i requisiti "altro dispositivo" in quanto puoi iscriverti con tutti loro. Inoltre, in futuro vorresti inviare dati da altri dispositivi e non solo la temperatura, quindi la capacità multiutente è una buona IMO anche se si tratta solo di una singola rete di abbonati multi publisher. Anche la sicurezza e la privacy dovrebbero essere sempre un problema. Per quanto riguarda la LAN, forse si adatta di più, ma se ti prendi cura della sicurezza potresti rendere il tuo broker disponibile ovunque, non un esperto in materia.
Bence Kaulics il

1
Ehm, questo broker di test è un broker di test, quindi non dovrebbe essere usato per un'applicazione in esecuzione. Ma l'idea è qui: puoi aprire la porta del tuo broker MQTT dal tuo firewall e connetterti ovunque.
Goufalite,

Mi dispiace ma OP vuole archiviare i dati, MQTT è solo un messenger ma è possibile utilizzarlo per inviare dati a un server dedicato. Per recuperare un valore, il client deve inviare una query a MQTT per recuperare il valore tramite una pubblicazione. MQTT è fantastico ma un servizio web ha un posto migliore qui ...
Goufalite

@Goufalite Sì, la memorizzazione dei dati è più complicata.
Bence Kaulics,

5

Ci sono due componenti a questo:

  1. Come vuoi che vengano archiviati i tuoi dati? Non esiste un modo reale per creare un servizio dati "generico" che soddisfi davvero tutte le esigenze. Quello che vuoi è chiamato "Database di serie storiche" , e ce ne sono centinaia perché ogni dettaglio di come memorizzi i dati conta su larga scala. (Se non si è su larga scala, archiviarlo in qualsiasi vecchio database, funzionerà per un po '.)

    Ogni database delle serie temporali è stato scritto perché gli altri non hanno fatto esattamente come volevano. Ad esempio, considera in che modo Graphite memorizza i suoi dati: ogni metrica (ad esempio la temperatura di una fonte) è memorizzata in un file di dimensioni fisse. Indipendentemente dalla frequenza con cui invii le metriche o da quanto tempo le invii, il file ha una dimensione costante.

    Il rovescio della medaglia è che i dati più vecchi hanno una risoluzione inferiore e dopo un intervallo prestabilito si definiscono (come 1 anno) i dati vengono eliminati. Ma il lato positivo è che è altrettanto veloce rappresentare graficamente un giorno come un anno e le metriche non aumentano di dimensioni nel tempo.

    In altri sistemi di archiviazione, la generazione di un grafico per un anno potrebbe comportare il recupero di milioni di punti dati e potrebbe richiedere enormi quantità di archiviazione dei dati.

    Il grande svantaggio di Graphite è che ogni metrica crea un nuovo file, quindi se hai metriche dinamiche (diciamo che le caselle cloud vanno e vengono), potrebbe non essere una buona scelta.

    In contrasto con Prometheus , dove le metriche vengono archiviate principalmente per tempo. Puoi avere molte metriche dinamiche, e va bene. Ma non provare a memorizzare quelle metriche a lungo termine, ci vorrà un'eternità per tornare indietro e leggerle.

    Nessuna taglia si adatta a tutti.

    PS Graphana è un modo eccellente per visualizzare i tuoi dati. Ha plug-in per la maggior parte dei database di serie storiche.

  2. Chi memorizzerà i tuoi dati? Ci sono migliaia di posti come quelli che hai menzionato. È così facile creare un DB di serie temporali nel cloud, ma è DAVVERO difficile fare soldi con esso. La maggior parte di queste aziende fallirà dopo un po 'o inizierà a ridurre i prezzi. (Anche mantenere costanti i prezzi è una riduzione dei prezzi, poiché il costo dell'elaborazione è in costante calo.) Molte volte, scoprono di non poter attrarre tanti nuovi clienti come dovrebbero, quindi cercano di aumentare i prezzi (con il pretesto di di cambiare il loro modello di prezzo). Si scopre che costa MOLTO denaro per memorizzare i dati di tutti ...

    Raccomando l'hosting automatico o utilizzo un provider cloud affidabile come AWS CloudWatch . (Costoso se hai molte metriche, ma gratuito per meno di 50 metriche!)


L'idea era quella di ottenere un insieme del meglio di quelle "migliaia di posti". Ho già raccolto una raccolta (anche fatta mia) che pubblicherò qui qualche volta
urnenfeld,

3

uBeac è un nuovo strumento di visualizzazione freeware che abbiamo sviluppato ed è la versione Beta. Non è open source, ma completamente gratuito da usare.

Puoi definire un gateway e otterrai un URI univoco. È possibile impostare l'URI nel gateway o nel dispositivo a cui inviare i dati HTTP / MQTT.

Queste sono alcune delle sue caratteristiche:

  • Team, costruzione, definizione della planimetria
  • Visualizzazione dei dati in tempo reale
  • Design del dashboard personalizzato utilizzando diversi widget
  • Definire tipi di sensore, unità e prefissi Visualizzazione della mappa
  • ...

Supporta anche il formato di dati Json generico e diversi gateway predefiniti. Se non si desidera utilizzare formati di payload predefiniti, sono aperti per sviluppare l'elaborazione personalizzata del payload.


Ciao @Amir, finora abbiamo notato che le tue risposte sono duplicate l'una dell'altra e stanno promuovendo il tuo prodotto. Rispondere dove il tuo prodotto è rilevante va bene, ma assicurati di leggere le linee guida di autopromozione nel centro assistenza. È anche una buona idea personalizzare le risposte alla domanda in questione anziché pubblicare un testo identico per garantire che tu stia effettivamente rispondendo alla domanda in modo completo piuttosto che promuovere il tuo prodotto. Grazie.
Aurora0001

1

Sono sorpreso che nessuno qui menzionato Dweet . Questo è un modo super semplice e super divertente per far comunicare le cose. Dovresti sicuramente provarlo, perché ehi, è gratis!


1
È stato infatti proposto, ma la moderazione l'ha rimosso. Una delle cose interessanti di questo servizio è che non è nemmeno necessario registrarsi e mostrano una rappresentazione dei tuoi dati. Per contro, i tuoi dati sono piuttosto pubblici :)
urnenfeld,

0

flespi offre servizi cloud gratuiti e commerciali:

Dichiarazione di non responsabilità obbligatoria: sto lavorando per l'azienda che sviluppa la piattaforma Flespi. Mentre ho fatto del mio meglio per rimanere obiettivo, come sempre su Internet, per favore ricontrolla tutte le informazioni in questa risposta per escludere distorsioni che potrebbero influenzare la tua decisione.


Ancora una volta, si prega di dichiarare qualsiasi connessione a un servizio quando lo si consiglia (ad esempio, che si lavora per Flespi)
hardillb
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.