Plataforma IoT - Como prototipar nossas ideias (Parte 1)

Neste artigo introdutório queremos apresentar o conceito aplicado à plataforma de IoT, os principais recursos que devemos prestar atenção na hora da escolha para sua aplicação, bem como algumas opções de mercado (de código aberto) para a prototipação.

 

O termo "a Internet das Coisas" foi usado pela primeira vez por Kevin Ashton, em 1999, no RFID forum para uma multidão de empresas no contexto da gestão da cadeia de fornecimento com itens de identificação por rádio frequência (RFID) ou com código de barras (coisas) no intuito de uma maior eficiência e controle em tempo real.

 

Logo em seguida, em uma de suas entrevistas, Kevin Ashton disse: “Se tivéssemos computadores que soubessem tudo o que havia para saber sobre as coisas - usando dados que eles coletavam sem qualquer ajuda nossa - poderíamos rastrear e contar tudo e reduzir muito o desperdício, perda e custo. Saberíamos quando as coisas precisavam ser substituídas, consertadas ou recuperadas, e se eram frescas ou passadas.”

 

No início achavamos que estas palavras eram futuristas demais. Porém, a cada dia que passa, temos a plena convicção de que Internet das Coisas (IoT) é o futuro da tecnologia mundial que auxiliará a inteligência artificial (IA) a controlar e entender as coisas de uma maneira muito melhor. 

 

O Gartner prevê que até 2020, 95% de todos os novos produtos usarão a tecnologia IoT.

 

O que é Plataforma IoT?

 

Imagine que uma pessoa que necessita coletar dados remotamente, monitorar e gerenciar todos estes dispositivos. Como ela faria tudo isso sem conectá-los à rede local ou até mesmo à Internet? 

 

A proposta das inúmeras plataformas de IoT é fornecer uma infinidade de recursos e conjuntos de componentes que ajudarão a desenvolver um único sistema capaz de realizar estas funções. Porém, a criação de uma solução IoT para uma empresa depende do host da plataforma IoT e da qualidade de suporte.

 

Muitas delas diponibilizam estes recursos de forma limitada para testes em clientes (por exemplo: máximo de 10 dispositivos conectados, tempo de processamento ativo, quantidade de dados transmitos / recebidos).

 

Um sistema IoT completo requer os seguintes requisitos:

 

Hardware como sensores ou dispositivos

com a tarefa de coletar os dados do ambiente e executar ações (os dispositivos interconectados podem ter uma representação física ou virtual).

Conectividade

com a tarefa de transmitir os dados e de receber comandos da nuvem. Para alguns sistemas de IoT, essa ponte entre o hardware e a nuvem pode ser um roteador ou um gateway na rede (uma rede complexa, adaptável e com autoconfiguração que interconecta os dispositivos à Internet usando protocolos de comunicação padrão).

Software instalado na nuvem

com a tarefa de analisar os dados coletados e processar a tomada de decisão definida pelo cliente.

Interface de usuário

com a tarefa de proporcionar a interação do usuário. Pode ser uma interface da Web, em que os dados coletados são representados como números ou gráficos, ou pode ser um aplicativo móvel instalado em um smartphone para interpretar dados e emitir alertas para os usuários finais, dependendo dos ambientes do dispositivo.

 

 

De uma forma geral, as plataformas IoT facilitam a conectividade entre sistemas IoT (gerenciando a comunicação, o fluxo de dados dos dispositivos e os serviços disponíveis para análise de resultados na aplicação desenvolvida).

 

Figura 1* Arquitetura de uma solução IoT

 

 

* figura retirada do site https://www.softwaretestinghelp.com/best-iot-platforms/

 

Tipos de plataformas IoT existentes no mercado

 

Essencialmente, quatro tipos de plataformas são ofertados no mercado de internet das coisas:

 

Tabela 1 Tipos de plataformas IoT

End-to-end

Facilitam o manuseio de milhões de conexões simultâneas de dispositivos, fornecendo ferramentas de hardware, software, conectividade, segurança e gerenciamento de dispositivos. Além disso, essas plataformas fornecem atualizações de firmware OTA (over the air), conectividade na nuvem e gerenciamento / monitoramento de dispositivos. 

Conectivity

Fornecem soluções de conectividade de baixo custo geralmente para tecnologias 802.11(Wi-Fi) e celular (3G, 4G, LTE, etc).

Cloud

Reduzem a complexidade de construir pilhas de rede complexas e fornecem recursos de back-end para o monitoramento de dispositivos.

