IoT

Como adicionar um dispositivo ao Thingsboard

No primeiro artigo vimos como fazer a instalação do serviço, agora vamos ver como adicionar um dispositivo ao Thingsboard para fazer telemetria.

A primeira dica que dou é: separe as etapas.  Isso ficará mais claro no decorrer do artigo, mas evite pensar diretamente em dispositivo->apresentação. Precisamos modularizar o gerenciamento primeiro, então em dado momento enviamos a informação do dispositivo para o coletor, daí criamos a visualização dos dados como for desejado.

Provisionamento de recursos e dispositivos

No artigo anterior relacionado mostrei como instalar o Thingsboard utilizando a base de dados embarcada. Como não fiz uso de outra base, apenas mostrei como instalar o postgresql. Só que não funciona de forma transparente.

Configuração inicial do Postgres

Se você já instalou o postgres, é hora de configurá-lo:

Nesse momento a condição normal seria estar conectado ao console do postgres. Em seguida, devemo mudar a senha:

Se tudo der certo, esses passos deveriam apresentar algo como:

Se algo der errado, I don’t know, but Google knows. Só tenho conhecimento em MySQL e um pouquinho de sqlite.

Configurar o ThingsBoard para usar Postgres

No artigo anterior também está descrito, exceto que é necessário configurar a senha do usuário postgres:

O usuário e senha são postgres no arquivo yml do ThingsBoard (é fundalmental que você leia o artigo anterior, como pode notar).

Se desejar utilizar uma senha diferente, lembre-se de ajustá-lo no arquivo yml também.

Se obtiver erro na inicialização do serviço com –loaddemo Na seção “Execute o script de instalação”, do artigo anterior relacionado), entre na base de dados e crie o banco chamado thingsboard.

Depois é só seguir com o restante do tutorial de instalação.

Acessando a interface web para adicionar um dispositivo

Agora já podemos abri-lo no browser. O login padrão é sysadmin@thingsboard.org e a senha é sysadmin.

A URL é IP:8080/login. Claro, troque “IP” pelo IP.

login - adicionar um dispositivo

No primeiro login, não vemos um monte de menus. Para tal, podemos utilizar o usuário Tenant ou criar um novo. Eu criei o meu clicando em Tenant e então no sinal de adição (+) no canto inferior direito.

Entre com os dados e selecione o método de validação. Optei por exibir o link na tela mesmo.

Ao clicar no link, abrir-se-á uma página para digitar a senha do usuário. Crie-e e então uma nova aba será carregada, contendo tudo o que precisamos para iniciar o processo.

Criando um Asset

Agora, no menu da esquerda deve aparecer ASSETS. Clique sobre ele. Clique no sinal de adição no canto inferior direito para criar um novo.

DEVICE – adicionar um dispositivo

Estou seguindo o exemplo da documentação, por isso qualquer semelhança não é mera coincidência.

Para criar o dispositivo, deve-se utilizar o mesmo processo. Como deve ter notado, qualquer coisa que necessitar de criação, deve-se clicar no sinal de adição no canto inferior direito.

Rodando o Demo, como explicado no artigo anterior, já estarão disponíveis alguns ítens. Ignore-os nesse momento e vamos criar um novo.

Definindo relação entre Assets e Devices

Agora, volte ao menu ASSETS e clique sobre o asset criado, cujo nome é Building A.

Clique na aba RELATIONS e novamente, clique no sinal de adição. Ajuste dessa maneira:

add relation - adicionar um dispositivo

Enviando dados para telemetria (teste)

Agora clique novamente em DEVICES. Em DETAILS, copie o token, clicando em COPY ACCESS TOKEN. Componha o seguinte comando para enviar dados ao ThingsBoard (não envie ainda):

Clique na aba LATEST TELEMETRY para ver o dado que será recebido. Execute a linha de comando acima e lá estará o dado.

Gerando dados emulados

Quando precisamos testar serviços, nem sempre dispomos dos recursos para um ambiente real, nem sempre é possível adicionar um dispositivo, ainda mais em começo de projeto. Falo francamente que detesto web, só estou escrevendo artigo sobre isso porque acabei tendo essa necessidade em um projeto que estou atuando (e não vejo a hora de poder anunciar o produto publicamente). Bem, o cara que desenvolve web pode fazê-lo de forma totalmente independente dos dispositivos que se conectarão a ele. Assim sendo, nada como o conforto de não depender de terceiros para tocar o projeto, além de que isso torna o desenvolvimento muito mais rápido.

