Guia prático para conectar o LabVIEW à IoT industrial

Visão geral

Conheça neste artigo técnico os três protocolos de comunicação mais comuns para conectar plataformas de desenvolvimento baseadas em nuvem em aplicações de IoT (Internet das Coisas). Você também encontrará informações sobre algumas das plataformas de desenvolvimento baseadas em nuvem para aplicações de IoT mais comuns, tais como Amazon Web Services, IBM Bluemix, PTC ThingWorx e Microsoft Azure. Além disso, veja como conectar um sistema embarcado da NI, como o CompactRIO, a essas plataformas baseadas em nuvem através do ambiente de desenvolvimento gráfico e aberto LabVIEW.

Conteúdo

A IoT mudará o mundo

A economia mundial mudará significativamente na próxima década à medida que novas aplicações que trabalham com a internet forem implementadas. Algumas dessas aplicações devem ser inovadoras e revolucionárias, além de representarem um grande impacto econômico. Isso afetará muitas indústrias e setores, como já observado em setores de consumo como hotéis (Airbnb) e táxi (Uber).

Essa tendência também é perceptível na indústria, por exemplo, a iniciativa da Alemanha com o termo Industry 4.0. Dentro do Industry 4.0 ou da Internet das Coisas Industrial (IIoT), o foco é na integração e em um melhor uso das tecnologias disponíveis. Nesse sentido, a indústria, as máquinas, os produtos e as pessoas estão sempre conectados digitalmente. Os fabricantes, por sua vez, cada vez mais estão produzindo produtos inteligentes e específicos para diferentes aplicações. O software em nuvem conecta os sistemas de TI da empresa ao mundo operacional, máquinas, dispositivos e sensores para controlar e otimizar o fluxo de produção.

Figura 1 – Arquitetura comum da IoT industrial: nós de fronteira inteligentes conectam sensores, atuadores e dispositivos aos sistemas do TI

Devido à redução do custo da conectividade, a adoção de dispositivos de processamento e sensores de IIoT tem crescido extraordinariamente. Os dados do sensor podem ser capturados e processados próximo às máquinas por um dispositivo inteligente interligado a uma rede, como um sistema de teste automatizado PXI ou CompactRIO. O dispositivo na fronteira pode enviar os dados em tempo real para o mundo virtual (plataforma de nuvem para TI), onde ele pode ser armazenado, monitorado, analisado ou acionado em operação.

O valor da IIoT não está na conectividade dos dispositivos, mas no que uma empresa desvenda a partir do streaming de dados que os dispositivos inteligentes oferecem. As plataformas de computação em nuvem e seus serviços ajudam a oferecer essa visão.

Muitos desafios importantes precisam ser considerados na implementação de uma solução de IoT. Desafios como padronização, interoperabilidade, tratamento, segurança e privacidade do Big Analog Data™. É importante estar ciente desses desafios e dar uma atenção especial à segurança. A segurança é um componente crucial em qualquer aplicação de IoT. Os dispositivos de IIoT devem impor uma política de segurança rígida e serem atualizados regularmente com os patches de segurança mais modernos. Para saber mais sobre as melhores práticas de segurança no CompactRIO e receber os anúncios de segurança mais recentes da NI, visite ni.com/support/security. Todas as plataformas de computação em nuvem enviam e recebem dados de modo seguro e usam métodos de autorização e autenticação sólidos, além de criptografia. A maioria também tem recursos de auditoria.

Computação em nuvem

Computação em nuvem se refere a um modo flexível de fornecer recursos de hardware, software ou dados via rede ou solicitação de um usuário. Isso se contrapõe à execução de uma aplicação de software em um computador local.