Data

Fornecem inúmeras ferramentas para roteamento de dados e facilitam o gerenciamento e a visualização para a tomada de decisão usando ferramentas de análise de dados, banco de dados, etc.

 

Principais fatores para a escolha da plataforma IoT

 

Com tanta oferta no mercado, quais os principais fatores que devemos considerar na seleção da melhor plataforma que se adequa ao nosso produto? 

 

Tabela 2 Fatores para avaliar uma plataforma IoT

 

Escalabilidade

A plataforma de IoT deve ser escalável o suficiente para acomodar as necessidades crescentes. Ela deve suportar crescimento dinâmico, tempo de atividade 24×7 e backup eficiente para evitar todos os tipos de erros.

Confiabilidade

A plataforma IoT deve ter a capacidade de lidar com Failover(outro servidor assume um determinado serviço se o principal estiver com problemas), ter opções de recuperação e de manter o sistema principal funcionando sem nenhum problema. 

É muito importante que todo usuário final preste atenção à confiabilidade da plataforma, que envolve uma combinação de parâmetros ligados à arquitetura, tráfego / processamento dos dados com a segurança necessária.

Personalização

Além de customização para a iteração com o usuário final, a plataforma IoT deve suportar a integração com os diversos serviços em nuvem (tais como: APIs / bibliotecas de integração com outras plataformas para aprimorar a funcionalidade principal do sistema com base nos requisitos definidos pelo cliente).

Operações

As operações da plataforma IoT não devem ficar ocultas; em vez disso, o usuário final deve ter acesso a interface que forneça todos os detalhes com relação às estatísticas do sistema, informações de hardware e módulos ou serviços.

Protocolos

Além dos inúmeros protocolos disponíveis, o mais utilizado no desenvolvimento de aplicações IoT é o MQTT e, quase todos os provedores de serviços em nuvem usam deste padrão como principal canal de comunicação da nuvem em os dispositivos (por exemplo: o Microsoft Azure, o Amazon AWS, o Google Cloud, etc...). 

Além dele, é interessante oferecer suporte à API sobre WebSockets, REST, CoAP, JSON e, XML.

Suporte de hardware

É muito importante que o hardware seja de baixo custo e que viabilize conexões usando um ou mais protocolos já mencionados anteriormente. Em geral, os sistemas devem ser flexíveis e poderosos o suficiente para executar programas escritos em qualquer linguagem.

Tecnologia de nuvem

A plataforma de IoT deve ser flexível o suficiente para suportar todas as operações sem nenhum problema, seja na nuvem, no local ou híbrido.

Suporte técnico

A plataforma de IoT deve ter um forte suporte técnico de back-end, e os provedores de serviços devem garantir a atualização regular da plataforma com todas as atualizações básicas, patches de segurança e correções de bugs.

Arquitetura de sistemas

A plataforma de IoT deve implantar estruturas, ferramentas e linguagens bem suportadas e de nível de produção, tornando a plataforma fácil de operar e flexível o suficiente para suportar todos os tipos de implementações personalizadas.

Segurança

Esse é outro parâmetro significativo para uma plataforma IoT. O provedor de serviços deve oferecer comunicação baseada em SSL / TLS com dispositivos e aplicativos, além de autenticação para dispositivos e usuários. É muito importante facilitar a comunicação criptografada e a plataforma deve ter recursos de autorização. Deve ser seguro o suficiente para defender os dados do usuário final de todos os tipos de backdoors, ataques DDoS, vulnerabilidades do site, malware e até mesmo rootkits.

Despesas operacionais

Ao avaliar uma plataforma de IoT, o usuário final deve considerar parâmetros como pagamento por nó ou, por dispositivo ativo ou, por mensagens, recursos, suporte, etc...

E para o mundo Maker? Quais as opções de Plataforma IoT?

 

A seguir, temos algumas sugestões de plataformas de Internet das coisas de código aberto. A maioria delas com conjuntos de componentes que ajudam a configurar / gerenciar os dispositivos conectados, disponibilizam APIs para integraçao alto nível:

 

ARM PELION

 

 

A ARM Pelion consiste em três serviços principais de IoT que podem ser combinados ou usados ​​separadamente com base nos requisitos do produto. O gerenciamento de conectividade, dispositivos e dados se dispoem a resolver os desafios comuns à maioria dos projetos de IoT, 

 

