1. Usando a interface WEB

Este tutorial descreve as operações básicas na dojot, como criar dispositivos, conferir seus atributos e criar fluxos, importar/exportar e atualizar firmware.

Nota

  • Para quem é esse tutorial: usuários iniciantes
  • Nível: básico
  • Tempo de leitura: 20 minutos

1.1. Gerenciamento de dispositivo

Esta seção mostra como gerenciar dispositivos. Para tal, serão utilizados dois dispositivos sensores de temperatura e um dispositivo virtual, esse último com a função de observar as temperaturas medidas nos dois primeiros e gerar alarmes em determinadas condições.

Como descrito em Concepts, todos os dispositivos são baseados em um ou mais modelos (templates). Para a criação de um modelo, você deve acessar a opção Modelos (Templates) na lateral esquerda da tela e então criar um Novo Modelo (New Template), como mostrado abaixo.

Para criar novos dispositivos, deve-se voltar para a opção Dispositivos (Devices) e criar um Novo Dispositivo (New Device), selecionando os modelos nos quais o dispositivo será baseado, como mostrado abaixo.

Note que, quando um modelo é selecionado no painel direito da tela de criação de dispositivo, todos os atributos são herdados para aquele dispositivo. É possível adicionar mais de um modelo, tendo em mente que modelos que compõem o dispositivo não podem compartilhar atributos com o mesmo nome.

Atenção

Os dispositivos são fortemente atrelados aos a modelos. Para remover um modelo, deve-se remover primeiro todos os dispositivos a ele associados. Caso contrário, a seguinte mensagem aparecerá:

Error message when removing an used template

Atenção

É possível adicionar e remover atributos dos modelos, fazendo com que as alterações sejam imediatamente refletidas nos dispositivos associados. No caso de novos adição, no entanto, deve-se observar que os atributos dos modelos que compõem um determinado dispositivo não podem possuir o mesmo nome. Se isso acontecer, a seguinte mensagem aparecerá:

Error while adding overlapping attributes

Essa imagem da tela foi capturada quando um novo modelo foi criado (ExtraTemplate) com um atributo chamado level. Depois um novo dispositivo baseado em ambos os modelos foi criado e um novo atributo também chamado level foi adicionado ao modelo ThermTemplate.

Quando isso ocorre, nenhuma modificação é aplicada ao modelo (nenhum atributo com nome “level” relativo ao “ThermTemplate” é criado). Contudo, o atributo é mantido no cartão do modelo para que o usuário perceba o que está acontecendo. Se o usuário atualizar a tela, as informações serão revertidas para o estado que estava antes da modificação.

Agora os dispositivos físicos podem enviar mensagens para dojot. Há poucas coisas paraprestar atenção: o tópico MQTT é``/{TENANT}/{DEVICE_ID}/attrs``.

Por questão de simplicidade, será emulado um dispositivo utilizando-se a ferramenta mosquito_pub. O parâmetro client-id será configurado utilizando a opção -i do mosquito_pub. Veja mais sobre em Utilizando a API da dojot no tópico Enviandos mensagens. Além disso estes exemplos estão usando o MQTT sem TLS, recomendamos Usando MQTT com segurança (TLS).

Estando criados os sensores de temperatura, falta agora a criação do dispositivo virtual. Ele será a representação de um alarme de sistema disparado quando algo ruim for detectado pelos sensores. Por exemplo, se os sensores de temperatura estivessem instalados em uma cozinha, a medição de uma temperatura acima de 40ºC poderia indicar que o local estaria em chamas. Essa representação do alarme poderia ter dois atributos: nível de severidade e mensagem textual, para que o usuário pudesse ser informado do acontecimento.

Assim como “dispositivos regulares”, dispositivos virtuais também são baseados em modelos. Portanto, um modelo será criado, como mostrado abaixo.

1.2. Configuração de fluxo

Uma vez criado o dispositivo virtual, pode-se adicionar um fluxo para implementar a lógica por detrás da geração de alarmes. A ideia é: se a temperatura medida for menor ou igual a 40ºC, o sistema de alarmes será atualizado com uma notificação de severidade 4 (média) e uma mensagem indicando que a cozinha está OK. Caso a temperatura medida seja maior que os 40ºC, uma notificação de severidade 1 (muito alta) será enviada com a mensagem que a cozinha está em chamas. Isto é feito como mostrado abaixo.

