O que devemos construir a IoT? Sua IoT na Amazon em um dia

Para começar a lidar com as plataformas IoT (Internet das Coisas), fui interrompido pela falta de um dispositivo IoT compatível com protocolos e métodos de acesso. Mas quando percebi que você pode usar um smartphone comum como dispositivo, a implementação de uma cadeia de trabalho levou um dia.

Pegue um smartphone que emule um dispositivo IoT com sensores de temperatura, umidade e pressão e envie leituras para a plataforma Amazon IoT. Na plataforma, estabeleceremos uma regra que, ao receber dados do nosso dispositivo, chamará um serviço de notificação, que por sua vez enviará um e-mail com os dados recebidos.

É claro que esse sistema possui pouco valor prático, mas permite que você entenda como tudo funciona:

imagem

Por que a plataforma IoT da Amazon? E por que você precisa entender como as plataformas de IoT funcionam?

M2M - IoT - IoE


Existem cada vez mais dispositivos de IoT no mundo, tanto as agências analíticas quanto as estatísticas mundiais falam sobre isso.

Nós mesmos podemos ver claramente que mais e mais sistemas estão conectados à Internet e são controlados automaticamente ou por pessoas: residências inteligentes, carros, dispositivos portáteis. E agora eles estão falando não apenas sobre a Internet das coisas, mas sobre a Internet das Coisas (Internet of Everything), porque os dispositivos que se conectam às plataformas são usados ​​não apenas em sistemas industriais, mas também por pessoas.

Portanto, precisamos entender os princípios do trabalho, pelo menos para entender como você pode usar seus dispositivos com eficiência ou quais são as limitações e nuances da segurança.

Por que amazon?


A Amazon cria serviços levando em consideração as tendências mundiais e, como resultado, são obtidos sistemas "universais", cujos princípios básicos são usados ​​por todos os fabricantes. A plataforma em nuvem tem uma vantagem ainda maior - essa é a capacidade de implantar o sistema por conta própria em algumas horas, sem envolver o serviço e a segurança corporativos de TI.

Por que um smartphone e não um IoT Starter Kit?


Em uma inspeção mais detalhada, o smartphone emula bem o dispositivo IoT:

  • Possui Linux no qual executar aplicativos;
  • Há uma conexão móvel com a Internet;
  • Usando o software, você pode emular as leituras do sensor.

I.e. trabalhar com um dispositivo IoT real não será diferente de trabalhar com um smartphone, exceto pelo uso de um SDK específico para obter leituras do sensor. Todas as outras comunicações serão semelhantes.

Deixe-me pular a seção com padrões, análises e pesquisa de marketing - no final do artigo, darei alguns links relevantes. Estou ansioso para fazer algo interessante)

Plataforma AWS IoT


A Amazon desenha um diagrama bastante claro de sua plataforma:

imagem

Aqui, em geral, tudo está claro:

  • (1) Existem dispositivos que interagem com a plataforma IoT usando o SDK.
  • (2) Os dispositivos enviam mensagens que são verificadas pelo serviço de autenticação e autorização.
  • (3) As mensagens chegam ao Device Gateway usando protocolos diferentes e depois vão para o manipulador de regras (4.1) e são copiadas (4.2) para Device Shadows.
  • (4.2) Device Shadows são duplos digitais que armazenam o estado atual dos dispositivos que estão sempre disponíveis para aplicativos. Por outro lado, na ausência de comunicação com o dispositivo, o Device Shadow executa comandos de controle dos aplicativos e, ao reconectar, sincroniza o estado atual com o dispositivo.
  • (4.1) Dependendo dos dados recebidos, o manipulador de regras executa ações predeterminadas (5.1), por exemplo, salva dados no banco de dados, envia notificações por SMS ou por email, chama a API HTTP, envia dados para o sistema de análise, etc.
  • (5.2) Os aplicativos usam esses dados para controlar e gerenciar dispositivos usando a API da AWS (6)
  • As informações em todos os dispositivos são armazenadas na plataforma AWS IoT (7).

Começamos a entender, o esquema é um pouco complicado:

imagem

Aparecer:

Trabalhos - execute ações padrão em dispositivos, por exemplo, instale aplicativos, atualize o firmware, reinicialize dispositivos etc.
Os tópicos são a essência do protocolo MQTT. Mensagens de dispositivos IoT são enviadas para tópicos específicos.
Funções do IAM - usuários da AWS em nome de quem as regras são executadas e que têm acesso aos recursos necessários da AWS.