Recursos principais do ARM Pelion

 

  • Permite que você se concentre na lógica de negócios e no desenvolvimento do projeto (disponibilizando recursos de segurança, flexibilidade de serviços de conectividade e gerenciamento de dados na aplicação).
  • Com pequenas mudanças no código, é possível testar sua implementação nos mais variados fabricantes Tem como principal prConectividade multiprotocolo e ponte de protocolo 
  • Remove a complexidade no desenvolvimento de aplicação para IoT com ofertas de serviços para conectividade, dispositivos e gerenciamento de dados.
  • Pussui suporte e flexibilidade para uma vasta lista de dispositivos, drivers para camada de transporte e rede (HTTP RESTful, MQTT, LwM2M, etc...), serviços de processamento na nuvem e qualquer tipo de dados.
  • Método de segurança em suas implantações de IoT de dispositivo para dados

 

SiteWhere

 

 

A SiteWhere é uma plataforma de capacitação de aplicativos de código aberto de força industrial para a Internet of Things (IoT). Ele fornece uma infraestrutura baseada em microsservidores com os principais recursos necessários para criar e implantar aplicativos IoT.

 

Recursos principais do SiteWhere

 

  • Executar várias aplicações em uma única instância do SiteWhere.
  • Spring é o framework de configuração principal.
  • Conecta dispositivos com MQTT, AMQP, Stomp.
  • Possibilita a adição de dispositivos por meio de autorregistro (via serviços REST).
  • Integra-se a estruturas de terceiros para desenvolvimento desenvolvimento alto nível.
  • O armazenamento de banco de dados padrão é o MongoDB
  • Eclipse Californium Framework para mensagens CoAP
  • InfluxDB para armazenamento de dados de eventos
  • Grafana para visualizar dados do SiteWhere
  • HBase para armazenamento de dados não relacionais

 

Thingspeak

 

 

A ThingSpeak™ é um serviço de plataforma de analítica IoT que permite agregar, visualizar e analisar fluxos de dados ao vivo na nuvem. Ele fornece visualizações instantâneas de dados postados por seus dispositivos para a plataforma.

Vale lembrar que as gratuitas oferecem uma experiência totalmente funcional no ThingSpeak, com limites para determinadas funcionalidades. 

 

Recursos principais do ThingSpeak

 

  • Configure facilmente dispositivos para enviar dados para o ThingSpeak usando protocolos IoT populares (RESTful and MQTT APIs).
  • Com a capacidade de executar o código MATLAB® no ThingSpeak.
  • Capacidade de realizar a análise e o processamento on-line dos dados em tempo real.
  • Agregar dados sob demanda de fontes de terceiros.
  • Use o poder do MATLAB para entender seus dados de IoT.
  • Execute sua análise da IoT automaticamente com base em agendamentos ou eventos.
  • Prototipar e construir sistemas de IoT sem configurar servidores ou desenvolver software da web.
  • Atue automaticamente em seus dados e comunique-se usando serviços de terceiros, como Twilio® ou Twitter®.

 

DeviceHive

 

 

A DeviceHive é outra plataforma de IoT de código aberto, rica em recursos, que é distribuída sob a licença do Apache 2.0. O DeviceHive está livre para usar e modificar. Ele fornece opções de implantação do Docker e do Kubernetes. Você pode fazer o download e usá-lo com a nuvem pública e privada e também dimensionar uma única máquina virtual para o cluster de nível corporativo.

 

Recursos principais do DeviceHive

 

  • Integração direta com Alexa. 
  • Painel de visualização customizável.
  • Personalize o comportamento do DeviceHive executando seu código JavaScript personalizado. 
  • Ele suporta as soluções Big Data, como ElasticSearch, Apache Spark, Cassandra e Kafka, para processamento em lote e em tempo real. 
  • Conecte qualquer dispositivo via API REST, WebSockets ou MQTT. 
  • Suporte a Apache Spark e Spark Streaming. 
  • Suporta bibliotecas escritas em várias linguagens de programação, incluindo bibliotecas Android e iOS.
  • Ele permite executar análises em lote e aprendizado de máquina sobre os dados do dispositivo.

 

MainFlux

 

 

A Mainflux é uma empresa de tecnologia que oferece tecnologia end-to-end, open-source de plataforma IoT sem patentes, com ecossistema interoperável de componentes plug and play e consultoria serviços para as camadas de software e hardware para IoT.

A sua plataforma de nuvem IoT é moderna, escalável e segura, de código aberto e livre de patentes, escrita em Go.

 

