2.2 KNoT
2.2.2 Exemplo de Uso
Uma aplicação simples para entender a aplicabilidade da plataforma KNoT é o controle de uma lâmpada, por ser um dispositivo totalmente dumb, o qual sua inteligência é incorporada através do microcontrolador e suas capacidades de comunicação. A configuração de hardware é composta por um Arduino com o transmissor de radiofrequência nRF24L01 que controla um relé para ligar e desligar a lâmpada, como mostra a Figura 19. A lâmpada
Capítulo 2. Conceitos Básicos 37 possui um bocal que foi adaptado para se ligar ao relé e é alimentado por uma tomada convencional.
Figura 19 – Hardware para controle da lâmpada
Fonte: Produzido pelo autor
Para definição do comportamento do dispositivo, é necessário importar a biblioteca KNoT Thing Library no Arduino, como ilustra a Figura 20. As configurações que devem ser preenchidas estão destacadas na figura, entre elas: nome, funções e parâmetros da Thing (a lâmpada) a serem controlados (ligado/desligado) para compor o dispositivo virtual no Meshblu. Após o registro das informações do dispositivo e definição das funções read() e write(), basicamente seu funcionamento depende das chamadas contínuas dessas funções para recuperação das informações dos sensores e atuação, respectivamente. Os demais parâmetros são apenas para descrição do modelo dos dados internamente.
Com a KNoT Thing Library pronta no Arduino, deve-se acessar o WebUI disponi- bilizado pelo Gateway para configurar o endereço e a porta da nuvem desejada. Então, é necessário criar um usuário que poderá gerenciar as Things disponíveis (no alcance do rádio do Gateway). Esses processos são ilustrados nas Figuras 20 e 21, respectivamente. Na Figura 21, o endereço e a porta da plataforma de Cloud deve ser configurado, enquanto a Figura 22 mostra a tela de criação do usuário gerente do Gateway.
Ao aceitar as Things, a nuvem é acessada automaticamente e os dispositivos aceitos serão cadastrados e prontos para uso por aplicações. A Figura 23 mostra a tela de gerenciamento das Things no WebUI. Nela, são exibidas as Things vinculadas ao Gateway, juntamente com seus status e atributos. Nela, a Thing de nome LO_Thing está registrada e online com o atributo LED de valor false, indicando que a luz estaria apagada. Ainda, é possível verificar se há Things por perto que não estão conectadas, e vinculá-las ao
Capítulo 2. Conceitos Básicos 38 Figura 20 – Código da KNoT Thing para controlar uma lâmpada
Fonte: Produzido pelo autor
Capítulo 2. Conceitos Básicos 39 Figura 21 – Configuração do endereço de nuvem na KNoT Web UI
Fonte: Produzido pelo autor
Figura 22 – Configuração do usuário do Gateway na KNoT Web UI
Capítulo 2. Conceitos Básicos 40 Figura 23 – Gerenciamento das Things na KNoT Web UI
41
3 O ambiente KNoT-FI
Pelo fato de se propor a suportar diferentes dispositivos (Things) com hardware distintos, a KNoT apresenta-se como uma plataforma de fácil adoção para prototipação de produtos ou serviços IoT. Um diferencial é a facilidade de implantar uma KNoT Thing, equipada com qualquer que seja o protocolo para transmissão sem fio. Essa capacidade viabiliza que seja acessível e barato ao usuário construir sua solução desde as Things até a aplicação final. A KNoT mostra-se promissora por suportar hardware e software open-source.
As referidas características da KNoT foram determinantes para a sua escolha. Outro importante aspecto levado em consideração foi a cooperação com o próprio time de desenvolvimento da plataforma. Este trabalho está inserido no contexto de um projeto amplo, o Instituto Nacional de Engenharia de Software (INES), no qual o trabalho de desenvolvimento da plataforma KNoT também está inserido. No início desta pesquisa, a documentação da plataforma KNoT era insuficiente e isso gerou a necessidade de uma interação próxima com a equipe do C.E.S.A.R., que foi produtiva para a concretização do KNoT-FI. Em suma, esse fato somou-se às características gateway multi-radio, possibilidade de compatibilização com diferentes plataformas de Cloud e plataforma end-to-end (ou fullstack), e colaboraram para a escolha da KNoT.
Requisitos específicos para comunicação sem fio como alcance, largura de banda, custo do hardware e consumo de energia definem a pilha de protocolos que cada dispositivo pode implementar. O KNoT Gateway torna-se relevante pois implementa um protocolo binário simples, o KNoT Protocol, que pode ser usado em dispositivos com restrições de memória e processamento. Desta forma, o KNoT Gateway garante a interoperabilidade dos dispositivos suportados pois implementa o knotd (Figura 18) que traduz os protocolos heterogêneos advindos dos gerenciadores de rede para o KNoT Protocol ao definir uma semântica interna para os dados.
Entende-se, então, que a partir do knotd, os dados internos no gateway são uni- formizados e encaminhados para a KNoT Fog (Figura 18). Neste ponto, a proposta da plataforma com capacidade para compatibilização com diferentes plataformas de Cloud é promissora, e tais estratégias serão exploradas neste Capítulo.
A plataforma KNoT propõe uma solução prática para a integração de dispositivos físicos heterogêneos sem comunicação via IP nativa. Dessa forma, a ideia de complementar esse atributo tornando-o mais flexível e exposto a um ambiente rico como o da FIWARE é proveitosa, visto que a KNoT passará a ter acesso ao ecossistema FIWARE, que oferece variadas ferramentas para o desenvolvimento de aplicações com diferentes funcionalidades. No entanto, para realizar essa integração, é necessário que as camadas inferiores da KNoT, responsáveis pela comunicação com os equipamentos físicos, sejam adaptadas para interagir
Capítulo 3. O ambiente KNoT-FI 42 com o Orion, componente central da FIWARE.
Com base nessa discussão, este Capítulo destina-se a detalhar o ambiente KNoT-FI, uma integração entre a FIWARE e a KNoT. A seção 3.1 explica o primeiro projeto para estabelecer a comunicação entre as duas plataformas. A seção 3.2 discute a estratégia de integração escolhida para fundamentar a arquitetura e implementação dos componentes. Por fim, a seção 3.3 explora a versão atual da KNoT-FI, sua arquitetura, interface e procedimento para utilização.