É importante notar que os nós do tipo “change” têm uma referência a uma entidade “output”. Isso pode ser visto como uma simples estrutura de dados, onde existem os atributos message e severity que casam com aqueles do dispositivo virtual. Este “objeto” é referenciado no nó de saída (output) como uma fonte de dados para o dispositivo que será atualizado (nessa caso, o dispositivo virtual criado). Em outras palavras, pode-se dizer que há uma informação que é transferida dos nós do tipo “change” para o “dispositivo virtual” com os nomes “msg.output.message” e “msg.output.severity”, onde “message” e “severity” são atributos do dispositivo virtual.

Vamos, agora, enviar mais algumas mensagens e ver o que acontece para aquele dispositivo virtual.

1.3. Importar e Exportar

Essa seção mostra como usar as funcionalidades Importar e Exportar. Tais opções permitem que seus dados de configuração sejam salvos em um arquivo , no caso de uma exportação, e carregados na dojot, no caso de Importação. Esse arquivo possui o formato JSON e contém os dados de modelos, dispositivos, fluxos, nós remotos e tarefas de agendamento que foram cadastrados na sua organização.Para executar o procedimento de exportação dos dados de configurações, expanda o menu no canto superior direito da página, clique em “Import/Export (Import./Exportação)” e então, em “Export (Exportar)”, conforme ilustrado no vídeo a seguir:

O arquivo exportado pode ser armazenado como backup e posteriormente importado novamente na Dojot.

Para executar o procedimento de importação de uma configuração, expanda o menu no canto superior direito da página, clique em “Import/Export (Import./Exportação)” e então, em “Import (Importar)”. Na janela que aparece é possível arrastar e soltar seu arquivo ou navegar na pasta de destino e selecioná-lo, sendo só permitido adicionar um arquivo de extensão JSON, no formato esperado, conforme ilustrado no vídeo a seguir:

Atenção

Ao executar o procedimento de importação todas as configurações atuais da organização tais como: dispositivos, modelos, fluxos, nós remotos e tarefas de agendamento, serão excluídas permanentemente para que as novas sejam criadas. Os dados de histórico não fazem parte do importar e exportar.

1.4. Atualização de Firmware

Durante a vida útil de um dispositivo, pode ser necessário atualizar seu software de controle (firmware) a fim de corrigir eventuais problemas encontrados durante seu uso ou até mesmo adicionar novas funcionalidades. Atualmente a dojot suporta o procedimento de atualização de firmware via o protocolo de comunicação LwM2M. Para saber detalhes a respeito do procedimento para integração com seu dispositivo por favor verifique a especificação do protocolo LwM2M. Caso seu dispositivo se comunica via este protocolo e possui o procedimento de atualização de firmware implementado, você pode seguir os passos a seguir para atualizar a versão do seu dispositivo.

O processo de atualização de firmware é composto por três etapas:

  • gerenciamento das imagens
  • transferência da imagem para o dispositivo;
  • aplicação da imagem no dispositivo

O detalhamento da execução destas encontra-se a seguir.

Para que a habilitação de gerenciamento de firmware seja disponibilizada, é preciso criar um modelo e, depois de salvo, habilitar o gerenciador de firmware. Após isso, é possível enviar as imagens de firmware para o repositório da dojot que são associadas a este modelo. Atenção: a extensão da imagem deve possuir a extensão “.hex”.

Note que assim que o Gerenciador de Firmware é habilitado, são atribuídos ao modelo cinco atributos que são usados para suportar a atualização de imagens. Os nomes dos atributos podem ser editados conforme a necessidade da aplicação. Os atributos são:

  • Estado do dispositivo (Device State):

    • Estado atual da atualização de firmware
  • Resultado da versão de aplicação (Result of apply version)

    • Resultado da última aplicação de atualização de uma imagem de firmware;
  • Define qual versão transferir (Sets which version to transfer):

    • Indica ao agente IoT, responsável pelo dispositivo, qual deve ser o nome e a versão da imagem de firmware a ser transferida e atualizada no dispositivo
  • Acionar atualização da versão (Trigger version update)

    • Atuador utilizado para iniciar o procedimento de atualização de firmware
  • Versão atual da imagem (Current version of the image):

    • Versão atual da imagem de firmware, caso disponibilizado pelo mesmo

Após criar o modelo com a opção de gerenciamento de firmware habilitada, é preciso associá-lo a um dispositivo. Assim é possível transferir uma imagem e aplicá-la no dispositivo, conforme o vídeo abaixo:

Note que, em cada etapa, são exibidos o status e o resultado da aplicação da imagem.