Recursos principais do MainHive

 

  • Conectividade multiprotocolo e ponte de protocolo (HTTP RESTful, MQTT, WebSocket e CoAP) e integração de rede LoRaWAN.
  • Gerenciamento de dispositivos e atuallizações via OTA.
  • Controle de acesso refinado.
  • Suporte de armazenamento (Cassandra, InfluxDB e MongoDB).
  • Implantação baseada em contêiner usando o Docker e o Kubernetes.
  • SDK - conjunto de bibliotecas cliente para muitas plataformas HW em diversas linguagens de programação: C / C ++, JavaScript, Go e Python.
  • Arquitetura responsiva e escalável baseada em um conjunto de microserviços.

 

ThingsBoard

 

 

A ThingsBoard é uma plataforma de IoT de código aberto para coleta de dados, processamento, visualização e gerenciamento de dispositivos (com suporte a implantações na nuvem e local). O ThingsBoard combina escalabilidade, tolerância a falhas e desempenho para que você nunca perca seus dados.

 

Recursos principais do ThingsBoard

 

  • Visualização de dados em tempo real e controle remoto de dispositivos.
  • Widgets personalizáveis ​​para painel (dashboards)
  • Regras personalizáveis, plugins, widgets e implementações de transporte 
  • Permite monitorar os atributos do dispositivo do lado do cliente e do lado do servidor. 
  • Os protocolos padrão suportados para fornecer conectividade de dispositivo são MQTT, CoAP e HTTP e suportam implementações na nuvem e no local com criptografia de transporte.

 

DSA - Distributed Services Architecture

 

 

A Distributed Services Architecture (DSA) é uma plataforma de IoT de código aberto que facilita a intercomunicação de dispositivos, a lógica e os aplicativos em todas as camadas da infraestrutura da Internet das Coisas. O objetivo é unificar os dispositivos, serviços e aplicativos diferentes em um modelo de dados em tempo real estruturado e adaptável.

 

Recursos principais do DSA - Distributed Services Architecture

 

  • Construir uma comunidade de fabricantes, fabricantes e provedores de soluções que contribuirão para uma biblioteca cada vez maior de Links de Serviços Distribuídos.
  • Simples interação para o ciclos de autorização M2M
  • Conectividade multiprotocolo e ponte de protocolo (HTTP RESTful, MQTT, WebSocket)
  • Suporte à integração de hardware: Dreamplug, Beaglebone, PI de framboesa, Android DSLink, OS X DSLink, Windows DSLink e nix DSLink

 

Existem plataformas IoT Nacionais?

 

Knot

 

 

A KnoT é uma plataforma criada pelo departamento de pesquisa para Internet das coisas do instituto CESAR de software livre e hardware (baixo custo) para IoT. Seu objetivo principal é preencher a lacuna entre as plataformas existentes de IoT de hardware e software, criando recursos para conectá-los e integrá-los facilmente. 

 

Recursos principais da KNoT

 

  • O KNoT também é multiprotocolo, para a camada física, de enlace de dados, de rede e de transporte, permitindo que cada aplicativo selecione a pilha de rede que atenda às suas necessidades.
  • Todos os softwares e hardwares KNoT disponíveis possuem uma licença permissiva de código aberto.
  • A plataforma sugere a implementação de nuvem distribuída (o Gateway recebe os dados dos dispositivos, processa e permite a sincronização hierárquica com outros dispositivos ou com os outros serviços desenvolvidos na aplicação).
  • A plataforma define um modelo de dados semânticos na camada de aplicação (Todos os aplicativos na plataforma sabem o significado dos dados uns dos outros).
  • O KNoT Gateway atua como um proxy que traduz os dados dos dispositivos para o JSON ou XML usado na plataforma Cloud.
  • O Gateway também tem uma aplicação rodando em nuvem e local onde os dados coletados recentemente podem ser acessados ​​diretamente.

 

Dojot

 

 

A Dojot é uma plataforma criada pelo Centro de Pesquisa e Desenvolvimento em Telecomunicações (CPqD) e surgiu com uma proposta open source, para possibilitar a rápida criação de protótipos de soluções, fornecendo recursos fáceis de usar, escaláveis e robustos com conteúdo local voltado às necessidades brasileiras.

 

