Exemplos de cálculo
O nó de atributo Initiate no IoT Logic oferece uma ampla gama de cálculos por meio de Navixy IoT Logic Expression Language. Este guia fornece exemplos práticos de cálculos comuns para ajudá-lo a extrair o máximo valor dos seus dados de IoT.
Considerações importantes
Ao criar cálculos, tenha em mente estes pontos:
Validade dos nomes de atributos: Certifique-se de usar nomes de atributos corretos nos cálculos. Você pode consultar os nomes de atributos existentes usando Data Stream Analyzer, ou inseri-los com gGerenciamento de atributos usando autocompletar.
Validade dos dados: Garanta que suas expressões tratem valores nulos potenciais ou leituras inválidas de forma adequada
Impacto no desempenho: Cálculos complexos com muitas funções aninhadas podem afetar a velocidade de processamento para dados de alta frequência
Restrições matemáticas: Funções como logaritmo e raiz quadrada exigem valores de entrada positivos
Referências históricas: Ao usar valores indexados (por exemplo,
value('param', 1, 'valid')), certifique-se de ter dados históricos suficientes e use sintaxe completa da expressão
Cálculos básicos
Conversões de unidade
Converter medições entre diferentes unidades é uma das operações mais comuns no processamento de dados de IoT.
Conversão de velocidade (km/h para mph)
can_speed/1.609Aplicação prática: Esta conversão padroniza os dados de velocidade do veículo para regiões que utilizam medidas imperiais. Ao realizar este cálculo no IoT Logic em vez de em aplicações posteriores, você garante consistência em todos os sistemas que consomem os dados.
Conversão de temperatura (Celsius para Fahrenheit)
temperature * 1.8 + 32Aplicação prática: Esta conversão torna as leituras de temperatura compreensíveis para usuários mais familiarizados com a escala Fahrenheit. É especialmente valiosa para organizações multinacionais que atuam em regiões com diferentes padrões de medição.
Cálculo de diferenças
Comparar leituras atuais com valores anteriores ajuda a identificar mudanças e tendências em seus dados.
Detecção de variação de temperatura
temperature - value('temperature', 1, 'valid')Aplicação prática: Esse cálculo ajuda a detectar flutuações rápidas de temperatura que podem indicar problemas de equipamento ou mudanças ambientais. Ao criar um atributo dedicado para essa diferença, você pode configurar alertas para alterações súbitas sem processamento complexo a jusante.
Cálculos baseados em tempo
Cálculos de tempo ajudam a entender o comportamento do dispositivo ao longo do tempo e medir padrões operacionais.
Encontrar o tempo decorrido entre as últimas leituras válidas
srvTime('avl_25', 0, 'valid') - srvTime('avl_25', 1, 'valid')Aplicação prática: Esse cálculo mede o intervalo entre transmissões de dados consecutivas, o que pode ajudar a identificar problemas de comunicação ou validar se os dispositivos estão reportando nas frequências esperadas. Este exemplo mostra o cálculo entre as duas últimas leituras válidas, mas pode ser ajustado para lidar com quaisquer dois valores históricos.
Converter timestamp para formato legível por humanos
dtFormat(genTime('can_fuel_1', 0, 'all'))Aplicação prática: Converter timestamps Unix para o formato ISO 8601 torna os dados mais legíveis em logs e relatórios. Esse formato é amplamente suportado por ferramentas de análise e bancos de dados, simplificando a integração com outros sistemas.
Funções matemáticas avançadas
O IoT Logic suporta operações matemáticas sofisticadas por meio de suas funções matemáticas incorporadas.
Arredondamento de valores
Arredondar temperatura para o inteiro mais próximo
math:round(value('temperature_2', 0, 'valid'))Aplicação prática: O arredondamento é valioso quando a precisão exata não é necessária ou quando se deseja reduzir ruído nas leituras de sensores. Por exemplo, arredondar dados de sensores ambientais pode ser suficiente para monitoramento climático geral, ao mesmo tempo em que reduz requisitos de armazenamento. Essa função também é útil ao criar categorias ou faixas de valores (por exemplo, agrupar leituras de temperatura em incrementos de 5 graus).
Cálculos logarítmicos
Logaritmo natural de um valor
math:log(value('temperature_2', 0, 'valid'))Aplicação prática: Transformações logarítmicas são particularmente úteis para:
Comprimir dados que abrangem várias ordens de magnitude em uma faixa mais manejável
Converter relações exponenciais em lineares para análise mais fácil
Trabalhar com certos tipos de sensores que possuem características de resposta logarítmica
Cálculos de nível de som, onde decibéis são unidades logarítmicas
Medições de pH em monitoramento ambiental
Operações de raiz quadrada
Calcular raiz quadrada de uma leitura
math:sqrt(value('temperature_2', 0, 'valid'))Aplicação prática: Funções de raiz quadrada são valiosas para:
Converter entre potência e amplitude em medições elétricas
Calcular desvios padrão na análise estatística de dados de sensores
Determinar valores de root mean square (RMS) para parâmetros elétricos
Cálculos de distância em espaço multidimensional (por exemplo, trilateração para posicionamento)
Normalizar certos tipos de dados de sensores
Operações combinadas
Você pode criar cálculos ainda mais complexos combinando múltiplas funções e operações.
Média geométrica com arredondamento
math:round(math:sqrt(value('temperature_1', 0, 'valid') * value('temperature_2', 0, 'valid')))Aplicação prática: Este cálculo computa a média geométrica das leituras de dois sensores de temperatura e arredonda o resultado para fornecer um valor mais limpo. A média geométrica é frequentemente mais apropriada do que uma média aritmética ao lidar com taxas, razões ou medições em que a multiplicação é a forma natural de combinar valores.
Cálculo de valor padronizado
(value('sensor_reading', 0, 'valid') - value('sensor_min', 0, 'valid')) / (value('sensor_max', 0, 'valid') - value('sensor_min', 0, 'valid')) * 100Aplicação prática: Isso normaliza uma leitura de sensor para uma escala percentual de 0–100%, permitindo comparações padronizadas entre diferentes sensores com faixas variadas. Isso é particularmente útil para criar painéis uniformes ou acionar alertas com base em valores relativos em vez de medições absolutas.
Atualizado
Isto foi útil?