Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Conectando com segurança um MKR GSM 1400 ao Google Cloud IoT Core

Componentes e suprimentos

Arduino MKR GSM 1400
× 1
Cabo Micro-USB para USB (Genérico)
× 1
Bateria lipo 3,7 V
× 1
Cartão Micro SIM
× 1
Antena UF.L Celular
× 1

Aplicativos e serviços online

Arduino IDE
Google Cloud IoT Core

Sobre este projeto


Observação:este tutorial pode estar desatualizado, vá aqui para uma versão mais atual.





Introdução


Os dispositivos podem se conectar ao GCP IoT Core usando HTTP ou MQTT. Este tutorial o orientará em como conectar uma placa Arduino MKR GSM 1400 com segurança ao GCP IoT Core usando um cliente MQTT. MQTT (Message Queuing Telemetry Transport) é um protocolo de conectividade M2M (máquina a máquina) que fornece uma assinatura de mensagens e transporte de publicação.

Os dispositivos devem usar JSON Web Tokens (JWTs) para autenticação; mais informações sobre JWTs podem ser encontradas em RFC 7519. O GCP IoT Core oferece suporte a algoritmos RSA e curva elíptica para verificar assinaturas da Web JSON (JWS). Mais informações sobre JWS podem ser encontradas em RFC 7515.

Cada placa Arduino MKR com conectividade on-board, incluindo o MKR GSM 1400, é equipada com um elemento de criptografia Microchip ATECC508A ou ATECC608A. Este elemento criptográfico pode ser usado para gerar e armazenar com segurança uma chave ECC (Criptografia de Curva Elíptica) de 256 bits. Estaremos usando uma chave privada armazenada dentro do elemento crypto para assinar o JWT.





Configuração de software e hardware


Se você não tiver o IDE Arduino instalado em seu computador, baixe e instale-o.

Depois de instalado, certifique-se de ter o pacote mais recente "Arduino SAMD Boards" instalado. Você pode verificar abrindo o IDE do Arduino e abrindo Tools -> Board:"..." -> Board Manager ... entrada do menu e pesquisando por "Arduno SAMD". No momento em que este artigo foi escrito, 1.6.20 era a versão mais recente.

Em seguida, você precisará instalar as bibliotecas do Arduino que serão usadas, usando o gerenciador de bibliotecas do IDE do Arduino. Abra o Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas .. . menu, pesquise e instale individualmente cada uma das seguintes bibliotecas:
  • MKRGSM
  • Arduino_JSON
  • ArduinoECCX08 (versão 1.3.0 ou posterior)
  • ArduinoMqttClient (versão 0.1.3 ou posterior)
  • Exemplos de provedor de nuvem Arduino (versão 1.2.0 ou posterior)

Agora insira o cartão micro SIM no slot na parte inferior da placa MKR GSM 1400, conecte a antena e conecte a bateria 3,7 V Lipo ao conector JST. Em seguida, conecte o MKR GSM 1400 com o cabo micro USB ao seu computador, selecione a porta serial no IDE do Arduino usando Ferramentas -> Porta "..." menu e também selecione Arduino MKR GSM 1400 em Ferramentas -> Placa "..." cardápio.





Configurando e adicionando a placa ao GCP IoT Core


Conforme mencionado acima, o GCP IoT Core requer dispositivos que se conectam usando o protocolo MQTT para usar JWT para autenticação. Usaremos um esboço para gerar uma chave privada e pública na placa e, em seguida, adicionar o valor PEM da chave pública ao console GCP IoT Core.

O privado e o público podem ser gerados usando um esboço de exemplo da biblioteca ArduinoECCX08. Abra o esboço no Arduino IDE usando Arquivo -> Exemplos -> ArduinoECCX08 -> Ferramentas -> ECCX08JWSPublicKey . Clique no botão "Upload" para construir e fazer upload do esboço para o seu quadro e, em seguida, abra o Monitor Serial. Certifique-se de que a configuração de finalização de linha esteja definida como "Ambos NL e CR."

Este esboço solicitará que você configure permanentemente seu elemento de criptografia ATECC508A para ECC608A se não estiver configurado e bloqueado. NOTA:Este processo de bloqueio é permanente e irreversível, mas é necessário para usar o elemento crypto - a configuração dos conjuntos de esboço permite que você use 5 slots de chave privada com qualquer provedor de nuvem (ou servidor) e uma chave privada pode ser regenerada a qualquer momento para qualquer um dos 5 slots de chave privada (0 - 4) . Quando a placa é enviada da fábrica, o elemento criptográfico está em um estado não configurado e desbloqueado.

Depois disso, você será solicitado a informar qual slot usar. Neste tutorial, usaremos o slot 0 para gerar e armazenar a chave privada usada para uma chave pública (os slots 1 a 4 podem ser usados ​​para gerar e armazenar chaves privadas adicionais, se necessário). Nota: Como a chave privada é gerada dentro do elemento criptográfico, ela nunca sai do dispositivo e é armazenada com segurança e não pode ser lida.

Copie o valor da chave pública gerado, nesta captura de tela o valor é:
  ----- BEGIN PUBLIC KEY ----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFl4 + DXufU84AhDGib7aMwmYwUVAp9coRdC9jOdzRe2kqGWFEb + QP4V4YUK9Zy7PsmRABi1sWgxiAoEhg1FEQgg ==----- END PUBLIC KEY -----  

Vamos usá-lo em uma etapa posterior ao adicionar o dispositivo ao GCP IoT Core.

Agora que temos uma chave pública PEM, precisamos fazer login no console do GCP IoT Core e criar um novo dispositivo para ele.

1) Abra um navegador da web e vá para https://cloud.google.com/ e clique no link "Entrar" para fazer login com seu ID do Google.

