O conceito de IoT (Internet das Coisas) tem sido incluído no vocabulário dos especialistas em TI. Embora eu não tenha encontrado esse hub, espero que seja corrigido em breve :)
No entanto, muitas pessoas ainda confundem arquitetura de IoT com arquitetura de automação, onde a principal tarefa é obter informações de sensores e, com base nisso, os mecanismos executivos são controlados.

A arquitetura de TI inclui duas coisas aparentemente incompatíveis: por um lado, esse é um grande número de periféricos com baixo poder de computação, baixo consumo de energia, alta velocidade de reação a eventos e, por outro lado, servidores em nuvem com alto poder de computação para processar grandes matriz de dados, seu armazenamento e classificação, geralmente com elementos de inteligência e análise de máquinas. Esses dois mundos usam princípios completamente diferentes de construção e arquitetura interna. Eles parecem incompatíveis e hoje no mercado de trabalho existem poucos especialistas com conhecimento igual em soluções de Embedded e Cloud. Este é um tipo de "pilha completa". Mas nesse conhecimento reside o poder de unir duas, à primeira vista, tecnologias completamente independentes. Desde a sua integração, obtemos um incrível efeito sinérgico. É como a união de um homem e uma mulher - nojenta e forte, refinada e fraca. Neste artigo, tentarei descrever a arquitetura básica da IoT, considerando o aplicativo "em geral".
A figura abaixo mostra a arquitetura geral da solução de IoT. É muito previsível que tudo comece com sensores. Além disso, quanto melhor o sensor for adequado para sua tarefa, mais eficiente será o sistema. Este é um tipo de "pedra angular" do sistema. É importante observar que o sensor detecta uma mudança no ambiente, não em seu estado estático. Os sensores são divididos em ativos - emitindo os próprios sinais e recebendo reflexão; e passivo - trabalhando apenas na recepção. Naturalmente, estes últimos se beneficiam significativamente em termos de consumo de energia. A maioria dos sensores é baseada na recepção de ondas - som, ultra-som, luz de várias faixas, térmica. No entanto, existe uma categoria de sensores baseada em alterações em suas características físicas, como indutância, capacitância, pressão. Bons resultados são obtidos a partir de uma combinação de vários sensores, como um detector PIR e um sensor capacitivo para detectar movimento.

De qualquer forma, o sensor gera um sinal analógico, que deve ser convertido em um dígito para processamento adicional, que é o que o conversor AtoD faz. Depois de receber informações digitais, elas devem ser processadas pelo processador local do dispositivo periférico. Sua principal tarefa é colocar uma etiqueta das informações recebidas ou simplesmente classificá-las. As tags podem ser simples, como por exemplo - há movimento e mais complexas - movimento + velocidade. Às vezes, são necessárias tags multidimensionais - Movimento, Máquina. Quanto mais complexa a tag, naturalmente mais energia do processador periférico e o correspondente consumo de energia. Por outro lado, quanto mais informativa a tag, menor será a quantidade necessária de informações transmitidas para a nuvem e a correspondente largura de banda menor e a velocidade de reação ao evento também aumentará. Obviamente, todas as tags têm um rótulo de carimbo de data / hora.
O próximo link pode estar na nuvem e na periferia e, às vezes, nas duas partes. O switch redireciona as informações recebidas para vários objetos, classificando tags. Esses objetos podem ser servidores, filas, lambda ou apenas armazenamento. Até agora, o trabalho foi realizado com informações de um dispositivo periférico específico e, de fato, não é diferente do trabalho dos sistemas de controle automatizados. No entanto, no próximo nível - integração, começa uma diferença qualitativa. As informações de vários dispositivos periféricos são resumidas pelo mesmo tipo de tags. Além disso, os tipos de dispositivos periféricos podem ser diferentes. É importante que as tags caiam em um único ponto responsável por receber o evento correspondente - a tag.
Informações adicionais de todos os objetos que somam tags são sistematizadas pelo bloco Analítico. Consiste na lógica básica, ou, por assim dizer, nos cérebros do sistema. Existe AI, Machine Learning, etc. O resultado do trabalho do bloco Analítico é transmitido ao bloco Apresentação para exibição ao usuário. Pode parecer como enviar uma mensagem para um dispositivo móvel, uma programação em uma WEB ou outra.
Como o sistema IoT é distribuído e conectado por um canal de comunicação não confiável, é necessário ter mecanismos para garantir a entrega de informações. No caso de não ser possível transferir informações do dispositivo periférico para a nuvem, são feitas tentativas repetidas de transmissão. A mesma coisa deve acontecer de outra maneira. Para esses fins, é introduzida uma unidade de apresentação virtual do dispositivo periférico, na qual as informações para transmissão ao dispositivo periférico ou seu novo estado são registradas. Geralmente, esse é apenas um arquivo de texto, mas pode haver um modelo de representação mais preciso. Vale ressaltar que as alterações no módulo Virtual View podem ser inicializadas a partir de vários módulos do circuito de entrada, conforme mostrado na figura.
Depois de analisarmos o diagrama de blocos físicos da arquitetura IoT, podemos considerar seu diagrama lógico

Então, tudo começa novamente com sensores que registram a mudança no ambiente ao longo do tempo. O seguinte módulo de identificação realiza a segmentação inicial para determinados eventos do sistema. Em princípio, o desenvolvimento da arquitetura do aplicativo IoT deve começar com uma lista desses eventos. A soma de tags é realizada de acordo com um grupo de dispositivos periféricos com o mesmo tipo de tags. O módulo de integração foi projetado para tomar decisões sobre aproximação (previsão de eventos subsequentes) ou determinação (identificação de uma situação a partir de uma variedade de opções). Essas informações servem como uma espécie de coeficiente de chave para o módulo do modelo virtual do dispositivo periférico, no qual as informações reais do próprio dispositivo periférico são convertidas com base no coeficiente de chave no novo estado do dispositivo periférico.
Agora, um pouco sobre o que não se enquadrava no esquema de arquitetura descrito acima, mas certamente o que você deve ter em mente:
- Armazenamento de informações . O armazenamento de informações deve ocorrer no nível do dispositivo periférico e na nuvem. O dispositivo periférico salva seu programa, configurações, status e armazena temporariamente as informações dos sensores até garantir a transferência para a nuvem. O armazenamento de informações com base na nuvem é óbvio e não requer explicações, pelo menos como parte deste artigo.
- Segurança / autorização . Cada dispositivo periférico deve ser autorizado no sistema e individualmente. Este é um tópico separado que também está além do escopo deste artigo.
- Filas e pipeline . Uma categoria separada de arquitetura é o meio de transmitir informações através do sistema, tanto dentro de dispositivos periféricos quanto na nuvem e entre eles.
Espero que esta breve revisão seja útil. No futuro, pretendo continuar os artigos e criar um ciclo de apelidos dedicado às soluções de IoT. Ficaria grato a todos pelos comentários e tópicos que serão do seu interesse.