Quais serviços de IoT estão disponíveis para armazenamento / envio / publicação de dados genéricos na nuvem?

16

Quais serviços de IoT estão disponíveis para armazenamento / envio / publicação (e operações opostas) de uma pequena quantidade genérica de dados na nuvem?

Estou procurando, por exemplo, um serviço em que um dispositivo possa armazenar um valor na nuvem. E alguma outra entidade (outro dispositivo, um site com algum código JS, um servidor da web, um aplicativo móvel) pode recuperar esse valor.

Pode ser algum tipo de comunicação assíncrona, por exemplo, para armazenar e recuperar algo tão pequeno quanto um par de chave e valor, <255 bytes, um número inteiro, uma sequência, no máximo um pequeno objeto JSON. O serviço poderia oferecer uma API REST (para que pudesse ser acessada por uma grande variedade de idiomas) com algum token para autenticação e a chave e o valor a serem armazenados.

Um exemplo detalhado de um caso de uso é:

Há um sensor de temperatura em casa e quero que ele armazene o valor na nuvem (em algum lugar fora de casa ). Dessa forma, eu poderia acessá-lo, independentemente de minha conexão doméstica estar desativada ou não. Além disso, isso evitaria manter e manter um servidor dedicado + portForwarding + DynamicDNS.

Até agora não consegui encontrar algo assim, mas, ocasionalmente, encontrei alguns exemplos do que pretendo descrever:

Que outras alternativas similares (livres / abertas) existem?

Urnenfeld
fonte
@BenceKaulics Acho que os dois casos de uso se aplicariam. A solução profissional pode implicar mais padronização e confiabilidade. A solução experimental pode ser um projeto de código aberto interessante para participar.
precisa saber é o seguinte
Detesto ser um esporte estragado, mas não vejo isso como uma solicitação de IoT, mais como serives da Web, para os quais temos outros sites. Use o que quiser - seu próprio site, hospedagem gratuita, Amazon Web Services, etc. Você realmente não nos disse o que estava tentando alcançar. Por exemplo, você deseja codificar algum software de servidor? Sem detalhes, apenas um sentimento quente e confuso, por isso será muito difícil responder.
Mawg diz que restabelece Monica
2
@Mawg Possui a etiqueta de serviço da web (que eu não criei). O caso de uso é focado na IoT, como são as referências fornecidas. Ele solicita serviços disponíveis, embora isso possa ser alcançado por um simples php + db, a intenção não é reinventar a roda e conhecer quais serviços a comunidade da IoT está ciente. Mas deixe-me saber em qual comunidade você acha que se encaixa melhor.
precisa saber é o seguinte
É por um triz. Admito que às vezes poste no Stack Overflow, onde outro site seria mais correto. MAS, então, tem um público maior, então tenho mais chances de resposta. Há sempre um pouco de sobreposição com outros sites e teremos que resolver isso à medida que avançamos. +1 por não se ofender e agora você conhece o site de segurança. A questão * ainda pode usar um pouco mais de detalhes, no entanto :-)
Mawg diz que restabelece Monica em
2
@ Mogg, claro, sem ofensa :). Eu realmente passei algum tempo pensando onde colocar a pergunta ... Tentei moldar mais a questão antes. Vamos ver agora, adicionei o caso de uso exato e as soluções provisórias.
precisa saber é o seguinte

Respostas:

10

Veja estes serviços:

Ambos os serviços aceitarão dados simples de chave / valor de um dispositivo. Acredito que os dois tenham bibliotecas prontas para importar para dispositivos Particle desde que você mencionou isso.

Rico
fonte
7

Muitos provedores de nuvem, como Amazon, Microsoft, Google, IBM etc., tentam atrair o espaço da IoT, oferecendo maneiras mais fáceis de enviar / armazenar / analisar dados de sensores em sua nuvem. Mesmo eles devem adquirir fornecedores de hardware para aumentar seu escopo na IoT.

Eu não usei nenhum serviço além da AWS, para poder explicar minha experiência com a AWS e como a integramos para uso na produção.


Cenário:

Temos centenas de sensores, cada um enviando 184-428 bytes de dados a cada minuto para o gateway local, que agrega os dados e os armazena localmente e envia os mesmos dados para a nuvem da AWS. Também temos sensores de caixa especial que enviam dados diretamente para a nuvem.

Serviços na nuvem