As regras consistem em:

  • Filtro - filtro de mensagens para processamento. Defina como uma consulta SQL.
  • Ação - a ação a ser executada.
  • Função - uma ou mais funções do IAM.

Certificado - carregado no dispositivo IoT, com a ajuda de autenticação de dispositivos na plataforma AWS. Consistem em:

  • Certificado de dispositivo X.509
  • Chave privada
  • Certificado raiz da AWS

Política - as políticas são anexadas aos certificados que determinam quais ações o dispositivo pode executar. Políticas autorizam dispositivos.
Detalha os serviços da AWS que recebem informações da plataforma IoT: Serviço de notificação do Analytics, DB, SNS.

Nós conectamos o dispositivo


Não darei instruções completas sobre como conectar o dispositivo IoT à plataforma Amazon: Introdução à AWS IoT . Mas, para entender o escopo da tarefa, listarei as etapas que precisam ser executadas para que o esquema funcione:

  • Crie o dispositivo my-iot-dev na plataforma
  • Recebemos o certificado do dispositivo X.509, chave privada, chave pública
  • Obtenha o certificado raiz da plataforma da AWS (CA raiz para AWS IoT)
  • Crie a política my-iot-dev-policy. Para nossas demonstrações, permitimos todas as ações: iot: *

imagem

  • Anexar uma política a um certificado
  • Anexe o certificado ao dispositivo
  • Como resultado, recebemos um certificado com o dispositivo e a política:

imagem

  • Crie uma regra. A regra ligará para o serviço de notificação do AWS SNS (Serviço de Notificação Simples) para enviar email. Portanto, você deve primeiro criar um tópico no AWS SNS (my-iot-dev-sns-topic):

imagem

  • Agora configuramos o que exatamente esse tópico fará ao receber dados. Para fazer isso, crie uma assinatura para o tópico (Inscrever-se no tópico Amazon SNS), digite o endereço de e-mail de destino, aguarde a carta de verificação, confirme o e-mail.

imagem

Agora crie a própria regra (my_iot_dev_rule), que chamará o tópico criado:

  • Filtro: SELECT * FROM 'meu / dev-topic' - o filtro é acionado quando qualquer mensagem no tópico chamada 'meu / dev-topic' é recebida;
  • Ação: enviando uma mensagem para o tópico do SNS criado anteriormente “arn: aws: sns: eu-central-1: 1219xxx34064: my-iot-dev-sns-topic”;
  • Função do IAM: crie a função my-dev-role com acesso aos tópicos do SNS.

imagem

  • Todas as entidades lógicas para o nosso dispositivo são criadas. Agora você pode testar se o esquema funciona teoricamente. Para fazer isso, a AWS possui uma ferramenta de teste que permite enviar e receber mensagens semelhantes a dispositivos reais. Nós o lançamos, assinamos o tópico (meu / dev-topic) e enviamos "Hello World!" mensagem:

imagem

  • Verificamos que a mensagem "Hello World!" Chegou e concluir que o circuito funciona.

Configuração do Smartphone


Chegou a hora de configurar o dispositivo IoT, que será meu smartphone. Para fazer isso, use a instrução JavaScript do AWS SDK . Para transformar um smartphone em um dispositivo IoT, você precisa:

  • Copiar para o dispositivo: chave privada, certificados X.509 e "CA raiz para AWS";
  • Instale o Node.js e o gerenciador de pacotes npm;
  • Instale o AWS SDK;
  • Instale e execute o programa de teste.

No nosso caso, tudo será um pouco mais fácil, porque Coloquei os certificados, o AWS SDK e o programa de teste no GitHub e você pode apenas clonar o repositório IoT-Sensors . Se alguém quiser usar meu programa de teste, precisará colocar seus certificados no diretório / IoT / certs e gravar no arquivo / server / src / services / IoT-AOI-Server o ponto de extremidade da API de descanso real do dispositivo:

device = deviceModule({ … host: 'a2lqo1xxx4zydi-ats.iot.eu-central-1.amazonaws.com', … }) 

O ponto de extremidade da API restante é obtido nas configurações do dispositivo:

imagem

Se você quiser tentar algo padrão, poderá usar os programas de teste do AWS SDK.

O Android é o mesmo Linux, mas com suas limitações, para executar aplicativos JS, é necessário instalar um terminal especial, por exemplo, Termux .

Para o desenvolvimento inicial do Termux, existem vários artigos, por exemplo: Iniciando um aplicativo NodeJS no Android . Mas, em geral, após a instalação do Termux, você precisa executar apenas alguns comandos mágicos:

 git clone https://github.com/AlexeySushkov/IoT-Sensors.git 

