'Preparando um produto conectado'

Atualização: 9 de dezembro de 2023

'Preparando um produto conectado'

'Preparando um produto conectado'

Adicionar um dispositivo conectado ao seu portfólio pode ser desafiador. Jonathan Pallant analisa como escolher os 'ingredientes perfeitos'.

 

Os dispositivos conectados tendem a ficar na extremidade mais complexa do espectro do sistema embarcado, independentemente de eles coletarem dados do sensor por si próprios ou fazerem interface com o equipamento pré-existente.

Sua complexidade surge da interação entre suas três partes constituintes: a parte local, que gera os dados ou precisa de algum controle; o sistema remoto que registra os dados e / ou fornece instruções; e a conexão entre eles, que normalmente opera a uma grande distância e é freqüentemente observável (e até mesmo interrompível) por terceiros não confiáveis.

Essas complexidades, no entanto, muitas vezes são superadas pelo melhor envolvimento do cliente, insights de negócios detalhados e até mesmo modelos comerciais inteiramente novos que podem ser alcançados.

O equilíbrio delicado entre complexidade e função significa que construir o tipo certo de dispositivo conectado costuma ser parte arte, parte ciência. Na verdade, é muito parecido com cozinhar uma grande refeição - há praticamente um número infinito de maneiras de reunir os principais ingredientes e pratos. Alguns dos quais podem ser montados muito rapidamente, enquanto outros levarão mais tempo e esforço para serem aperfeiçoados, mas podem ser mais adequados ao gosto de alguém.

Uma abordagem é dividir o processo de desenvolvimento de IoT em várias opções específicas, mas fundamentalmente conectadas. Mas nem sempre é fácil decidir quais decisões tomar primeiro, e sempre há o risco de que uma decisão precoce possa restringir suas escolhas posteriores e fazer com que todo o sistema fique abaixo do ideal.

Agrupamos aliterativamente essas opções em seis áreas diferentes a serem consideradas ao planejar o "banquete" perfeito da IoT.

A conectividade é provavelmente o melhor lugar para começar, pois é o componente fundamental que mantém o resto da oferta. O prato principal, se você quiser.

O curso de conectividade

A conectividade chave tecnologia os requisitos para produtos são definidos por custo, consumo de energia, alcance, taxa de dados e latência. Mas, em última análise, eles estão ligados pelas Leis da Física e da Economia. E todas as tecnologias atuais existem em seu próprio ponto ideal dentro deste espaço multidimensional.

A maioria dos sistemas provavelmente precisará de conectividade sem fio para acessar a Internet, o que, infelizmente, é normalmente menos confiável e mais caro do que usar uma conexão com fio. Quase todos os padrões sem fio envolvem pelo menos duas classes de dispositivos – um componente menor e de menor consumo de energia (como um telefone celular) e um gateway maior e de maior consumo de energia (como um Wi-Fi roteador). Você também precisa considerar a propriedade e a confiabilidade desses gateways, comparando, por exemplo, o roteador Wi-Fi de um proprietário com o acesso a uma rede móvel.

Qualquer que seja o caminho que você vá, é quase sempre melhor confiar nos padrões de conectividade existentes com ampla aceitação no mercado, em vez de desenvolver algo do zero.

O curso de chipset

A primeira decisão a tomar é se optar por um chipset que integre processador, memória e rádio, ou se combinar vários ingredientes para obter a combinação certa de desempenho, preço e consumo de energia.

Se você precisa de conectividade celular de baixa potência, seja com LTE-M ou NB-IoT, um dispositivo como o Nordic nRF9160 é um pacote atraente de CPU, RAM, Flash, GPS e Modem. Mas, se você puder pagar o PCB espaço, você pode preferir a flexibilidade de um "padrão" microcontrolador e um LTE separado módulo. Uma história semelhante se aplica a padrões sem fio como Wi-Fi e Bluetooth, onde existem microcontroladores disponíveis com rádio integrado e também módulos de modem independentes.

Obviamente, os dispositivos IoT não funcionam apenas em microcontroladores básicos. Existem muitos exemplos em que o poder e a capacidade técnica de um sistema totalmente baseado em kernel Linux foi a escolha certa, mesmo com os efeitos colaterais no consumo de energia, espaço e carga de suporte de software.