Estamos usando o AWS IoT , o AWS S3, o AWS DynamoDB, o AWS Lambda, o AWS API Gateway, o AWS SNS, o AWS Cloudwatch e o AWS RedShift para criar uma solução completa. Basicamente, eles não são específicos para a IoT (exceto AWS IoT), pois podemos usá-los para dispositivos móveis, na Web.

O gateway usa o AWS IoT SDK para conectar, autenticar e trocar mensagens com o AWS IoT usando os protocolos MQTT, HTTP ou WebSockets (estamos usando o nó JS SDK que se conecta via MQTT). Somos intermediários do MQTT localmente no gateway do dispositivo e os conectamos ao ponto de extremidade da AWS IoT, a partir da qual estamos executando verificações instantâneas dos dados recebidos (usando o mecanismo de regras, funções do AWS Lambda) e armazenando-os no arquivamento do DynamoDB no S3, Glacier (o armazenamento é feito sem escrever uma única linha de trabalho, apenas usando os gatilhos da AWS para armazenar dados).

bravokeyl
fonte
6

É apenas para uso experimental ou de teste, mas talvez isso mude no futuro.

Portanto, minha sugestão é usar o MQTT , mais precisamente sua implementação do Mosquitto . Eles hospedam um broker de teste ao qual você pode conectar seus clientes assinantes e editores. ( Aqui está um guia sobre o processo de instalação no Windows 7. )

Observe o seguinte:

Você é livre para usá-lo para qualquer aplicativo, mas não abuse ou confie nele para algo de importância. Você também deve construir seu cliente para lidar com a reinicialização do broker.

Mas, basicamente, você pode publicar dados de temperatura neste corretor.

No lado do assinante-cliente, recentemente usei esse aplicativo Android . É uma aplicação muito básica, ainda em desenvolvimento, mas para fins de teste é muito boa. As mensagens recebidas são mostradas em um painel, nada extravagante apenas os valores simples.

Comecei a usar esses dois como primeira etapa do processo de aprendizado do meu MQTT e achei ótimos para iniciantes.

Bence Kaulics
fonte
11
O MQTT não seria uma solução mais adequada em um contexto de LAN? Para problemas como privacidade / segurança / multiusuário?
precisa saber é o seguinte
@urnenfeld O MQTT pode oferecer suporte ao seu site, aplicativo móvel e requisitos de "outro dispositivo", pois você pode se inscrever com todos eles. Além disso, certamente você gostaria de enviar dados de outros dispositivos no futuro e não apenas de temperatura, para que a capacidade multiusuário seja boa para IMO, mesmo que seja apenas uma rede de assinante único de vários editores. Também segurança e privacidade sempre devem ser um problema. Quanto à LAN, talvez isso seja mais adequado, mas, se você cuidar da segurança, poderá disponibilizar seu corretor de qualquer lugar, não um especialista nesse assunto.
Bence Kaulics
11
Erm, este intermediário de teste é um intermediário de teste, portanto, não deve ser usado para um aplicativo em execução. Mas a idéia está aqui: você pode abrir a porta do seu broker MQTT a partir do firewall e conectar-se de qualquer lugar.
Goufalite
Sinto muito, mas o OP quer armazenar dados, o MQTT é apenas um mensageiro, mas você pode usá-lo para enviar dados para um servidor dedicado. Para recuperar um valor, o cliente deve enviar uma consulta ao MQTT para recuperar o valor por meio de uma publicação. MQTT é grande, mas um webservice tem um lugar melhor aqui ...
Goufalite
@Goufalite Sim, o armazenamento de dados é mais complicado.
Bence Kaulics
5

