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

Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo

Componentes e Materiais

ComponenteQtd
Arduino MKR GSM 14001
Cabo Micro-USB para USB1
Bateria LiPo 3.7V1
Cartão Micro SIM1
Antena Celular UF.L1

Aplicativos e Serviços Online

Sobre o Projeto

Nota: Este tutorial pode estar desatualizado. Acesse aqui para uma versão mais atual.

Introdução

Dispositivos conectam ao GCP IoT Core via HTTP ou MQTT. Este tutorial mostra como conectar um Arduino MKR GSM 1400 seguramente 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 transporte de publicação/assinatura de mensagens.

Dispositivos devem usar JSON Web Tokens (JWTs) para autenticação (RFC 7519). O GCP IoT Core suporta algoritmos RSA e Curva Elíptica para verificar JSON Web Signatures (JWS, RFC 7515).

Todas as placas Arduino MKR com conectividade onboard, incluindo o MKR GSM 1400, possuem um elemento criptográfico Microchip ATECC508A ou ATECC608A. Ele gera e armazena uma chave ECC (Curva Elíptica) de 256 bits. Usaremos a chave privada armazenada no elemento criptográfico para assinar o JWT.

Configuração de Software e Hardware

  1. Instale a Arduino IDE se ainda não tiver.
  2. Certifique-se de ter o pacote "Arduino SAMD Boards" mais recente (Ferramentas → Placa → Gerenciador de Placas → "Arduino SAMD"). Na época, a versão 1.6.20 era a mais recente.
  3. Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
  4. Instale as bibliotecas necessárias via Sketch → Incluir Biblioteca → Gerenciar Bibliotecas:
    • MKRGSM
    • Arduino_JSON
    • ArduinoECCX08 (versão 1.3.0 ou superior)
    • ArduinoMqttClient (versão 0.1.3 ou superior)
    • Arduino Cloud Provider Examples (versão 1.2.0 ou superior)
  5. Insira o cartão micro SIM no slot inferior do MKR GSM 1400, conecte a antena e a bateria LiPo 3.7V no conector JST. Conecte o cabo micro USB ao computador, selecione a porta serial e a placa Arduino MKR GSM 1400 na IDE.
  6. Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo

Configurando e Adicionando a Placa ao GCP IoT Core

O GCP IoT Core exige JWT para autenticação MQTT. Geraremos um par de chaves na placa e adicionaremos a chave pública (PEM) no console GCP.

  1. Na IDE: Arquivo → Exemplos → ArduinoECCX08 → Tools → ECCX08JWSPublicKey. Carregue e abra o Monitor Serial (configuração de fim de linha: "Both NL & CR").
  2. O sketch solicitará configurar permanentemente o ATECC508A/ATECC608A se não estiver configurado/travado. NOTA: Este travamento é permanente e irreversível, mas necessário para usar o elemento criptográfico. A configuração permite 5 slots de chave privada (0–4) para qualquer provedor de nuvem; chaves podem ser regeneradas a qualquer momento. De fábrica, o elemento vem desconfigurado e destravado.
  3. Será solicitado o slot a usar. Usaremos o slot 0. Nota: A chave privada é gerada dentro do elemento criptográfico, nunca sai do dispositivo e não pode ser lida.
  4. Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
  5. Copie a chave pública gerada (formato PEM), ex.:
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFl4+DXufU84AhDGib7aMwmYwUVAp9coRdC9jOdzR
    e2kqGWFEb+QP4V4YUK9Zy7PsmRABi1sWgxiAoEhg1FEQgg==
    -----END PUBLIC KEY-----
  6. No console GCP (cloud.google.com), faça login e crie um projeto (ex.: "MKR GCP Tutorial").
  7. Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
    Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
    Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
    Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
  8. Ative a API IoT Core e crie um registro de dispositivos (Registry ID: "MKR_GCP_Tutorial", Região: "us-central1").
  9. Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
    Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
    Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
    Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
    Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
  10. Adicione um dispositivo: clique em "Devices" → "+ CREATE A DEVICE". Nome: "MyMKRGSM1400". Formato da chave pública: ES256. Cole a chave PEM gerada. Clique em "Create".
  11. Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
    Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
    Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo

