Pular para o conteúdo principal

Conectando SenseCAP ao Power BI via Node-RED

SenseCAP K1100 - The Sensor Prototype Kit representa a Seeed Studio concentrando a essência da tecnologia de comunicação LoRa® e de produtos de inteligência de borda, para a forma mais fácil de implantar e dominar aplicações LoRa® e IoT.

pir

Atualizável para sensores industriais

Com o controlador S2110 e o registrador de dados S2100 da SenseCAP, você pode facilmente transformar o Grove em um sensor LoRaWAN®. A Seeed não apenas ajuda você na prototipagem, mas também oferece a possibilidade de expandir seu projeto com a série SenseCAP de robustos sensores industriais.

O invólucro IP66, a configuração por Bluetooth, a compatibilidade com a rede LoRaWAN® global, a bateria integrada de 19 Ah e o poderoso suporte do APP tornam o SenseCAP S210x a melhor escolha para aplicações industriais. A série inclui sensores para umidade do solo, temperatura e umidade do ar, intensidade de luz, CO2, EC e uma estação meteorológica 8 em 1. Experimente o mais recente SenseCAP S210x para o seu próximo projeto industrial de sucesso.

Sensor Industrial SenseCAP
S2100
Registrador de Dados
S2101
Temp & Umidade do Ar
S2102
Luz
S2103
Temp & Umidade do Ar & CO2
S2104
Umidade & Temp do Solo
S2105
Umidade & Temp do Solo & EC
S2110
Controlador LoRaWAN®
S2120
Estação Meteorológica 8 em 1

Power BI

Conecte e analise todo o seu conjunto de dados combinando o Power BI com os serviços de análise do Azure — incluindo Azure Synapse Analytics e Azure Data Lake Storage. Analise petabytes de dados, use recursos avançados de IA, aplique proteção adicional de dados e compartilhe com mais facilidade insights em toda a sua organização.

Neste tutorial vamos guiá-lo sobre como importar dados de sensores do SenseCAP para o Power BI para um processamento de dados mais aprofundado usando o Node RED.

Preparação preliminar

Para concluir este tutorial, você precisa de:

Criar nó MQTT

Passo 1. Iniciar o Node-RED

Inicie o Node-RED digitando o comando node-red no terminal e abra um navegador e insira o endereço http://localhost:1880 na barra de endereços para acessar o editor do Node-RED.

Passo 2. Criar nó MQTT

Usamos o nó Network -> mqtt in e configuramos mqtt no formato da SenseCAP API conforme solicitado no tutorial anterior.

  • Server: openstream.api.sensecap.seeed.cc

  • Port: 1883

  • Protocol: MQTT V3.1.1

  • Client ID: O formato é org-<Organization ID>-<Random ID>

    • <Orgnization ID> Seu ID de organização. Nós o obtivemos em Get the SenseCAP API.
    • <Random ID> usa seus próprios números ou letras minúsculas gerados aleatoriamente.
  • Topic Format: /device_sensor_data/<OrgID>/<DeviceEUI>/<Channel>/<Reserved>/<MeasurementID>

OrgIDSeu ID de organização. Nós o obtivemos em Get the SenseCAP API.
DevEUIIdentificação exclusiva dos dispositivos sensores. Essas informações podem ser encontradas na etiqueta na parte de trás do Grove - Wio E5, bem como no dispositivo do console SenseCAP.
ChannelUma interface física no dispositivo à qual o sensor está conectado. Para o kit K1100, o valor padrão aqui é 1.
ReservedCampos reservados.
MeasurementIDID do valor medido. Esse ID pode ser encontrado na seção Measurement IDs da documentação SenseCAP
nota

Recomendamos que um nó mqtt in transmita apenas os valores de um único sensor para evitar confusão de dados causada pela transmissão dos valores de vários sensores ao mesmo tempo.

Step 3. Validate MQTT nodes

Depois de configurado, clique no botão Deploy no canto superior direito para verificar se a configuração foi bem-sucedida. Se estiver preenchido corretamente, a palavra Connected será exibida.

Configurar nó function

O relatório de dados para o Power BI precisa seguir um formato de dados específico, portanto é necessário adicionar um nó function para processar o formato dos dados.

Arraste o nó function da barra de funções à esquerda, clique duas vezes nele para entrar na página de edição e, em seguida, copie o código para On Message.