Existem dois componentes para isso:

  1. Como você deseja que seus dados sejam armazenados? Não existe uma maneira real de criar um serviço de dados "genérico" que realmente atenda a todas as necessidades. O que você deseja é chamado de "Banco de Dados de Séries Temporais" , e existem centenas deles porque todos os detalhes de como você armazena dados são importantes em escala. (Se você não estiver em escala, basta armazená-lo em qualquer banco de dados antigo, ele funcionará por um tempo.)

    Cada banco de dados de séries temporais foi escrito porque os outros não fizeram exatamente do jeito que queriam. Por exemplo, considere como o Graphite armazena seus dados: Cada métrica (por exemplo, temperatura de uma fonte) é armazenada em um arquivo de tamanho fixo. Não importa com que frequência você envie métricas ou por quanto tempo as envie, o arquivo é um tamanho constante.

    A desvantagem é que os dados mais antigos têm uma resolução mais baixa e, após um intervalo definido, você define (como 1 ano) que os dados são descartados. Mas o lado positivo é que é tão rápido representar graficamente um dia como um ano, e as métricas não aumentam de tamanho ao longo do tempo.

    Em outros sistemas de armazenamento, a geração de um gráfico por um ano pode envolver a busca de milhões de pontos de dados e exigir grandes quantidades de armazenamento de dados.

    A grande desvantagem do Graphite é que cada métrica cria um novo arquivo; portanto, se você tiver métricas dinâmicas (por exemplo, caixas de nuvens indo e vindo), talvez não seja uma boa opção.

    Compare isso com o Prometheus , onde as métricas são armazenadas principalmente por tempo. Você pode ter muitas métricas dinâmicas, e tudo bem. Mas não tente armazenar essas métricas a longo prazo, pois levará uma eternidade para voltar e lê-las.

    Nenhum tamanho serve para todos.

    PS Graphana é uma excelente maneira de visualizar seus dados. Possui plug-ins para a maioria dos bancos de dados de séries temporais.

  2. Quem vai armazenar seus dados? Existem milhares de lugares como os que você mencionou. É tão fácil criar um banco de dados de séries temporais na nuvem, mas é MUITO difícil ganhar dinheiro com isso. A maioria dessas empresas encerra suas atividades depois de um tempo ou começa a obter preços. (Mesmo mantendo seus preços estáveis ​​é a manipulação de preços - já que o custo da computação diminui constantemente.) Muitas vezes, eles descobrem que não conseguem atrair tantos clientes novos quanto pensam, e tentam aumentar os preços (sob o pretexto de de alterar o modelo de preços). Acontece que custa muito dinheiro para armazenar os dados de todos ...

    Eu recomendo a hospedagem automática ou use um provedor de nuvem respeitável como o AWS CloudWatch . Caro, se você tiver muitas métricas, mas gratuito por menos de 50 métricas!

BraveNewCurrency
fonte
A idéia era obter um conjunto dos melhores desses "milhares de lugares". Já reuni uma coleção (mesmo feito minha própria), que irá postar aqui algum tempo
urnenfeld
3

O uBeac é uma nova ferramenta de visualização de freeware que desenvolvemos e é a versão Beta. Não é de código aberto, mas é totalmente gratuito.

Você pode definir um gateway e obterá um URI exclusivo. Você pode configurar o URI no seu gateway ou dispositivo para o qual enviar dados HTTP / MQTT.

Estas são algumas das suas características:

  • Equipe, construção, definição da planta
  • Visualização de dados em tempo real
  • Design de painel personalizado usando diferentes widgets
  • Definir tipos, unidades e prefixos de sensores Visualização do mapa
  • ...

Ele suporta formato de dados Json genérico e gateway predefinido diferente também. Se você não deseja usar formatos de carga útil predefinidos, eles estão abertos para desenvolver seu processamento de carga útil personalizado.

Amir Pournasserian
fonte
Olá @Amir, percebemos que suas respostas até agora são duplicatas e estão promovendo seu produto. É bom responder onde seu produto é relevante, mas leia as diretrizes de autopromoção no centro de ajuda. Também é uma boa ideia adaptar suas respostas à pergunta em questão, em vez de postar texto idêntico para garantir que você esteja realmente respondendo à pergunta totalmente, em vez de apenas promover seu produto. Obrigado.
Aurora0001
1

Estou surpreso que ninguém aqui tenha mencionado o Dweet . Essa é uma maneira super simples e divertida de comunicar as coisas. Você deve com certeza experimentá-lo, porque ei, é grátis!

TheFreddyKilo
fonte
11
Foi realmente proposto, mas a moderação o removeu. Uma das coisas legais deste serviço é que você nem precisa se registrar e elas mostram algumas plotagens de seus dados. Em contrapartida, os dados é bastante público :)
urnenfeld
0

A flespi fornece serviços em nuvem gratuitos e comerciais:

Isenção de responsabilidade obrigatória: estou trabalhando para a empresa que desenvolve a plataforma flespi. Enquanto eu fiz o meu melhor para permanecer objetivo, como sempre na Internet, verifique todas as informações nesta resposta para descartar o viés que pode afetar sua decisão.

shal
fonte
Mais uma vez, por favor declarar qualquer ligação a um serviço quando recomendá-lo (por exemplo, que você trabalha para flespi)
hardillb