Instalação do servidor


 cd ~/IoT-Sensors/server npm install npm start 

Se tudo correu bem, a linha aparecerá no terminal:
Servidor iniciado na porta: 8081

Live fica assim:

imagem

Instalação do cliente


 cd ~/IoT-Sensors/client npm install npm run serve 

Se tudo correu bem, a linha aparecerá no terminal:
Aplicativo em execução na porta: 8080

Em seguida, no navegador do smartphone, digite: http: // localhost: 8080

E um aplicativo de teste aparecerá na tela:

imagem

Pressione o botão “INIT DEV”. Isso autentica e autoriza o dispositivo IoT na plataforma AWS IoT. Se for bem-sucedido, o status será "Init OK".

Em seguida, inserimos os valores dos sensores de temperatura, umidade e pressão, por exemplo:
Temperatura: 23
Umidade: 65
Pressão: 787

E pressione o botão "ENVIAR DADOS".

imagem

Depois disso, o aplicativo adiciona um carimbo de data e hora e envia os dados na forma de mensagens MQTT para o tópico "meu / dev-topic". A plataforma IoT recebe uma mensagem e ativa uma regra que envia uma mensagem ao serviço de notificação do AWS SNS, que envia um email com os dados recebidos no formato JSON:

 {"time":"Mon, 30 Sep 2019 13:54:52 GMT", "temperature":"23", "humidity":"65", "pressure":"787"} 

Se a mensagem for enviada com sucesso, o status mudará para: "publique OK" e um e-mail será enviado para o e-mail:

imagem

A plataforma AWS IoT possui um sistema de monitoramento que mostra o número de conexões e mensagens de dispositivos IoT, estatísticas sobre protocolos, tipos de mensagens, etc .:

imagem

Então agora tudo está funcionando de verdade!

Conclusão


Criamos uma IoT pequena mas real usando uma plataforma da Amazon. Todas as plataformas são construídas com os mesmos princípios; portanto, se surgir a questão de escolher um sistema de IoT, estaremos prontos para fazer as seguintes perguntas. Além disso, sabendo as respostas da Amazon, podemos concluir o quão madura é a plataforma oferecida:

Aparelhos

  • Como os dispositivos são adicionados ao sistema?
  • Como é garantida a autenticação e autorização do dispositivo?
  • A criptografia dos dados enviados para a plataforma ocorre?

Plataforma

  • Como as chaves e os certificados são protegidos na plataforma?
  • Como as regras são formadas?
  • Quais ações as regras podem seguir?
  • Como os dispositivos são monitorados e gerenciados?
  • Existem sombras (dobras digitais) de dispositivos na plataforma?
  • Quais relatórios e análises estão disponíveis?

Interação

  • Quais protocolos são usados ​​para conectar dispositivos?
  • Como é a interação dos aplicativos com o dispositivo?
  • Como é testada a lógica da interação?

Conforme prometido, fornecerei alguns links relevantes para padrões e análises:

Padrões de IoT


Surpreendentemente, os gigantes da padronização ( ISO / IEC , IEEE , ITU-T ) perderam o interesse na IoT após 2016. Eles, é claro, estão fazendo algo, mas de alguma forma sem piscar). O NIST também divulgou seu estudo Networks of 'Things' , mas depois de 2016 não há mais nada de interessante.

Os institutos de telecomunicações parecem melhores, o que não é surpreendente, pois sem conectividade, a IoT não é IoT. O TM-Forum, sob seu guarda-chuva, coleta casos e projetos de IoE e Ecossistemas Digitais , o ETSI é mais fácil e se uniu ao OneM2M .

E agora chegamos a duas organizações que foram formadas relativamente recentemente, mas que já determinam a direção mundial do desenvolvimento da IoT:

OneM2M

O OneM2M é uma associação de organizações de padronização, empresas de telecomunicações e fabricantes de diferentes países. Eles têm dezenas de documentos relevantes em domínio público que aquecem a alma com modelos arquitetônicos e diagramas funcionais .

CII

A CII (Industrial Internet Consortium) - uma organização para padronizar a Internet industrial das coisas - são principalmente fabricantes de software e dispositivos . Eles também liberam suas arquiteturas de referência. Em geral, há onde olhar para o mundo perfeito! )

IoT Analytics


Todas as nossas agências analíticas favoritas lançam pesquisa de IoT, mas nem todas estão disponíveis gratuitamente. Como exemplo, darei alguns artigos relevantes que demonstram previsões otimistas para o desenvolvimento da IoT:



É só o começo!

Source: https://habr.com/ru/post/pt472216/


All Articles