{
var payload = msg.payload;
var topic = msg.topic;
var strs = topic.split("/");
var length = strs.length
if (length >= 2) {
var measurementId = strs[length - 1]
var body = {}
var value = payload.value
if (measurementId == 4100) {
body.co2 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4103) {
body.soilmoisture = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4150) {
body.accelX = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4151) {
body.accelY = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4152) {
body.accelZ = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4192) {
body.soundintensity = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4193) {
body.lightIntensity = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4195) {
body.tvoc = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4097) {
body.airtemperature = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4098) {
body.airhumidity = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4175) {
body.AIdetection_1 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4176) {
body.AIdetection_2 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4177) {
body.AIdetection_3 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4178) {
body.AIdetection_4 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4179) {
body.AIdetection_5 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4180) {
body.AIdetection_6 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4181) {
body.AIdetection_7 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4182) {
body.AIdetection_8 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4183) {
body.AIdetection_9 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4184) {
body.AIdetection_10 = value
body.timestamp = msg.payload.timestamp
}
msg.payload = body;
}
return msg;
}
dica

O código acima é comum a todos os sensores e você pode optar por colá-lo inteiro em um nó function ou recortar uma seção de um dos sensores que você está usando para utilizar. Vale notar que o nome do sensor no programa precisa corresponder ao nome definido posteriormente no Power BI para que o fluxo de dados seja transferido com sucesso. Por exemplo, no programa acima o sensor de luz tem o nome de valor: lightIntensity.

Criar os conjuntos de dados do Power BI

Passo 1. Faça login na sua conta do Power BI.

Passo 2. Criar um workspace.

Selecione Workspaces e, em seguida, selecione Create a workspace.

Na página Create a workspace, insira In-store analytics - checkout como o nome do Workspace. Selecione Save.

Passo 3. Criar um conjunto de dados de streaming.

Na página do workspace, selecione + New > Streaming dataset.

Na página New streaming dataset, escolha API e selecione Next.

Insira Light-Sensor como o nome do Dataset.

Insira os valores de luz do fluxo na tabela a seguir:

Nome do valorTipo de valor
TimestampDataTime
lightIntensityNumber
dica

O Nome do valor deve ser o mesmo que o nome do programa function no Node RED.

Agora você tem um conjunto de dados de streaming. Por favor, anote a Push URL que você obteve aqui, pois a usaremos na próxima etapa.

Configurar nó http request

Adicione http request da barra de armazenamento à esquerda, clique duas vezes nele para entrar na página de configuração e, em seguida, clique no botão de edição para editar o nó http request.

Copie a URL obtida na seção anterior para o campo URL na página http request.

Basta alterar o método para POST e salvar.

Fazer o deploy e observar os dados

Passo 1. Deploy

Em seguida, conectamos todos os nós e clicamos no botão Deploy e, se tudo estiver configurado corretamente, você verá o nó mqtt in mostrando connected.

Se você quiser ver as informações de log dos dados, pode adicionar um nó debug após o nó function.

Quando o Wio Terminal começar a ligar e funcionar e começar a enviar dados para o servidor SenseCAP PaaS, poderemos então verificar os dados no log de debug do Node-RED.

Passo 2. Configurar dashboards do Power BI

Selecione Workspaces > In-store analytics - checkout.

Selecione + New > Dashboard.

Insira Store analytics como o nome do dashboard e selecione Create.

Adicionar gráficos de linha

Adicione blocos de gráfico de linha para mostrar o valor de luz dos sensores embutidos do Wio Terminal. Use as informações na tabela a seguir para criar os blocos. Para adicionar cada bloco, comece selecionando Edit > Add a tile.

Selecione Custom Streaming Data e, em seguida, selecione Next.

Configure a coordenada horizontal para exibir o carimbo de data/hora e a coordenada vertical para exibir os valores de dados no valor.

Quando o fluxo de dados começar a ser transferido, você poderá ver o dashboard como um gráfico de linha.

Você também pode adicionar mais gráficos ou análises de dados para atender às suas necessidades.

Suporte Técnico e Discussão de Produtos

Obrigado por escolher nossos produtos! Estamos aqui para lhe fornecer diferentes formas de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Declaração

  • A marca LoRa® é uma marca registrada da Semtech Corporation ou de suas subsidiárias.
  • LoRaWAN® é uma marca utilizada sob licença da LoRa Alliance®.
Loading Comments...