Conectando a Placa ao GCP IoT Core

  1. Na IDE: Arquivo → Exemplos → Arduino Cloud Provider Examples → GoogleCloudPlatformIoTCore → GCP_IoT_Core_GSM.
  2. Na aba arduino_secrets.h, preencha PIN do SIM (se necessário), APN GPRS, usuário e senha da operadora:
    // Configurações GSM
    #define SECRET_PINNUMBER ""
    #define SECRET_GPRS_APN "GPRS_APN"     // substitua pelo seu APN
    #define SECRET_GPRS_LOGIN "login"      // substitua pelo seu login
    #define SECRET_GPRS_PASSWORD "password" // substitua pela sua senha
  3. Atualize as credenciais do GCP:
    // Info do GCP IoT Core
    #define SECRET_PROJECT_ID "mkr-gcp-tutorial"
    #define SECRET_CLOUD_REGION "us-central1"
    #define SECRET_REGISTRY_ID "MKR_GCP_Tutorial"
    #define SECRET_DEVICE_ID "MyMKRGSM1400"
    O Project ID encontra-se clicando no menu superior do console GCP.
  4. Carregue o sketch e abra o Monitor Serial. A placa tentará conectar à rede celular e, se bem-sucedida, ao GCP IoT Core via MQTT.
  5. Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo

Interagindo com a Placa no GCP IoT Core

O sketch envia mensagem ao tópico /devices/{deviceId}/state a cada 5 s e escuta em /devices/{deviceId}/config e /devices/{deviceId}/commands/#.

  1. Na página do dispositivo no console GCP, clique em "SEND COMMAND".
  2. Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
  3. Digite a mensagem (ex.: "Hello There!") e envie.
  4. Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
  5. A placa receberá e imprimirá no Monitor Serial.
  6. Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
  7. Para ver mensagens enviadas pela placa, aba "Configuration & state history". As mensagens aparecem em Base64; clique na entrada e selecione "Text" para ver o valor.
  8. Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo
    Conecte Seguramente o Arduino MKR GSM 1400 ao Google Cloud IoT Core: Guia Passo a Passo

    No exemplo, a placa enviava "hello 464488" (464488 = millis()).

Conclusão

Cobrimos como usar seguramente um Arduino MKR GSM 1400 com GCP IoT Core. Um JWT assinado autentica via MQTT, com a chave privada no ATECC508A/ATECC608A. Mensagens MQTT foram trocadas bidirecionalmente. Isso é só o começo; o GCP IoT Core integra com muitos outros serviços do GCP!

Código

GitHub

https://github.com/arduino/ArduinoCloudProviderExamples

Processo de manufatura

  1. ADLINK e Google Cloud Colaboram para Entregar Soluções IoT Contínuas
  2. Conecte Raspberry Pi 3 a Sensor DHT11 e Envie Dados para Nuvem ThingsIo.ai
  3. Monitoramento Preciso de Temperatura e Umidade com SHT15 no Windows 10 IoT Core
  4. Instalando Windows 10 IoT Core no Raspberry Pi 3 Model B+: Guia Passo a Passo
  5. Construa um Robô Controlado por Fala com Windows 10 IoT Core no Raspberry Pi 2
  6. Depurando o Sistema Dual-Core Arduino Portenta H7 com Segger J-Link
  7. Arduino Mega: Capture Fotos e Faça Upload Automático para o Google Drive
  8. Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
  9. Sistema de Controle de Piscina com Azure IoT: Sensores Inteligentes e Monitoramento Remoto
  10. Dominando Gateways IoT: Conecte Dispositivos à Nuvem com Segurança