O sistema
proposto é composto por diversos componentes que trabalham interconectados na realização
das tarefas. Inicialmente os diversos módulos e componentes serão apresentados
individualmente, e então será exposto o modelo de funcionamento conjunto.
A internet
das coisas e o protocolo MQTT
O protocolo
MQTT, sigla de MQ Telemetry Transport, é um protocolo de mensagens leve para
sensores e pequenos dispositivos móveis otimizado para redes TCP/IP que
implementa um esquema de troca de mensagens fundamentado no modelo Publicator-Subscritor.
Este modelo é muito utilizado em internet das coisas e tem seu fundamento
apresentado abaixo:

São criados
canais de comunicação virtuais chamados tópicos. Um tópico pode ser assinado
por um dispositivo, ou pode-se fazer uma publicação em um tópico. Algo similar
a uma tag, onde podemos escrever usando a tag, e outros podem fazer a leitura de todo o conteúdo publicado com a
tag. Neste caso o tópico não faz parte da mensagem, é apenas um meio de
encontra-la. Um dispositivo chamado ‘thing’ publica em um tópico, e o broker
MQTT realiza o envio da mensagem recebida à todos os assinantes daquele tópico
especifico. A comunicação entre o dispositivo e o broker depende do serviço
utilizado, a AWS IoT Core utilizada
neste projeto se baseia em TCP/IP trabalhando sobre a internet utilizando protocolo de transporte HTTP e possui autenticação por
meio do uso de certificados de segurança.
Amazon Web
Services
Conforme
descrição da própria empresa, A Amazon Web Services (AWS) é a plataforma de
nuvem mais adotada e mais abrangente do mundo, oferecendo mais de 175 serviços
completos de datacenters em todo o mundo. Milhões de clientes, incluindo os
startups de crescimento mais rápido, grandes empresas e os maiores órgãos
governamentais, estão usando a AWS para reduzirem seus custos, ficarem mais
ágeis e inovarem mais rapidamente. Dentre todos estes serviços oferecidos,
faremos uso de quatro serviços da Amazon neste trabalho. São eles:
·
AWS
IOT Core – É uma plataforma de módulos da AWS que fornece serviços de IOT para
soluções industriais, comerciais e de consumo. O módulo AWS IOT Core permite
que dispositivos conectados interajam de maneira fácil e segura com aplicativos
de nuvem e outros dispositivos.
·
Amazon
DynamoDB - É um serviço de banco de dados de
valor-chave que oferece ótimo desempenho e confiabilidade dos dados
armazenados. Permite acesso aos dados por meio de diversas tecnologias que
incluem as mais utilizadas como Python, PHP e JavaScript.
·
AWS
AppSync - É um serviço gerenciado que usa GraphQL
para permitir que aplicativos obtenham exatamente os dados de que precisam com
mais facilidade, permite de maneira simples a adição, consulta e edição de
dados nos bancos de dados da AWS.
·
Amazon
EC2 - É um web service que disponibiliza
capacidade computacional segura e redimensionável na nuvem. Permite que seja
configurado um sistema operacional em uma maquina virtual e que esta instancia
seja acessada remotamente de qualquer local.
ESBOÇO
GERAL DO SISTEMA
O sistema
projetado neste trabalho tem sua premissa no uso de cloud computing, ou seja,
no uso de serviços de nuvem que executem as tarefas de armazenamento e
processamento de dados, sem a necessidade de um servidor hospedado localmente. Desta
maneira se eliminam as manutenções regulares, a equipe de suporte pós
desenvolvimento e despesas não previstas com reparos. As despesas são fixas e
definidas pelas cotas de uso dos serviços da nuvem. O diagrama abaixo ilustra o
relacionamento entre o conjunto dos serviços de computação em nuvem e dos
dispositivos de aquisicão de dados e de interface com o usuário.

Descrição
dos elementos do sistema
‘Things’ – As ‘coisas’ são os
dispositivos utilizados para coleta de dados, podem ser por exemplo
microcontroladores conectados a sensores, botões, interfaces ou qualquer outro
tipo de coletores de dados. Tais dispositivos são responsáveis por criar um array no formato JSON com os dados coletados e executar o envio desta informação
para o broker utilizando o canal criado por um Tópico previamente definido.
Neste projeto utilizaremos uma ESP8266 para recolhimento, processamento e
publicação dos dados de sensoriamento para o broker.
AWS IoT
Core – É o broker MQTT do projeto que se responsabiliza por criar o canal de
comunicação entre as ‘things’ e a
nuvem. Executa tarefas como receber as mensagens publicadas e retransmiti-las a
todos os ‘subscribers’. Trabalha com
o payload no formato de Array JSON e cada mensagem recebida tem
seu formato conforme apresentado na figura a seguir.

AWS AppSync
– É uma “Application Programming
Interface", ou seja, um conjunto de rotinas e padrões de programação
para acesso a um aplicativo de software ou plataforma baseado na Web. Neste
caso esta API fornece uma maneira pratica de relacionamento entre os diversos
serviços da AWS. Utilizaremos a AppSync para fazer a assinatura do tópico
utilizado por nossos dispositivos para envio dos dados e para processar a
mensagem (payload) recebida. Esta API
realizará adicionalmente o encaminhamento deste conjunto de informações para o
serviço de armazenamento DynamoDB.
DynamoDB – É o banco de dados utilizado para
armazenamento de todas as informações coletadas pelos dispositivos (things). Possui uma tabela organizada
conforme apresentado na figura a seguir.
Cada
dispositivo possui um id único que permite
sua posterior identificação por ocasião da requisição dos dados, no DynamoDB esta chave é chamada de chave
de partição. A chave timecode, é uma
chave de classificação e torna cada registro de dados único, por isso não pode
haver repetições de valor de timecode
em um mesmo device. Isso é garantido
pelo fato de que o valor de timecode
é gerado no momento do envio do payload por um código UTS (UnixTimeStamp) que corresponde a quantidade de segundos desde o
início do primeiro dia de janeiro 1970. (UTC)
Cada
registro do banco de dados inclui um valor de cada parâmetro coletado.

Funcionamento
Nenhum comentário:
Postar um comentário