2) Assim que estiver logado, clique no botão "IR PARA O CONSOLE". Então você verá o painel principal.

3) Clique no link "CRIAR" para criar um novo projeto.

4) Será solicitado que você forneça um nome de projeto, usaremos "MKR GCP Tutorial" para o nome. Clique no botão "CRIAR" para continuar.

5) Após a criação do projeto, será apresentado um painel dele.

6) Agora clique no ícone de menu no lado superior esquerdo, vá até o título "BIG DATA" e clique no link "IoT Core".

7) Será solicitado que você habilite a API, clique no botão "Habilitar API".

8) Assim que a API estiver habilitada, você será solicitado a criar um registro de dispositivo. Clique no botão "Criar um registro de dispositivo" para continuar.

9) Será apresentado a você um formulário. Preencha o campo "ID do Registro" e selecione uma região. Na captura de tela abaixo, "MKR_GCP_Tutorial" foi inserido como o ID do registro e "us-central1" foi selecionado como a região. Após o preenchimento do formulário, clique no botão "Criar".

10) Em seguida, serão apresentados os detalhes do registro.

11) Para adicionar um novo dispositivo, clique no link "Dispositivos" na barra de navegação do lado esquerdo.

12) Em seguida, clique em "+ CRIAR UM DISPOSITIVO" no cabeçalho no topo da página.

13) Digite o nome do dispositivo, na imagem abaixo "MyMKRGSM1400" foi usado. "ES256" deve ser selecionado como o "formato de chave pública". Cole a chave pública PEM gerada no quadro anteriormente na área de texto "Valor da chave pública". Em seguida, clique no botão "Criar".





Conectando a placa ao GCP IoT Core


1) Abra o esboço GCP IoT Core GSM no Arduino IDE usando Arquivo -> Exemplos -> Exemplos de provedor de nuvem Arduino -> GoogleCloudPlatformIoTCore-> GCP_IoT_Core_GSM.

2) Na aba arduino_secrets.h, preencha o pin (se necessário) para o cartão SIM, bem como o GPRS APN, nome de usuário e senha da operadora de celular que você está usando.
  // Configurações GSM # define SECRET_PINNUMBER "" #define SECRET_GPRS_APN "GPRS_APN" // substitua seu GPRS APN # define SECRET_GPRS_LOGIN "login" // substitui por seu login GPRS # define SECRET_GPRS_PASSWORD "senha" // substitua por sua senha GPRS  

4) Em seguida, atualize os valores de id do projeto, região da nuvem, id do registro e id do dispositivo.
  // Preencha seu Google Cloud Platform - IoT Core info # define SECRET_PROJECT_ID "" #define SECRET_CLOUD_REGION "" #define SECRET_REGISTRY_ID "" #define SECRET_DEVICE_ID ""  

O valor do ID do projeto pode ser encontrado clicando na barra de menu na parte superior do console do GCP. Para as etapas acima, os valores são:
  #define SECRET_PROJECT_ID "mkr-gcp-tutorial" #define SECRET_CLOUD_REGION "us-central1" #define SECRET_REGISTRY_ID "MKR_GCP_Tutorial" #define SECRET_DEVICE_ID "MyMKRGS1400" 00 " 

5) Carregue o esboço em sua placa e abra o monitor serial. A placa tentará se conectar à rede celular e, se tiver êxito, tentará se conectar ao GCP IoT Core usando MQTT.





Interagindo com a diretoria no GCP IoT Core


Agora que sua placa foi conectada com sucesso ao GCP IoT Core, podemos usar o console do GCP IoT Core para interagir com ela. O esboço envia uma mensagem para o / devices / {deviceId} / state tópico a cada 5 segundos e escuta as mensagens em / devices / {deviceId} / config tópico e / devices / {deviceId} / command / # tópicos.

Na página do dispositivo no console do GCP IoT Core, clique no botão "ENVIAR COMANDO".

Uma caixa de diálogo modal aparecerá, onde você pode inserir uma mensagem para enviar. Na imagem abaixo, "Olá!" foi inserido. Clique no botão "ENVIAR COMANDO" para enviar a mensagem.

Assim que a placa receber a mensagem, ela será impressa no Monitor Serial.

Para visualizar as mensagens que o fórum está enviando, clique na guia "Configuração e histórico de estado".

As mensagens aparecerão no formato codificado em Base64, para visualizar o valor clique e insira na lista e selecione o botão de rádio "Texto".

Na captura de tela acima, a placa estava enviando um "olá 464488" valor, o valor 464488 é o resultado do millis () função na placa.





Conclusão


Neste tutorial, abordamos como usar com segurança uma placa Arduino MKR GSM 1400 com GCP IoT Core. Um JWT assinado foi usado para autenticar com GCP IoT Core usando o protocolo MQTT com o ATECC508A ou ATECC608A armazenando a chave privada usada para assinar o JWT. Mensagens MQTT foram enviadas de e para a placa.

Este é apenas o começo, você pode usar o GCP IoT Core com muitos dos outros serviços que o GCP oferece!

Código

Github
https://github.com/arduino/ArduinoCloudProviderExamples

Processo de manufatura

  1. ADLINK faz parceria com o Google Cloud para oferecer soluções prontas para IoT
  2. Projeto Raspberry PI IoT Conectando o Sensor DHT11
  3. Windows 10 IoT Core e SHT15
  4. Windows 10 IoT Core para Raspberry Pi 3 Modelo B +
  5. Núcleo IoT do Windows 10:robô controlado por fala
  6. Portenta H7 Dual Core Debugging
  7. Arduino - Tirar uma foto - Carregar para o Google Drive
  8. Monitor de freqüência cardíaca usando IoT
  9. Piscina Azure IoT
  10. Gateways de IoT:um guia para conectar coisas à nuvem