Nick é um membro empático da comunidade, desenvolvedor full-stack, alpinista e ciclista ávido. Atualmente, ele é desenvolvedor sênior na Viam, onde ajuda pessoas a construir e gerenciar suas máquinas inteligentes em qualquer lugar do mundo. Ele está convidado…
No 10º aniversário do Kubernetes em Mountain View: história lembrada
7 de junho de 2024Kunitsu-Gami: Path of the Goddess será lançado em 19 de julho
7 de junho de 2024Os dados dos sensores oferecem um tesouro de insights do mundo físico para os cientistas de dados. Desde o rastreamento das flutuações de temperatura em uma estufa até a análise das vibrações de máquinas industriais em uma fábrica, esses pequenos dispositivos capturam informações cruciais que podem ser usadas para pesquisa e desenvolvimento inovadores. A jornada desde a coleta de dados brutos do sensor até a análise acionável pode ser repleta de obstáculos, à medida que as realidades dos componentes de hardware e das condições ambientais entram em jogo.
A abordagem típica para captura de dados de sensores geralmente envolve um fluxo de trabalho complicado entre as diversas equipes envolvidas, incluindo cientistas e engenheiros de dados. Enquanto os cientistas de dados definem meticulosamente os requisitos dos sensores e preparam seus notebooks para processar as informações, os engenheiros lidam com as complexidades da implantação de hardware e das atualizações de software que reduzem a capacidade dos cientistas de ajustar rapidamente essas variáveis em tempo real. Isto cria um longo ciclo de feedback que atrasa o ritmo da inovação em toda a organização.
Observei algumas áreas onde esse processo pode ser melhorado:
- Implantações de dispositivos
- Observabilidade e atualizações
- Segurança e resiliência
Imagine um mundo onde as pessoas que dependem de dados de sensores controlam as rédeas quando se trata de coletá-los desses dispositivos em campo. Chega de esperar que outras equipes (que têm seu próprio backlog de trabalho) por configurações básicas ou filas de implantação que atrapalhem a exploração. Ao agilizar o processo e reduzir as diversas barreiras de entrada, as equipes de dados poderiam ter mais informações e experimentos para melhorar de forma eficiente seu trabalho.
Para demonstrar como podemos melhorar nessas áreas-chave, vou usar Viam para configurar uma máquina inteligente para capturar dados de sensores de movimento que estou coletando para analisar as condições de trabalho de minhas máquinas de lavar domésticas, que têm enfrentado problemas à medida que envelhecem. Viam é uma plataforma que ajuda a fechar a lacuna entre hardware e software com seus serviços em nuvem e software de código aberto.
Implantações de dispositivos repetíveis
Embora o acesso a computadores de placa única Linux e microcontroladores compatíveis com Arduino tenha se tornado mais fácil do que nunca, permitindo que muito mais pessoas comecem a controlar o hardware; ainda há uma curva de aprendizado para criar um programa confiável que funcione nesses dispositivos alvo.
Para o meu projeto, escolhi um Raspberry Pi 4B que já tinha em mãos e uma combinação de giroscópio e sensor de acelerômetro MPU-6050 para obter vários pontos de dados variados. Com o Raspbian (a distribuição Raspberry Pi do Debian) já rodando no meu Pi e já conectado à minha rede local, criei uma nova máquina no Viam e instalei servidor viam com minha configuração de conexão seguindo o documentação. Com meu Pi conectado ao Viam, conectei meu sensor de movimento aos pinos I2C principais e adicionei o sensor de movimento à configuração da máquina no aplicativo. Agora o dispositivo está pronto para ser implantado na minha lavanderia e começar a capturar dados do sensor!
Mesmo sendo alguém com experiência em programação de hardware, é difícil superar a acessibilidade desse fluxo de trabalho. Se eu precisar substituir a placa, posso instalar viam-server
e a configuração da conexão com o novo computador e estará de volta aos negócios rapidamente. Se eu precisasse expandir isso para várias outras máquinas para generalizar meu conjunto de dados, poderia crie um fragmento de configuração reutilizável como uma única fonte de verdade em toda a minha frota pessoal.
Monitoramento remoto e atualizações para componentes de sensores
Conforme mencionado anteriormente, as equipes de dados tendem a ver os resultados do processo de captura de dados depois que eles são agrupados, e não na fonte. Se houver algum problema com essa fonte, como defeitos de hardware no sensor ou adulteração do ambiente, a equipe não saberá até que as informações inúteis tenham afetado o restante do conjunto de dados e poderá não ter acesso para desligá-lo até que uma equipe de engenharia parceira tem largura de banda para ajudar.
Depois de configurar o Pi e o sensor na lavadora problemática, quero verificar o tipo de leituras emitidas pelo hardware. Na guia Controle do aplicativo, posso ver os valores transmitidos junto com alguns outros detalhes sobre o status da minha máquina. Posso mover-me pela localização do sensor para ver como isso afeta as leituras antes de definir a posição de longo prazo.
À medida que começo a aprender a linha de base dos valores esperados durante os diferentes estágios do ciclo de vida, posso monitorar a integridade do sensor por meio deste painel remoto ou do aplicativo móvel Viam enquanto estiver em trânsito.
Agora que tenho uma boa ideia dos dados que obterei do sensor, quero começar a salvá-los para análises e experimentos posteriores. Eu adicionei o Serviço de gerenciamento de dados Viam à configuração da minha máquina, o que me permitirá controlar onde os dados do sensor devem ser armazenados no dispositivo, várias tags a serem aplicadas aos dados e com que frequência sincronizá-los com a nuvem.
Com isso instalado, posso atualizar a configuração do meu sensor para capturar os valores que me interessam e a frequência com que posso obter esses valores. Com o sensor de movimento, que na verdade contém alguns sensores individuais (giroscópio, acelerômetro, temperatura), posso optar por agrupar todas as leituras ou dividi-las como registros individuais quando sincronizadas com o serviço de nuvem. Como ainda não tenho certeza de como usarei esses dados, vou reunir todas as leituras; se eu achar que preciso apenas de um subconjunto de informações, poderei atualizar a configuração posteriormente para economizar armazenamento.
Esse tipo de flexibilidade e controle coloca em minhas mãos o poder de otimizar meus requisitos de dados sem precisar trabalhar com outras equipes. Se eu souber que há alguma condição ambiental, como mover as máquinas de lavar para manutenção ou uma tempestade, que afetará o modo como elas funcionam, posso desativar a captura de dados sem afetar o restante do conjunto.
Sincronização segura e resiliente de dados em condições de rede
Para coletar dados de sensores, os serviços exigem que os dados sejam enviados à medida que são coletados, independentemente do status ou da confiabilidade da rede. Isso levará à perda de dados ou ao processamento extra necessário para lidar com conexões de dispositivos flakey e off-line; muito difícil ser um dispositivo IoT sem a internet.
Para o meu projeto, mesmo a minha casa não tem 100% de disponibilidade; quer meu ISP tenha um incidente ou eu esteja reconfigurando meus roteadores e pontos de acesso, os dispositivos em minha rede local precisam ficar off-line ocasionalmente. Essa resiliência está integrada ao serviço de gerenciamento de dados que já adicionei à configuração da minha máquina. Se o Raspberry Pi perder a conexão ou a rede ficar instável, os dados continuarão a ser capturados no sistema de arquivos local até que o serviço possa sincronizar novamente com êxito antes de limpar os dados em cache. Mesmo que o dispositivo seja totalmente desativado, sei que posso encontrar esses dados no dispositivo para upload manual, se necessário.
Se o dispositivo reiniciar repentinamente devido a uma queda de energia no meio de uma sincronização, sei que posso contar com o gerenciador de dados para resolver essa interrupção quando ele voltar a ficar on-line, sem enviar dados duplicados que eu precisaria limpar do meu conjunto de dados posteriormente.
Embora a perda de dados do meu projeto não seja o fim do mundo, é reconfortante saber que essas mesmas considerações seriam aplicadas em qualquer trabalho futuro que tivesse requisitos de consistência mais elevados.
Crie pipelines de dados de sensores de dados mais inteligentes
Ao planejar sua próxima grande iniciativa com base no feedback de hardware do mundo real, pense nos fatores que impactarão seu sucesso.
- Com que rapidez você pode implantar e iterar nesses dispositivos?
- Quanto controle você tem como equipe de dados para gerenciar o tipo e a quantidade de informações coletadas?
- Esses sensores se recuperarão rapidamente da instabilidade do ambiente em que estão colocados?
Acabei de começar minha jornada na ciência de dados e no aprendizado de máquina, mas estou garantindo que tenho todas as ferramentas certas para me ajudar ao longo do caminho.
YOUTUBE.COM/THENEWSTACK
A tecnologia avança rápido, não perca um episódio. Inscreva-se em nosso canal no YouTube para transmitir todos os nossos podcasts, entrevistas, demonstrações e muito mais.
SE INSCREVER