Pular para o conteúdo principal

Conectando SenseCAP ao InfluxDB via Node-RED

SenseCAP K1100 - The Sensor Prototype Kit representa a Seeed Studio concentrando a essência da comunicação LoRa® em tecnologia e produtos de inteligência de borda, para a implantação e o domínio mais fáceis de 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 só ajuda você com a prototipagem, mas também oferece a possibilidade de expandir seu projeto com a série SenseCAP de robustos sensores industriais.

A carcaça IP66, a configuração via Bluetooth, a compatibilidade com a rede global LoRaWAN®, a bateria interna de 19 Ah e o forte 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. e Umidade do Ar
S2102
Luz
S2103
Temp. e Umidade do Ar & CO2
S2104
Umidade e Temp. do Solo
S2105
Umidade e Temp. do Solo & EC
S2110
Controlador LoRaWAN®
S2120
Estação Meteorológica 8 em 1

Sobre o InfluxDB

InfluxDB é um banco de dados de séries temporais de código aberto, com foco em leitura de alto desempenho, gravação de alto desempenho, armazenamento eficiente e análise em tempo real de grandes quantidades de dados de séries temporais. Além de protocolos nativos como HTTP e UDP, também é compatível com protocolos de comunicação de componentes como CollectD, Graphite, OpenTSDB e Prometheus. Amplamente utilizado em monitoramento DevOps, monitoramento de IoT, análise em tempo real e outros cenários.

O conteúdo deste capítulo continuará a usar o Node-RED apresentado anteriormente e facilitará o gerenciamento do kit K1100 no InfluxDB por meio do uso do Node-RED.

Se você ainda não instalou ou não sabe o que é Node-RED, consulte Tutoriais de Node-RED & SenseCAP.

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 o mqtt no formato da SenseCAP API conforme solicitado no tutorial anterior.

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

  • Porta: 1883

  • Protocolo: 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.
  • Formato do Tópico: /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 de 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. Este ID pode ser encontrado na seção Measurement IDs da documentação do SenseCAP

Passo 3. Validar nós MQTT

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

Configurar InfluxDB

Passo 1. Registrar-se ou fazer login no InfluxDB

Se você já se registrou no InfluxDB, faça login no site do InfluxDB.

Se você não usa ou não se registrou no InfluxDB, conclua seu registro e login aqui.

dica

Ao se registrar, pode aparecer uma página pedindo para você escolher o provedor, você pode escolher de acordo com sua preferência ou simplesmente escolher um.

Passo 2. Obter API Token

Conforme mostrado abaixo, clique em Bucket.

Em seguida, clique em CREATE BUCKET.

Digite o nome na nova janela pop-up e selecione o período de retenção de dados gratuito - 30 dias.

Depois, conforme mostrado abaixo, clique em API Tokens.

Então escolhemos criar um Custom API Token.

Dê permissões de read e write aos Buckets que acabamos de criar e clique no botão Create abaixo.

Depois de criado, você pode salvá-lo copiando o API Token para a área de transferência. Salve-o em um local seguro por enquanto, pois iremos usá-lo em um passo posterior.

nota

Se você fechar a janela aqui, não poderá obter este API Token novamente.

Configurar Node-RED

Passo 1. Baixar Paletts do InfluxDB

Clique na barra de menu superior direita e selecione Settings.

Pesquise e instale node-red-contrib-influxdb em Paletts -> Install.

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

Passo 2. Editar o nó influx.batch:

  • Version: 2.0.
  • URL: Obtida em Settings -> Orgnization Profile.
  • TOKEN: Que você gera na seção Obtain API Token.

Quando terminar, clique no botão Add no canto superior direito para voltar à página de propriedades do influx batch, neste ponto preencha sua Orgnization (o padrão é o endereço de e-mail que você usou para se registrar no InfluxDB) e o nome do Bucket.

Passo 3. Configurar o nó function

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

Arraste o nó function da barra de funções à esquerda, clique duas vezes nele para entrar na página de edição e 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
measurement = "co2"
} else if (measurementId == 4103) {
body.soilmoisture = value
measurement = "soilmoisture"
} else if (measurementId == 4150) {
body.accelX = value
measurement = "accelX"
} else if (measurementId == 4151) {
body.accelY = value
measurement = "accelY"
} else if (measurementId == 4152) {
body.accelZ = value
measurement = "accelZ"
} else if (measurementId == 4192) {
body.soundintensity = value
measurement = "soundintensity"
} else if (measurementId == 4193) {
body.lightIntensity = value
measurement = "lightIntensity"
} else if (measurementId == 4195) {
body.tvoc = value
measurement = "tvoc"
} else if (measurementId == 4097) {
body.airtemperature = value
measurement = "airtemperature"
} else if (measurementId == 4098) {
body.airhumidity = value
measurement = "airhumidity"
} else if (measurementId == 4175) {
body.AIdetection_1 = value
measurement = "AIdetection_1"
} else if (measurementId == 4176) {
body.AIdetection_2 = value
measurement = "AIdetection_2"
} else if (measurementId == 4177) {
body.AIdetection_3 = value
measurement = "AIdetection_3"
} else if (measurementId == 4178) {
body.AIdetection_4 = value
measurement = "AIdetection_4"
} else if (measurementId == 4179) {
body.AIdetection_5 = value
measurement = "AIdetection_5"
} else if (measurementId == 4180) {
body.AIdetection_6 = value
measurement = "AIdetection_6"
} else if (measurementId == 4181) {
body.AIdetection_7 = value
measurement = "AIdetection_7"
} else if (measurementId == 4182) {
body.AIdetection_8 = value
measurement = "AIdetection_8"
} else if (measurementId == 4183) {
body.AIdetection_9 = value
measurement = "AIdetection_9"
} else if (measurementId == 4184) {
body.AIdetection_10 = value
measurement = "AIdetection_10"
}
msg.payload = [{
measurement: measurement,
fields: body,
tags: {
device: "SenseCAP K1100"
},
timestamp: new Date()
}];
}
return msg;

Depois conectamos todos os nós e clicamos no botão Deploy e, se tudo estiver configurado corretamente, você poderá 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, então poderemos verificar os dados no log de debug do Node-RED.

Configurar dashboards visuais do InfluxDB

Para obter uma visualização mais visual dos dados do sensor, podemos desenhar alguns gráficos de linha.

Volte para o InflucDB Cloud e clique em CREATE DASHBOARD para ADD CELL.

Se o SenseCAP tiver começado a enviar mensagens de dados para o InfluxDB, então você poderá ver o rótulo do sensor nesta página. Para o conteúdo dos dados que você deseja exibir, basta marcar a caixa.

Solução de Problemas

P1: Por que não consigo encontrar a Palette no Node-RED?

R: Se você não conseguir encontrar a Palette nas configurações, verifique se há uma mensagem de erro em seu terminal quando iniciar o Node-RED.

O cenário mais comum é que sua versão do npm é muito antiga para iniciar o editor de Palette.

Se sua situação for como a descrita acima, execute o Powershell como administrador e digite o seguinte comando para atualizar o npm.

npm install -g npm

Então basta reiniciar o Node-RED.

Suporte Técnico & Discussão de Produtos

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos 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.

Loading Comments...