Recursos principais da Dojot

 

  • APIs abertas tornando o acesso fácil das aplicações aos recursos da plataforma.
  • Armazenamento de grandes volumes de dados em diferentes formatos.
  • Conexão e coleta de dados de dispositivos.
  • Construção de fluxos de dados e regras de forma visual, permitindo a rápida prototipação e validação de cenários de aplicações IoT.
  • Processamento de eventos em tempo real aplicando regras definidas pelo desenvolvedor.
  • A plataforma pode ter vários serviços rodando em paralelo (iot-agents) e, cada um deles especializado em um protocolo específico (MQTT / JSON, CoAP / LWM2M e HTTP / JSON).
  • Configuração dos dispositivos IoT por meio da GUI ou diretamente usando as APIs REST fornecidas pelo Gateway de API.
  • Controle de distribuição de mensagens para os serviços que necessitam consumir ou transmitir dados coletatos (Kafka + DataBroker).
  • APIs disponíveis para o serviço de autorização de usuário, controle de fluxo de processamento de dados em conjunto (flowbroker), para controle dos eventos nos bancos de dados (history), interface GUI completa, gerenciamento da capacidade de armazenamento e processamento (Elastic Service controller).

 

E qual a plataforma IoT que se adequa para suas ideias saírem do papel?

 
Deixe seu comentário e aguardem as próximas seções deste artigo, onde iremos testar os recursos apresentamos e avaliar a sua performance. 

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Leandro Santos
Engenheiro Elétrico com sólida experiência em desenvolvimento de circuitos eletrônicos de baixa e alta complexidade para hardware e firmware (linguagem C, VHDL e Verilog) em sistemas embarcados.Atualmente trabalha com prospecção e benchmark para soluções em IoT, desenvolvimento de MVPs para conectividade (IEEE 802.11, Bluetooth/BLE e LPWAN), pesquisa de tendências tecnológicas para novas oportunidades de produtos / clientes, análise de viabilidade técnica e comercial dos produtos.É também entusiasta do movimento maker, da cultura DIY, ama compartilhar o conhecimento (principalmente com as crianças e jovens) e músico católico.

11
Deixe um comentário

avatar
 
5 Comment threads
6 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
6 Comment authors
Leandro SantosRogerio MoreiraFábio CabriniLeandro SantosRodrigo Duarte Pechoneri Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Rogerio Moreira
Membro

Leandro, excelente artigo. Parabéns. Sugiro incluir a Plataforma Tago, muito utilizada no Brasil.

Fábio Cabrini
Visitante
Fábio Cabrini

Poderia incluir o Helix SandBox desenvolvido pela escola politécnica da USP e homologado pela Fiware Foundation. https://gethelix.org

Leandro Santos
Visitante
Leandro Santos

Obrigado pela sugestão, Fábio Cabrini!
Incluirei também a Helix SandBox na lista.
Um grande abraço...
Inteh...

Fábio Cabrini
Visitante
Fábio Cabrini

Oi Leandro, fico a disposição para ajudar nos detalhes do Helix. A plataforma foi desenvolvida para pesquisa em aplicações para smart environments, IoT, desenvolvimento de PoCs e MVPs. Vamos realizar um hackaton no Peru no fim deste mês e apresentaremos um paper com a descrição da arquitetura do Helix e dois PoCs que utilizam o Helix como back-end desenvolvidos em numa parceria entre a USP e o IPT para cidades inteligentes. Em breve esse artigo estará disponível no IEEExplorer.

Rodrigo Duarte Pechoneri
Membro

Parabéns pelo artigo, muito interessante.

Leandro Santos
Visitante
Leandro Santos

Muito obrigado, Rodrigo Pechoneri!

Alexandre Junqueira
Visitante
Alexandre Junqueira

Olá Leandro, boa tarde. muito interessante o artigo -- fica a sugestão de acrescentar a Konker (http://www.konkerlabs.com) nessa sua lista - que é uma plataforma open-source feita aqui no Brasil tb.

Leandro Santos
Visitante
Leandro Santos

Muito obrigado pela sugestão, Alexandre Junqueira!
Recebi indicações de outros Makers sobre esta plataforma e, já estou mapeando os próximos passos deste artigo.
Pode ter certeza que a Konkerlabs será incluída nesta avaliação.
Um grande abraço...
Inteh...

Angelo José Roncali Da Silva
Visitante
angelo jose roncali da silva

Excelente artigo, já no aguardo dos próximos!!

Leandro Santos
Visitante
Leandro Santos

Muito obrigado, Angelo Silva!
Já estou tralhando na parte 2 e, em breve, teremos novidades...