RULE CHAINS

Para emular dados de dispositivo, podemos criar uma RULE CHAINS, disponível no menu à esquerda.

Clique lá, siga o processo descrito N vezes acima para criar um novo item. A diferença é que dessa vez teremos três opções, sendo que devemos clicar no desenho de página, após clicar no sinal de adição.

Coloque um nome como Emulador de temperatura. Após ser criado, clique sobre o emulador e aí começamos uma nova etapa da diversão.

Nessa janela temos 3 divisões; a do menu, à esquerda; dos componentes, no meio; das conexões, à direita. Role a barra dos componentes até Action e arraste o generator para a tela da direita.

Na tela que se abre, preecha os dados como mostra  a imagem abaixo:

Agora adicionamos um Rule Chain, que é o último item da coluna central. Na janela que se abre, selecionamos o Root Rule Chain. Se abrirá um popup para o rótulo. Selecione SUCCESS e clique em ADD. Clique no check, do lado inferior direito da janela do browser para salvar.

Agora podemos clicar em DEVICES e depois na aba LATEST TELEMETRY para ver os dados sendo gerados randomicamente.

Criando dashboard para visualização

Clique em DASHBOARDS no menu da esquerda, então crie um novo, escolhendo um nome para identificá-lo. Depois, clique sobre o dashboard criado e clique no lápis na parte de baixo. Antes de criar algo, Clique no desenho de dispositivos. Pare o mouse sobre os ícones e aparecerá Entity Aliases. É o ícone do meio:

Ao clicar em ADD ALIAS, preencha a lista com esses dados:

 

Clique em SAVE na tela seguinte. Agora podemos adicionar um widget.

Clique em ADD NEW WIDGET, então selecione Cards. Role a página e vá até Entities. Clique sobre ela.

Selecione o termômetro criado, depois em time series selecione temperatura.

Dashboard state

Clique no ícone que parece um losango sobre outro, então clique em adicionar (+). Coloque $(entityName) Detalhes de temperatura e embaixo remova a parte __entityname__.

Mude o view de Default para detalhes_de_temperatura.

Agora, adicionamos um novo  alias com o seguinte valor:

add alias - adicionar um dispositivo

 

E clicamos em SAVE na janela anterior.

Enfim, clicamos em ADD NEW WIDGET no fundo da janela vazia. Em CARDS, agora selecionamos Digital Gauge e escolhemos um.

Na janela que se abre, clicamos em ADD. Selecione Termometro corrente e em  time series digite temperature e clique em add a new one, quando aparecer a mensagem de que ele não existe.

Em ADVANCED coloque o valor mínimo em 0, então clique em ADD. Agora adicionamos um novo widget para histórico. Adicione qual deles desejar. Me parece mais propício o último. Depois clique em SETTINGS,  mude o título, clique em ADVANCED e selecione Display smooth.

Salvando-o, no próximo passo podemos redimensionar e reorganizar os widgets.

Ao salvar (no botão laranja, clicando sobre o check), automaticamente retornamos ao estado Casa 1 (que foi o dashboard que criei).

Clique no lápis para edição e na janela NEW ENTITIES TABLE  vá diretamente à aba ACTIONS.

Crie da seguinte maneira:

add action - adicionar um dispositivo

 

Após salvar tudo (clicando em qualquer coisa que tenha o botão check em laranja), clique no item criado. No meu caso, BME280.

dashboard - adicionar um dispositivo

Esse será o dashboard do Customer A. Quando o usuário logar, terá acesso a apenas esse dashboard. O problema aqui é que ele pode navegar em menus que não deveria, então, faça o seguinte:

CUSTOMER > CUSTOMER DESEJADO > MANAGE CUSTOMER .

Clique sobre ele, então clique no lápis para editar. Selecione o dashboard que ele pode ver e marque Always fullscreen. Desse modo ele não poderá navegar fora de seu dashboard.

adicionar um dispositivo

Agora já podemos testar.

Clique em CUSTOMER > CUSTOMER DESEJADO > MANAGE USERS > CLIQUE SOBRE O CUSTOMER.

Agora clique em LOGIN AS CUSTOMER USER. Aparecerá apenas o dashboard permitido, no qual ele pode clicar para visualizar graficamente, ficando como a imagem de destaque.

Tem muuuita coisa ainda nesse Thingsboard, adicionar um dispositivo é só o primeiro passo. Quem quiser se adiantar e manja de inglês, pode ir direto ao site do projeto.