Figura 2 - Panorama dos elementos de computação em nuvem (fonte da imagem: Sam Johnston https://commons.wikimedia.org/wiki/File:Cloud_computing.svg)

 

A tabela abaixo mostra três níveis de serviço de computação em nuvem comumente encontrados.

SaaS

Software como serviço

Oferece um serviço empresarial completo. O provedor de serviço executa e gerecia toda a plataforma. Exemplos: Gmail, Salesforce.com

PaaS

Plataforma como serviço

Oferece uma plataforma. Você precisa criar e implementar sua própria aplicação em nuvem, aproveitando o run time e serviços que o fornecedor oferece. Exemplos: IBM Bluemix, Microsoft Azure, AWS IoT

IaaS

Infraestrutura como serviço

Oferece os componentes fundamentais, como hardware de servidor, recursos de rede e armazenamento. Você precisará instalar o sistema operacional e as aplicações. Exemplos: Amazon EC2 (uma máquina virtual que a Amazon oferece a você), IBM SoftLayer.

 

As nuvens podem ser implementadas como pública - todos os serviços são executados em um ambiente seguro hospedado na nuvem, onde os servidores podem ser compartilhados com outros - ou privada, que fica disponível apenas para a empresa do usuário e pode estar dentro ou fora das instalações. Além disso, as nuvens podem ser implementadas como híbridas, onde partes ficam nas instalações e outros serviços ficam na nuvem.

 

Protocolos de aplicação de IoT

Os protocolos de comunicação são responsáveis pela conectividade da rede ao servidor. Protocolos como Wi-Fi, Ethernet, Rede Celular e LoRaWAN são todos protocolos de comunicação que oferecem esse nível de conectividade. Os protocolos de aplicação ficam no topo deles para comunicar mensagens de uma aplicação específica.

Diversos padrões trabalham com a comunicação entre dispositivos e a nuvem. Como os requisitos da aplicação são diferentes, foram desenvolvidos protocolos específicos para IoT e, portanto, a confusão é compreensível. Os protocolos podem até ter diversas implementações, e as plataformas de IoT podem ter soluções de IoT exclusivas. Para oferecer uma solução universal, os dispositivos, as aplicações e as plataformas precisam ser interoperáveis. Os sistemas embarcados da NI oferecem uma solução excelente por serem abertos e flexíveis. Isso é obtido através do sistema operacional Linux Real-Time, suporte aos ambientes de programação gráfica LabVIEW e Eclipse C, além de diversos pacotes Linux disponibilizados através de um ecossistema vibrante.

Em alto nível, existem três casos de uso principais para os protocolos de aplicação: comunicação entre dispositivos (D2D ou M2M), dispositivo e servidor (D2S) e entre servidores (S2S). Os protocolos de aplicação de IoT têm diferentes níveis de comportamento em tempo real e outras características. Veja uma descrição geral na tabela abaixo.

Protocolos de aplicação comuns para conectividade de IoT

 

HTTP/HTTPS

WebSocket

DDS

MQTT

AMQP

Descrição

Transmite dados pela internet a partir de aplicações, websites e outros

Transmite dados pela internet a partir de aplicações, websites e outros

Barramento de comunicação para conectar máquinas inteligentes

Protocolo com limitações para coletar dados e transmiti-los a servidores e assinantes.

Sistema de fila para transferir mensagens de modo confiável entre aplicações e processos (servidores)

Caso de uso comum

Web

Web

D2D

D2S

S2S, (D2S)

Comportamento em tempo real

Não

Não

Sim, faixa de us–ms

Não, faixa de ms–s

Não, faixa de segundos

Mensagem

Solicitação/resposta

Solicitação/resposta

Barramento de dados

Publicar/registrar

Publicar/registrar

Transporte

TCP

TCP

TCP, UDP, memória compartilhada e outros

TCP

TCP

Segurança

Sim: HTTPS (SSL ou TLS)

Sim: wss:// (SSL/TLS)

Sim

Possível: SSL ou TLS

Sim: TLS ou SASL (camada de segurança e autenticação simples)

Suporte ao LabVIEW

Sim, nativo

Sim, via VI Package Manager (MediaMongrels)

Sim, via VI Package Manager (RTI)

Sim, implementações no VI Package Manager, LabVIEW Tools Network e GitHub

Implementações no VI Package Manager (LabbitMQ) e GitHub

Qualidade do serviço

Não

Não

Sim, mais de 20 níveis

Sim, 3 níveis

Sim

 

A próxima seção descreve os protocolos mais comuns, MQTT, AMQP e DDS, mais detalhadamente.

 

MQTT

O Message Queueing Telemetry Transport (MQTT) é um protocolo de conectividade para IoT. Ele é usado em aplicações com milhares de sensores, como o monitoramento do uso de energia e o monitoramento de oleodutos. O MQTT é eficiente em termos de largura de banda, bateria e recursos. Ele usa um modelo publicar/registrar. Os dispositivos de IoT publicam dados para um servidor, também conhecido com broker MQTT através do TCP como um tópico. Um cliente autorizado pode se registrar em qualquer tópico e receber o valor do broker conforme eles são publicados. O publicador (dispositivo) não precisa conhecer nenhum dos inscritos no tópico, o que torna o gerenciamento mais fácil no nível do dispositivo. O broker pode suportar várias conexões consecutivas de diversos dispositivos. Um tópico é uma sequência simples que pode ter níveis hierárquicos e suportar também caracteres especiais. Um exemplo de um tópico é GothamCityPlant/Building1/Pump7/Power. Os dados da mensagem são transmitidos no formato JSON e podem ser específicos para o serviço IoT da plataforma de nuvem.

 

Figura 3 - Dispositivos de fronteira enviam mensagens MQTT através da internet para um broker central que distribui as mensagens para assinantes autorizados

O MQTT suporta três níveis de qualidade de serviço:

  • QoS 0—No máximo uma vez
  • QoS 1—Pelo menos uma vez
  • QoS 2—Exatamente uma vez

 

O MQTT pode ser implementado usando chamadas HTTP padrão dentro do LabVIEW. As versões dessa implementação de NI Alliance Partners e da comunidade podem ser encontradas no LabVIEW Tools Network e GitHub. Veja aqui no GitHub uma versão de código aberto que implementa o TLS/SSL.

Para depurar as comunicações MQTT, um cliente MQTT pode ser instalado em um computador local. O MQTTfx é um cliente MQTT popular e gratuito e está disponível na página mqttfx.org/.

Existem diversos brokers MQTT para testar comunicação disponíveis na internet. Um dos mais conhecidos é o mosquitto. Para testar a comunicação, você pode publicar tópicos na página test.mosquitto.org. O broker mosquitto é um código aberto e pode também ser usado internamente para teste com o método sandbox ou uso na produção da comunicação MQTT.

AMQP

O Advanced Message Queuing Protocol (AMQP) é um protocolo de mensagem aberto que pode enviar mensagens transacionais entre servidores e de dispositivos para servidores e vice-versa. As vantagens do AMQP são a comunicação segura (os dados são recebidos de modo seguro exatamente uma vez no terminal receptor) e a interoperabilidade. O AMQP usa um broker para receber dados de um cliente. O cliente (ou publicador) então publica a mensagem para o broker, onde ela é processada e roteada para uma fila. Da fila, a mensagem é enviada para qualquer cliente que tenha se registrado nesses dados. O AMPQ foca em monitorar todas as mensagens e garantir que cada uma delas seja entregue conforme desejado, mesmo que um dispositivo esteja temporariamente desconectado. Os dispositivos que geram grandes quantidades de dados podem enviá-los para servidores AMQP, onde são então consumidos por receptores para análise e monitoramento. Um exemplo de aplicação para AMQP é a análise do comportamento de condução automotiva no centro de dados. Algumas plataformas de desenvolvimento em nuvem suportam a conectividade de dispositivos ao AMQP ou AMQP através do WebSocket. Os brokers AMQP de código aberto mais comuns que você pode encontrar são RabbitMQ, ActiveMQ e Kafka.

O RabbitMQ é uma biblioteca AMQP para o LabVIEW que pode ser instalada a partir do VI Package Manager. Veja disponível no GitHub uma implementação do cliente AMQP de código aberto.

 

DDS

O principal caso de uso do Data Distribution Service (DDS) é distribuir dados diretamente para outros dispositivos, embora ele também possa distribuir dados para sistemas empresariais e dispositivos móveis. As aplicações são encontradas em usinas eólicas, teste automotivo, monitoramento de ativos, defesa e física avançada. Muitas vezes, os dispositivos precisam de dados uns dos outros em tempo real medidos em milissegundos. Tudo isso precisa acontecer de modo seguro e geralmente com grandes fluxos de dados. O DDS oferece detalhes da qualidade do controle de serviço, com filtros, redundância e segurança configuráveis e seleciona exatamente onde cada dado deve ficar. Para fazer isso, o DDS usa uma comunicação de barramento entre dispositivos, o que permite fornecer dados a milhares de dispositivos.

O suporte do LabVIEW para DDS pode ser instalado através do VI Package Manager. O RTI oferece um tutorial excelente sobre o uso do DDS com o LabVIEW.

 

Plataformas de desenvolvimento em nuvem

Isenção de responsabilidade: A National Instruments não endossa nenhuma plataforma de nuvem. A intenção é dar uma breve introdução sobre as principais plataformas. Você deve fazer uma investigação minuciosa antes de decidir qual plataforma é mais adequada para sua aplicação.

Amazon AWS IoT

O Amazon Web Services (AWS) oferece uma infraestrutura de TI como computação em nuvem, armazenamento em base de dados, entrega de conteúdo e muito mais. AWS IoT é uma plataforma de nuvem gerenciada que permite que os dispositivos se conectem e interajam com outros serviços e aplicações de nuvem do AWS através de um mecanismo de regras. A plataforma AWS IoT oferece também um gateway de dispositvo e um documento JSON usado para armazenar e recuperar as informações de estado atual de algo (dispositivo, aplicativo etc), também conhecido como device shadows. O gateway de dispositivo é o serviço que gerencia a conectividade do dispositivo à plataforma AWS IoT e suporta os protocolos HTTP, WebSocket e MQTT. O Device shadows pode criar um dispositivo virtual que retém a informação de estado mais recente do dispositivo, mesmo quando ele está desconectado. Aplicações dentro do AWS podem ser transmitidas para o dispositivo virtual e quando o dispositivo volta a ficar on-line, o estado é sincronizado. O AWS oferece Kits de desenvolvimento de software (SDKs) de dispositivos de IoT de código aberto para ajudar a conectar dispositivos de hardware com a plataforma AWS IoT.

O AWS usa um mecanismo de regras para IoT que aplica uma sintaxe semelhante a SQL para selecionar os dados recebidos de um dispositivo e executar ações. O mecanismo de regras permite a criação de aplicações IoT que podem reunir, analisar, processar e atuar sobre os dados recebidos do dispositivo. O mecanismo de regras pode rotear as mensagens para os endpoints do AWS, como AWS Lambda (um serviço de computação para executar o código carregado), Amazon Kinesis (para processar um grande fluxo de dados em tempo real), Amazon S3 (um serviço simples de armazenamento), Amazon Machine Learning, Amazon DynamoDB e muito mais.

A NI oferece um toolkit gratuito através do LabVIEW Tools Network para conectar suas aplicações do LabVIEW diretamente aos serviços de IoT, AWS S3, SNS e SQS permitindo armazenamento na nuvem, notificações e muito mais.

 

IBM Watson IoT for Bluemix

Bluemix, a plataforma de desenvolvimento em nuvem da IBM, é uma PaaS. Com o Bluemix, você pode acessar o software da IBM para serviços como aplicações cogitivas, IoT, segurança, base de dados, armazenamento, segurança de "big data" e assim por diante.

Com o Watson IoT for Bluemix, uma aplicação se comunica com os dispositivos conectados e consome os dados recebidos desses dispositivos e gateways de dispositivos. O MQTT é usado para se comunicar com dispositivos e gateways. Os dispositivos podem se conectar de modo seguro ao Watson IoT usando o MQTT através do TLS.

O dispositivo precisa ser registrado com o Bluemix antes de realizar uma conexão MQTT com o broker MQTT da plataforma Watson IoT. As regras e a lógica para trabalhar com os dados podem ser definidas em qualquer uma das linguagens que o IBM Bluemix suporta, como node.js (Node-RED), Java, Python e outras.

O LabVIEW Tools Network contém um exemplo para conectar o CompactRIO e uma descrição detalhada do Watson IoT for Bluemix..

 

PTC ThingWorx

ThingWorx é uma plataforma de desenvolvimento de aplicações IoT baseadas em modelo que oferece um ambiente, tempo de operação e projeto de aplicação completos. A plataforma ThingWorx oferece componentes para conectividade, análise, colaboração e visualização incluindo realidade aumentada. Os principais recursos de desenvolvimento dessa plataforma são:

  • Composer—Um ambiente de modelagem de aplicação para modelar as "coisas", a lógica, a visualização, o armazenamento de dados e a segurança.
  • Mashup builder — Uma página web é denominada mashup com ThingWorx, e a visualização de páginas web pode ser criada usando a ferramenta mashup builder.
  • SQUEAL—Um recurso de busca que permite pesquisar através de todos os dados em um modelo.
  • Mecanismo de execução e armazenamento — Plataforma orientada a evento para execução e armazenamento para armazenar e revelar grande volume de dados, tornando-os úteis e valiosos.

A plataforma ThingWorx suporta a conectividade de dispositivos de diversos modos: conexões diretas à rede, MQTT e AMQP, nuvens de dispositivos de outros fornecedores e conectividade OPC-UA através do software PTC Kepware.

Durante o NIWeek 2017, a NI lançou o programa IoT Education beta que oferece conectividade desde o dispositivo de projeto de sistemas embarcados para estudantes myRIO à plataforma ThingWorx.

Microsoft Azure IoT Suite

O Azure IoT Suite permite a coleta de dados de dispositivos e oferece um conjunto de serviços como análise de dados, armazenamento de dados, visualização de dados históricos e em tempo real e integração com sistemas administrativos. O hub do Azure IoT Suite recebe os dados dos dispositivos de IoT. Os dados do dispositivo podem então ser armazenados ou passados para processamento, análise e gerenciamento posterior. Os dispositivos podem se comunicar com o hub IoT através dos protocolos HTTP, MQTT ou AMQP. A Microsoft oferece um conjunto SDKs de dispositivos Azure IoT através do GitHub.

Existem outras plataformas de nuvem disponíveis, como Google Cloud Platform, GE Predix e muitas outras. Para obter mais informações, veja as páginas de produtos específicas do fornecedor.

 


Apêndice A: Visão geral das 4 principais plataformas de nuvem IoT

 

AWS IoT

IBM Watson IoT for Bluemix

PTC ThingWorx

Azure IoT, Microsoft

Avaliação gratuita

1 ano de avaliação gratuita

30 dias de avaliação, seguida de versão Lite gratuita

30 dias de avaliação

Avaliação gratuita do IoT Hub por tempo ilimitado

Preços

Baseado na utilização, sem taxas mínimas

Pagamento por dispositivo, dados trocados, dados armazenados

Assinatura, depois o pagamento segue baseado na utilização

Baseado na utilização (Número de mensagens do IoT Hub)

Opções de implementação

Nuvem pública

Pública ou privada

Privada ou híbrida

Pública, privada ou híbrida

Obtenção dos materiais para primeiros passos (tutoriais, artigos técnicos e vídeos)

Sim

Sim

Sim

Sim

Opções de acesso à plataforma

GUI, CLI

GUI, CLI

GUI

GUI, CLI

Suporte do MQTT

Sim

Sim

Sim

Sim

WebSockets MQTT

Sim

Sim

Não especificado

Sim

AMQP

Usa SQS ou outro fornecedor

Através de outro fornecedor

Sim

Sim

WebSockets AMQP

Através de outro fornecedor

Não especificado

Sim

Formato de dados

JSON

JSON

JSON

JSON

Armazenamento

S3 (arquivos), DynamoDB (base de dados NoSQL), Redshift (base de dados) e outros

Cloudant (base de dados NoSQL), Mongodb e outros

Tabelas de dados, fluxos e transmissão de valores

Armazenamento SQL, DocumentDB (NoSQL), armazenamento de blob (arquivos) e armazenamento de tabela

LabVIEW Connectivity

Sim, Toolkit LabVIEW Cloud para AWS; MQTT

Sim, MQTT

Sim, MQTT/AMQP

Sim, MQTT/AMQP

SDKs de dispositivo disponíveis

Sim

Sim

Sim

Sim

Mecanismo de regras

Sim, o mecanismo de regras atua sobre os dados e roteia para outros serviços

Sim, isto é, aplicação node.js

Sim, Expression Widget

Sim, Azure Stream Analytics

Visualização de dados

QuickSight ou desevolvimento customizado

Sim, Watson IoT Real-Time Insight

Sim, ThingWorx SQUEAL, widgets, Vuforia e Mashup

Via notificações, power BI e aplicativos web do Azure

Análise de streaming em tempo real da plataforma

Amazon Kinesis

IoT Real-Time Insights, IBM Streaming Analytics

Sim

Stream Analytics

Plataforma de aprendizagem de máquina

Amazon Machine Learning

IBM Predictive Analytics

Predictive Analytics

Azure ML

Segurança

TLS/SSL

TLS

TLS

TLS/SSL

A tabela oferece recursos prontos para uso. Geralmente, os recursos podem ser adicionados instalando outros serviços.

 


Apêndice B: Referências

AWS         https://aws.amazon.com

IBM           http://www.ibm.com

Intel          http://www.intel.com

PTC           http://www.ptc.com/internet-of-things/technology-platform-thingworx

NI              http://www.ni.com/nl-nl/innovations/industrial-internet-of-things.html

Electronic Design—Understanding the protocols behind the internet of things http://www.electronicdesign.com/iot/understanding-protocols-behind-internet-things

Internet of Things (IoT) Development Platforms—A case of IBM Bluemix, P Kumar, Univ. of Koblenz-Landau            https://kola.opus.hbz-nrw.de/frontdoor/index/index/docId/1373

IoT Standards and Protocols       https://www.postscapes.com/internet-of-things-protocols/

Industrial Internet of Things Platform Comparison           https://www.mandsconsulting.com/industrial-iot-platform-comparison

 

Livros:

Internet of Things, W. Vermeend, J.W. Timmer, 2016, ISBN 97890821993-4-5

Enterprise IoT, Naveen Balani, 2016, ISBN 9781535505642

 

 

 

 

 

 

 

 

 

 

 

A marca registrada Linux® é usada de acordo com uma sublicença da LMI, licença exclusiva da Linus Torvalds, proprietária da marca em todo o mundo. Um Alliance Partner da National Instruments é uma pessoa jurídica independente da National Instruments, não tendo relação de agência, parceria ou joint-venture com a National Instruments.