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?
fonte
Respostas:
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.
fonte
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).
fonte
É 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:
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.
fonte
Existem dois componentes para isso:
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.
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!
fonte
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:
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.
fonte
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!
fonte
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.
fonte