O Curso Básico

Este estágio envolve trazer software pré-existente (essencialmente “IP de terceiros”) incluindo: o kernel do Sistema Operacional (ou Sistema Operacional em Tempo Real); os drivers do chipset; e o pacote de suporte de placa (BSP) que personaliza esses drivers para seu design de PCB específico.

Os fornecedores de chipset geralmente fornecem um Kit de Desenvolvimento de Software (SDK) gratuito que contém tudo isso. Mas vale lembrar que este SDK pode não funcionar com o silício de outra pessoa, limitando sua capacidade de mudar de fornecedor no futuro. Se isso for importante, talvez considere uma oferta independente de fornecedor, como Amazon FreeRTOS ou ThreadX da Microsoft.

Os sistemas baseados em Linux também têm opções semelhantes - geralmente com uma “distribuição” gratuita para você começar. Mas você pode preferir fazer o seu próprio teste ou usar uma distribuição Linux padrão mais genérica, como o Ubuntu Smart Start ou o Fedora IoT. Tudo depende dos seus requisitos de segurança, prazos de desenvolvimento e quaisquer limitações do sistema no consumo de energia e espaço de armazenamento.

O curso do código

Claro, você não pode simplesmente instalar o Linux embutido no seu dispositivo ou flash em um RTOS e encerrar o dia. Você precisará adicionar o "molho secreto" por

escrever código para personalizar este sistema de acordo com suas necessidades. Isso pode ser tão simples quanto especificar os terminais e chaves para fazer o upload das leituras do sensor, ou tão complexo quanto executar várias pilhas de protocolo sob medida e processamento de IA sofisticado na borda para uma boa medida. De qualquer forma, a linguagem e as ferramentas que você usa terão um grande impacto em seu programa de desenvolvimento inicial, bem como no suporte e manutenção contínuos.

A linguagem de programação C tem sido o padrão há quase 40 anos, mas talvez haja valor em tentar uma linguagem de sistemas segura para a memória, como Rust ou mesmo algo como MicroPython. Mas se você descobrir que o seu chipset ou núcleo não pode atender à sua escolha preferida aqui, pode ser necessário voltar e repensar.

O Curso de Nuvem

A maioria dos desenvolvimentos de dispositivos conectados envolve a coleta de dados para análise posterior e a emissão de comandos para controlar dispositivos “no campo”. Faz sentido quase universalmente transferir esse requisito de computação para uma das ofertas pré-construídas de gerenciamento de IoT e armazenamento de dados disponíveis nos grandes provedores de “nuvem”, em vez de usar sistemas locais.

Seja qual for a plataforma de nuvem que você escolher, você precisará equilibrar os custos iniciais de integração com o suporte e a manutenção contínuos. E lembre-se, você precisará de suporte de seus provedores de nuvem, chipset e conectividade por toda a vida útil de seu produto em campo.

E finalmente ... o curso de comunicação

O protocolo de comunicação padrão que seu código usará para falar com seu provedor de nuvem geralmente será baseado em texto (como JSON ou XML) executado em um link HTTP orientado para conexão criptografado.

Embora esse tipo de pilha seja onipresente (é como a maioria dos sites atuais são construídos), sua natureza de texto simples aumenta os requisitos de largura de banda em seus recursos de conectividade e chipset, e a natureza orientada à conexão pode interagir mal com alguns serviços sem fio de alta latência. Por exemplo, se você está projetando um sistema de monitoramento de energia ultrabaixa usando NB-IoT, pode ser melhor com um protocolo sem conexão binário como CoAP.

Além disso, poder contar com uma pilha de protocolos testada no mundo real e bem usada (como a que vem com seu software Core) quase certamente será melhor do que tentar girar você mesmo.

Vale lembrar

Existem poucos absolutos em tecnologia e sempre haverá uma gama de soluções para atender às suas necessidades. O que funciona melhor dependerá dos seus orçamentos, prazos e das habilidades que você tem disponíveis internamente, de um parceiro de desenvolvimento externo ou de quaisquer relacionamentos existentes com fornecedores de hardware, software ou rede. Mas mesmo a melhor solução técnica nunca se tornará vencedora, a menos que chegue ao mercado a tempo e com a combinação certa de preço, especificações e disponibilidade.