Tecnologia sem fio ideal para aplicativos de IoT com alta taxa de dados e baixa latência

8

Estou planejando usar o sensor de orientação absoluta BNO055 para coletar as medidas do acelerômetro, magnetômetro e giroscópico para uma aplicação. A partir de agora, desejo que os dados sejam enviados a uma taxa de 10 Hz para uma entidade de coleta de dados (Pi ou BeagleBone com tecnologia sem fio).

A configuração pode ser:

  • 3 coisas de IoT
  • 1 coisa de coleção central
  • Topologia em estrela com ponto de coleta no centro

Pelo que minha experiência diz, a WLAN 802.11 parece a única opção ideal, em oposição à 802.15.4 ZigBee e / ou Bluetooth LE (4.0) . O motivo são os grandes conjuntos de dados que o BNO055 geraria e enviaria a uma taxa muito rápida (~ 0,1 s ). Estou apenas criando um protótipo simples e, portanto, prefiro usar o UDP simples para enviar os dados.

Atualmente, estou focando no fator de alcance, pois o posicionamento será dentro do casco de um barco e isso também implica que haverá uma perda considerável de dados devido a superfícies metálicas. Mas posso ter a liberdade de executar os nós com potência máxima (conectado a fontes de alimentação ou baterias de Li-ION altas)

Questões:

  1. A WLAN é a escolha certa da tecnologia sem fio para o aplicativo? Caso contrário, que outra tecnologia devo tentar?

  2. Quais podem ser os obstáculos que podem ocorrer para um aplicativo de IoT de baixa latência (10 Hz) que eu posso evitar ou observar?

Shan-Desai
fonte
11
O 802.11 certamente fornecerá uma ampla taxa de dados. O alcance é uma consideração aqui? Você também sabe quantos dados seus sensores enviarão a cada ciclo?
sob
11
As coisas de ponta são alimentadas por bateria?
Helmar
@ Helmar, eu acho que você está perguntando como usar WiFi em dispositivos alimentados por bateria irá drená-los muito rápido?
sob
Atualmente, estou focando no fator de alcance, pois o posicionamento será dentro do casco de um barco e isso também implica que haverá uma perda considerável de dados devido a superfícies metálicas. Mas eu posso tomar a liberdade de executar os nós em plena potência (conectado com fontes de alimentação ou baterias de alta Li-Ion)
Shan-Desai
11
@ Shan-Desai Editei sua pergunta para incluir essas informações. É sempre preferível ter todas as informações na pergunta. Sinta-se à vontade para editar de forma mais ao seu gosto.
Helmar

Respostas:

7

Latência vs Taxa

um aplicativo de IoT de baixa latência (10 Hz)

Este é um erro conceitual. Latência e taxa são amplamente independentes. Você pode ter um sistema que registre milhares de leituras por segundo, armazene-as em um cartão SD e, uma vez por mês, alguém visite o site remoto, extraia o cartão e envie por e-mail para você - esse sistema teria uma taxa alta , mas também extremamente latência . Ou você pode ter um sistema que relate leituras dentro de alguns microssegundos após a sua realização, mas faça apenas uma leitura por hora.

Portanto, a primeira coisa que você precisará fazer é esclarecer sua exigência - você precisa coletar muitos dados ou precisa obtê-los enquanto eles ainda são muito atuais, ou ambos?

Uma taxa de atualização de 10 Hz é relativamente viável para a maioria dos esquemas de transmissão digital, exceto naqueles em que há um limite regulatório no número de transmissões por período de tempo ou naqueles que têm uma taxa de dados tão baixa (seja por banda estreita para link) eficiência ou porque são rudes) que simplesmente não conseguem mover a quantidade de dados que você deseja enviar com rapidez suficiente.

Latência vs. Confiabilidade e Complexidade

Como o tempo real de propagação em pequenas áreas requer circuitos exóticos para medir, para os sistemas de rádio locais, o tempo necessário para mover uma mensagem é basicamente o tempo necessário para codificá-la - a menos que os aspectos do projeto do sistema adicionem mais. Um sistema que precisa fazer muita "contemplação" de uma mensagem pode adicionar atraso, embora com um software decente que provavelmente será leve. Um que exige vários ciclos de "discussão" por mensagem, necessariamente aumenta o tempo pelo número de ciclos e por qualquer tempo de resposta do link ou protocolo.

Mas a fonte mais provável de atraso é uma Camada de Confiabilidade - se uma mensagem está ausente ou chega corrompida, o que o sistema deve fazer? Se tentar novamente, isso quase invariavelmente significa adicionar atraso, enquanto se apenas soltar a mensagem e seguir em frente, isso pode significar lacunas.

Para o seu tipo de aplicação, o que pode funcionar bem é um esquema não confiável , mas um em que cada pacote inclui não apenas uma medida atual, mas repete algumas anteriores (ou para um aplicativo de contagem, um total em execução). E essas não precisam necessariamente ser as medições mais recentes imediatamente - dependendo dos padrões de interferência, o melhor esquema pode acabar sendo algo como atual, anterior, próximo anterior, 5º anterior, 13º anterior ou qualquer outra coisa, para que o pacotes que passam tendem a ter uma grande chance de incluir também os dados que não foram.

Sistemas Práticos

Muitos sistemas de 2,4 GHz disponíveis no mercado provavelmente funcionariam bem no seu exemplo, se houver linhas de visão razoáveis ​​ou caminhos de vazamento entre os componentes.

  • Os rádios digitais de 2,4 GHz do estilo nRF24L01 lidam facilmente com a taxa de dados e são facilmente usados ​​para criar sistemas de salto de latência relativamente baixos - por exemplo, esses e seus concorrentes são usados ​​para pilotar interativamente muitos drones de consumo baratos.

  • O BTLE possui modos com complexidade de estado que podem ser problemáticos; no entanto, o modo de publicidade é bastante simples e pode ser executado com o tipo de taxa de repetição que você está procurando. Os receptores personalizados construídos em torno de placas incorporadas conforme sua proposta devem poder acompanhar e fornecer todos os detalhes de cada pacote. Também há compatibilidade cruzada com smartphones, no entanto, nesse caso, o sistema operacional host pode fornecer apenas uma pequena minoria do tráfego e pode não informar constantemente quando o conteúdo do pacote é alterado.

  • é claro que existem muitas outras opções

Chris Stratton
fonte