Este artigo dará continuidade ao projeto de detector de gases inflamáveis e fumaça com SigFox e Tago.IO. Nesta segunda parte da série de artigos, será mostrado como integrar o SigFox Cloud a plataforma IoT Tago.io, de forma a permitir a exibição em forma de dashboards, tratamento e processamento dos dados obtidos e geração de alertas em caso de detecção de gases inflamáveis e/ou fumaça.
Criação de uma conta na Tago.IO
A primeira coisa a ser feita, é a criação de uma conta na plataforma IoT Tago.IO. Para isso, acesse o site da plataforma e faça seu cadastro clicando em Get Started e preenchendo o formulário de cadastro. Em seguida, você receberá um e-mail solicitando a confirmação da conta. Após a confirmação, sua conta na plataforma Tago.IO estará pronta para uso.
Obtenção do SigFox ID de seu dispositivo
Para fazer a “ligação” entre SigFox Cloud e Tago.IO, será preciso o SigFox ID de seu dispositivo. Para isso, logado no backend SigFox (https://backend.sigfox.com/), vá até a sua lista de dispositivos (clique sobre Device, na parte superior da página) e copie / anote o valor do campo Id (ele será usado mais a frente neste artigo), localizado conforme local destacado em vermelho na figura 1.
Figura 1 – Sigfox Id (no local destacado em vermelho)
Criação de um dispositivo SigFox na Tago.IO
Para que os dados enviados via SigFox possam ser utilizados, estes devem ser atribuídos a um dispositivo do tipo SigFox dentro da plataforma Tago.IO. Para criar tal dispositivo, siga o procedimento abaixo:
- Uma vez logado na sua conta na Tago.IO, do lado esquerdo clique sobre Devices.
- Na parte superior direita da tela de gerenciamento de dispositivos, clique sobre o botão Add Device.
- A tela de inserção de dispositivo irá surgir. Na lista de tipos de dispositivos à esquerda, selecione a opção SigFox.
- Escolha a opção Custom SigFox.
- Preencha as informações conforme a orientação a seguir:
– Device name: coloque aqui qualquer nome que achar relevante para seu dispositivo. Essa identificação será usada na plataforma Tago.IO somente.
– SigFox Device ID: coloque aqui o SIgFox ID obtido no tópico “Obtenção do SigFox ID de seu dispositivo” deste artigo. - Clique sobre Create Device e aguarde alguns segundos para a criação do dispositivo.
Obtenção do authorization code do dispositivo SigFox Cloud na Tago.IO
Um dos dados requeridos na ligação entre SigFox Cloud e Tago.IO é o authorization code. Para cria-lo, acesse a página de criação de authorization codes da Tago.IO (https://admin.tago.io/devices/authorization) e crie o authorization code para seu dispositivo SigFox. Copie / anote o valor deste authorization code, ele será usado mais a frente neste artigo.
Com este dispositivo criado na Tago.IO e com authorization code gerado, é preciso fazer com que a SigFox Cloud automaticamente redirecione os dados recebidos para a Tago.IO.
Callback de uplink: do SigFox Cloud para a Tago.IO
Para direcionar os dados recebidos no SigFox Cloud para outros locais (plataformas IoT, por exemplo), o SigFox oferece o mecanismo de Callback de uplink. Esse mecanismo faz com que toda mensagem de um determinado dispositivo que chegue a SigFox Cloud seja automaticamente redirecionada para outro local, permitindo o uso da informação pelo sistema desejado. No caso deste projeto, será criada uma callback de uplink para a plataforma IoT Tago.IO. Observe o diagrama de integração na figura 2.
Figura 2 – diagrama de integração (do dispositivo até a plataforma Tago.IO). Fonte da imagem: https://tago.elevio.help/en/articles/33-sigfox
Esta callback de uplink é criada no backend SigFox (https://backend.sigfox.com/). Para cria-la, faça login no backend SigFox e siga o procedimento abaixo:
- Na parte superior da página, clique em Device Type.
- Clique sobre o nome do dispositivo SigFox que deseja fazer esta callback.
- Clique sobre Callbacks, na parte esquerda da página.
- Na parte superior da página, clique sobre o botão New Callback.
- Preencha as informações do formulário conforme mostrado abaixo
– Type: DATA & UPLINK
– Channel: URL
– URL: https://sigfox.middleware.tago.io/uplink
– Use HTTP Method: POST
– Send SNI: deixe o checkbox “Send SNI” selecionado.
– Headers: Add two rows in the Headers section inside the header and value fields:
Header | Valor |
device | {device} |
authorization | Coloque aqui o authorization code obtido no tópico Obtenção do authorization code do dispositivo SigFox na Tago.IO deste artigo. |
– Content-type: application/json
– Body: coloque o conteúdo a seguir. Ele corresponde ao JSON que será repassado da SigFox Cloud para a Tago.IO, contendo três nós: device (com o valor do SigFox ID e timestamp), data (com os 12 bytes enviados do dispositivo e timestamp) e seqNumber (com o número sequencial de pacotes enviados do dispositivo para a SigFox Cloud e timestamp).
[{
“variable”: “device”,
“value”: “{device}”,
“serie”: “{time}”
},{
“variable”: “data”,
“value”: “{data}”,
“serie”: “{time}”
},{
“variable”: “seqNumber”,
“value”: “{seqNumber}”,
“serie”: “{time}”
}]
- Clique em Ok para salvar seu callback de uplink. A partir deste momento, a integração entre SigFox Cloud e Tago.IO está completa.
Criação do parser na plataforma Tago.IO
Antes de utilizar os dados enviados na plataforma IoT Tago.IO, é preciso fazer o parser das informações recebidas. O parser é executado sempre que o dispositivo SigFox enviar dados e tem como finalidade “quebrar” os bytes recebidos em variáveis correspondentes, tornando possível trabalhar com cada dado individualmente na plataforma. O parser na plataforma Tago.IO utiliza a linguagem Node.JS, o que torna bem versátil o processo de sua programação.
Para criar e editar o parser, siga o procedimento abaixo:
- Uma vez logado na plataforma Tago.IO, clique em Devices (botçao do lado esquerdo da tela).
- Clique sobre o dispositivo SigFox.
- Na tela de gerenciamento do dispositivo SigFox, clique na aba Payload Parser.
- Clique sobre Run your own parser.
- Agora deve-se selecionar um modelo já pré-definido de parser, o que poupa tempo e facilita muito o trabalho neste projeto. No combo box Snippets selecione a opção Parse Example.
- Neste modelo pré-definido de parser, será preciso fazer apenas duas modificações: levar em consideração somente o payload “bruto” (12 bytes) SigFox e definir quais bytes serão atribuídos a quais variáveis.
Para fazer com que somente o payload de 12 bytes seja considerado no parser, modifique a declaração de ignore_vars (linha 14) conforme abaixo:1const ignore_vars = [‘seqNumber’, ‘device’];Dessa forma, do JSON encaminhado da SigFox Cloud para a Tago.IO, somente o nó JSON chamado data (que contém os 12 bytes enviados pelo dispositivo via SigFox) será considerado.
- Na função parsePayload() do parser, modifique o conteúdo da variável data (linha 31) para o mostrado abaixo:
123456789101112131415var byte_sensor_gas = buffer.readInt8(1);var texto_sensor_gas = “”;if (byte_sensor_gas == 0){texto_sensor_gas = “Gás e/ou fumaça não detectados”;}else{texto_sensor_gas = “GÁS E/OU FUMAÇA DETECTADOS!”;}const data = [ { variable: ‘temperatura_ambiente’, value: buffer.readInt8(0), unit: ‘°C’ },{ variable: ‘sensor_gas’, value: texto_sensor_gas, unit: ‘ ‘ },];
- Clique em Save. A partir deste momento, o parser já está em ação ealimentará as variáveis temperatura_ambiente e sensor_gas com os valores vindos do dispositivo, enviados por SigFox.
Criação de um dashboard na plataforma Tago.IO para os dados do dispositivo SigFox
Uma vez que a integração entre SigFox Cloud e Tago.IO está completa e o parser construído, o próximo passo é criar um dashboard para visualizar os dados recebidos (já parseados) de forma amigável.
Para criar este dashboard, siga o procedimento abaixo:
- Uma vez logado na plataforma Tago.IO, clique sobre o botão + na seção Dashboard, no lado esquerdo da tela.
- Na tela de criação do Dashboard, preencha o campo Dashboard Name com “Detector de gases inflamáveis e fumaça”, selecione um ícone para seu dashboard no combo box Dashboard icon e clique em Save.
- Será mostrada a tela de edição de Dashboard. Nela, clique sobre Add widget.
Um widget é, grosso modo, um tipo de visualização de um dado. - Dentre os tipos de widgets, selecione o tipo Dial.
- Em Title, coloque o nome do widget (por exemplo, “Temperatura ambiente”), em Device selecione o nome do seu dispositivo SigFox e em Variable escreva temperatura_ambiente. Clique em Save.
Desta forma, o dashboard já esta pronto para exibir a temperatura ambiente medida pelo dispositivo SigFox. - De volta a tela do Dashboard, clique sobre o ícone na forma de um sínbolo de adição (+), na região superior direita da tela.
- Dentre os tipos de widgets, selecione o tipo Display.
- Em Title coloque o nome do widget (por exemplo, “Sensor de gás”), em Device selecione o nome do seu dispositivo SigFox e em Variable escreva sensor_gas. Clique em Save.
Desta forma, o dashboard já esta pronto para exibir se há ou não gases inflamáveis e/ou fumaça detectados. - Finalmente, é hora de habilitar o Dashboard para a visualização dos dados. Para isso, clique sobre o ícone na forma de um olho, localizado na região superior direita da tela.
Se ainda não foi enviado nenhum dado algum após a integração do SigFox Cloud com a plataforma Tago.IO, não haverão dados disponíveis para mostrar. Dessa forma, seu dashboard ficará como mostrado na figura 3.
Já se foram enviados dados após a integração do SigFox Cloud com a plataforma Tago.IO, estes serão mostrados no Dashboard. Dessa forma, seu dashboard ficará como mostrado na figura 4.
Dashboad no smartphone
Ainda, é possível visualizar e compartilhar seus dashboards com outras pessoas utilizando o aplicativo da TagoIO. Dessa forma, você pode visualizar seus dashboards a partir do seu smartphone, o que pode ser muito vantajoso para uma rápida conferência / visualização de como andam suas variáveis monitoradas.
A figura 5 mostra o dashboard do projeto visível a partir de um smartphone.
Teste do Dashboard
Agora você pode testar o dashboard, ligando seu dispositivo e aguardando a cada 15 minutos a temperatura ambiente e status do sensor de gás serem enviados. A partir deste ponto, o projeto de detector de gases inflamáveis e fumaça com SigFox e Tago.IO está operacional.
Próximos passos
No próximo e último artigo desta série, será mostrado como criar alertas e ações para quando for recebido um dado indicando gás inflamável e/ou fumaça detectados. Nesta última parte, se fará uso pleno da plataforma IoT Tago.IO e do dispositivo SigFox, tornando este projeto adequado para o contexto de Internet das Coisas.